1use std::collections::HashSet;
10use std::sync::LazyLock;
11
12pub static AGGREGATE_FUNCTIONS: LazyLock<HashSet<&'static str>> = LazyLock::new(|| {
14 let mut set = HashSet::new();
15 set.insert("agg_func");
16 set.insert("ai_agg");
17 set.insert("ai_summarize_agg");
18 set.insert("any_value");
19 set.insert("approx_distinct");
20 set.insert("approx_quantile");
21 set.insert("approx_quantiles");
22 set.insert("approx_top_k");
23 set.insert("approx_top_k_accumulate");
24 set.insert("approx_top_k_combine");
25 set.insert("approx_top_sum");
26 set.insert("approximate_similarity");
27 set.insert("arg_max");
28 set.insert("arg_min");
29 set.insert("array_agg");
30 set.insert("array_concat_agg");
31 set.insert("array_union_agg");
32 set.insert("array_unique_agg");
33 set.insert("avg");
34 set.insert("bitmap_construct_agg");
35 set.insert("bitmap_or_agg");
36 set.insert("bitwise_and_agg");
37 set.insert("bitwise_or_agg");
38 set.insert("bitwise_xor_agg");
39 set.insert("boolxor_agg");
40 set.insert("combined_agg_func");
41 set.insert("combined_parameterized_agg");
42 set.insert("corr");
43 set.insert("count");
44 set.insert("count_if");
45 set.insert("covar_pop");
46 set.insert("covar_samp");
47 set.insert("first");
48 set.insert("group_concat");
49 set.insert("grouping");
50 set.insert("grouping_id");
51 set.insert("hll");
52 set.insert("json_object_agg");
53 set.insert("jsonb_object_agg");
54 set.insert("last");
55 set.insert("logical_and");
56 set.insert("logical_or");
57 set.insert("max");
58 set.insert("median");
59 set.insert("min");
60 set.insert("minhash");
61 set.insert("minhash_combine");
62 set.insert("object_agg");
63 set.insert("parameterized_agg");
64 set.insert("quantile");
65 set.insert("skewness");
66 set.insert("stddev");
67 set.insert("stddev_pop");
68 set.insert("stddev_samp");
69 set.insert("sum");
70 set.insert("variance");
71 set.insert("variance_pop");
72 set
73});
74
75pub static WINDOW_FUNCTIONS: LazyLock<HashSet<&'static str>> = LazyLock::new(|| {
77 let mut set = HashSet::new();
78 set.insert("cume_dist");
79 set.insert("dense_rank");
80 set.insert("first_value");
81 set.insert("lag");
82 set.insert("last_value");
83 set.insert("lead");
84 set.insert("nth_value");
85 set.insert("ntile");
86 set.insert("percent_rank");
87 set.insert("percentile_cont");
88 set.insert("percentile_disc");
89 set.insert("rank");
90 set.insert("row_number");
91 set
92});
93
94pub static UDTF_FUNCTIONS: LazyLock<HashSet<&'static str>> = LazyLock::new(|| {
96 let mut set = HashSet::new();
97 set.insert("explode");
98 set.insert("explode_outer");
99 set.insert("posexplode");
100 set.insert("posexplode_outer");
101 set.insert("unnest");
102 set
103});
104
105pub fn is_aggregate_function(name: &str) -> bool {
114 let lower = name.to_ascii_lowercase();
116 AGGREGATE_FUNCTIONS.contains(lower.as_str())
117}
118
119pub fn is_window_function(name: &str) -> bool {
127 let lower = name.to_ascii_lowercase();
129 WINDOW_FUNCTIONS.contains(lower.as_str())
130}
131
132pub fn is_udtf_function(name: &str) -> bool {
140 let lower = name.to_ascii_lowercase();
142 UDTF_FUNCTIONS.contains(lower.as_str())
143}
144
145#[derive(Debug, Clone, Copy, PartialEq, Eq)]
150pub enum ReturnTypeRule {
151 Integer,
153 Numeric,
155 Text,
157 Timestamp,
159 Boolean,
161 Date,
163 MatchFirstArg,
165}
166
167pub fn infer_function_return_type(name: &str) -> Option<ReturnTypeRule> {
191 let lower = name.to_ascii_lowercase();
193 match lower.as_str() {
194 "and" => Some(ReturnTypeRule::Boolean),
195 "any_value" => Some(ReturnTypeRule::MatchFirstArg),
196 "avg" => Some(ReturnTypeRule::Numeric),
197 "coalesce" => Some(ReturnTypeRule::MatchFirstArg),
198 "concat" => Some(ReturnTypeRule::Text),
199 "concat_ws" => Some(ReturnTypeRule::Text),
200 "count" => Some(ReturnTypeRule::Integer),
201 "current_date" => Some(ReturnTypeRule::Date),
202 "current_timestamp" => Some(ReturnTypeRule::Timestamp),
203 "date_trunc" => Some(ReturnTypeRule::MatchFirstArg),
204 "dense_rank" => Some(ReturnTypeRule::Integer),
205 "first_value" => Some(ReturnTypeRule::MatchFirstArg),
206 "lag" => Some(ReturnTypeRule::MatchFirstArg),
207 "last_value" => Some(ReturnTypeRule::MatchFirstArg),
208 "lead" => Some(ReturnTypeRule::MatchFirstArg),
209 "lower" => Some(ReturnTypeRule::Text),
210 "max" => Some(ReturnTypeRule::MatchFirstArg),
211 "min" => Some(ReturnTypeRule::MatchFirstArg),
212 "now" => Some(ReturnTypeRule::Timestamp),
213 "ntile" => Some(ReturnTypeRule::Integer),
214 "or" => Some(ReturnTypeRule::Boolean),
215 "rank" => Some(ReturnTypeRule::Integer),
216 "replace" => Some(ReturnTypeRule::Text),
217 "row_number" => Some(ReturnTypeRule::Integer),
218 "substring" => Some(ReturnTypeRule::Text),
219 "sum" => Some(ReturnTypeRule::Numeric),
220 "trim" => Some(ReturnTypeRule::Text),
221 "upper" => Some(ReturnTypeRule::Text),
222 _ => None,
223 }
224}
225
226#[derive(Debug, Clone, Copy, PartialEq, Eq)]
228pub enum FunctionCategory {
229 Aggregate,
231 Window,
233 Scalar,
235}
236
237#[derive(Debug, Clone)]
239pub struct FunctionParam {
240 pub name: &'static str,
242 pub required: bool,
244}
245
246#[derive(Debug, Clone)]
251pub struct FunctionSignature {
252 pub name: &'static str,
254 pub display_name: &'static str,
256 pub params: &'static [FunctionParam],
258 pub return_type: Option<ReturnTypeRule>,
260 pub category: FunctionCategory,
262}
263
264impl FunctionSignature {
265 pub fn format_signature(&self) -> String {
267 let params_str = self.params
268 .iter()
269 .map(|p| {
270 if p.required {
271 p.name.to_string()
272 } else {
273 format!("[{}]", p.name)
274 }
275 })
276 .collect::<Vec<_>>()
277 .join(", ");
278
279 let return_str = self.return_type
280 .map(|rt| format!(" → {}", match rt {
281 ReturnTypeRule::Integer => "INTEGER",
282 ReturnTypeRule::Numeric => "NUMERIC",
283 ReturnTypeRule::Text => "TEXT",
284 ReturnTypeRule::Timestamp => "TIMESTAMP",
285 ReturnTypeRule::Boolean => "BOOLEAN",
286 ReturnTypeRule::Date => "DATE",
287 ReturnTypeRule::MatchFirstArg => "T",
288 }))
289 .unwrap_or_default();
290
291 format!("{}({}){}", self.display_name, params_str, return_str)
292 }
293}
294
295static PARAMS_ABS: &[FunctionParam] = &[
297 FunctionParam { name: "this", required: true },
298];
299static PARAMS_ACOS: &[FunctionParam] = &[
300 FunctionParam { name: "this", required: true },
301];
302static PARAMS_ACOSH: &[FunctionParam] = &[
303 FunctionParam { name: "this", required: true },
304];
305static PARAMS_ADD_MONTHS: &[FunctionParam] = &[
306 FunctionParam { name: "this", required: true },
307 FunctionParam { name: "expression", required: true },
308];
309static PARAMS_AGG_FUNC: &[FunctionParam] = &[
310 FunctionParam { name: "this", required: true },
311];
312static PARAMS_AI_AGG: &[FunctionParam] = &[
313 FunctionParam { name: "this", required: true },
314 FunctionParam { name: "expression", required: true },
315];
316static PARAMS_AI_CLASSIFY: &[FunctionParam] = &[
317 FunctionParam { name: "this", required: true },
318 FunctionParam { name: "categories", required: true },
319 FunctionParam { name: "config", required: false },
320];
321static PARAMS_AI_SUMMARIZE_AGG: &[FunctionParam] = &[
322 FunctionParam { name: "this", required: true },
323];
324static PARAMS_AND: &[FunctionParam] = &[
325 FunctionParam { name: "this", required: true },
326 FunctionParam { name: "expression", required: true },
327];
328static PARAMS_ANY_VALUE: &[FunctionParam] = &[
329 FunctionParam { name: "this", required: true },
330];
331static PARAMS_APPLY: &[FunctionParam] = &[
332 FunctionParam { name: "this", required: true },
333 FunctionParam { name: "expression", required: true },
334];
335static PARAMS_APPROXIMATE_SIMILARITY: &[FunctionParam] = &[
336 FunctionParam { name: "this", required: true },
337];
338static PARAMS_APPROX_DISTINCT: &[FunctionParam] = &[
339 FunctionParam { name: "this", required: true },
340 FunctionParam { name: "accuracy", required: false },
341];
342static PARAMS_APPROX_QUANTILE: &[FunctionParam] = &[
343 FunctionParam { name: "this", required: true },
344 FunctionParam { name: "quantile", required: true },
345 FunctionParam { name: "accuracy", required: false },
346 FunctionParam { name: "weight", required: false },
347 FunctionParam { name: "error_tolerance", required: false },
348];
349static PARAMS_APPROX_QUANTILES: &[FunctionParam] = &[
350 FunctionParam { name: "this", required: true },
351 FunctionParam { name: "expression", required: false },
352];
353static PARAMS_APPROX_TOP_K: &[FunctionParam] = &[
354 FunctionParam { name: "this", required: true },
355 FunctionParam { name: "expression", required: false },
356 FunctionParam { name: "counters", required: false },
357];
358static PARAMS_APPROX_TOP_K_ACCUMULATE: &[FunctionParam] = &[
359 FunctionParam { name: "this", required: true },
360 FunctionParam { name: "expression", required: false },
361];
362static PARAMS_APPROX_TOP_K_COMBINE: &[FunctionParam] = &[
363 FunctionParam { name: "this", required: true },
364 FunctionParam { name: "expression", required: false },
365];
366static PARAMS_APPROX_TOP_SUM: &[FunctionParam] = &[
367 FunctionParam { name: "this", required: true },
368 FunctionParam { name: "expression", required: true },
369 FunctionParam { name: "count", required: true },
370];
371static PARAMS_ARG_MAX: &[FunctionParam] = &[
372 FunctionParam { name: "this", required: true },
373 FunctionParam { name: "expression", required: true },
374 FunctionParam { name: "count", required: false },
375];
376static PARAMS_ARG_MIN: &[FunctionParam] = &[
377 FunctionParam { name: "this", required: true },
378 FunctionParam { name: "expression", required: true },
379 FunctionParam { name: "count", required: false },
380];
381static PARAMS_ARRAY: &[FunctionParam] = &[
382 FunctionParam { name: "expressions", required: false },
383];
384static PARAMS_ARRAY_AGG: &[FunctionParam] = &[
385 FunctionParam { name: "this", required: true },
386];
387static PARAMS_ARRAY_ALL: &[FunctionParam] = &[
388 FunctionParam { name: "this", required: true },
389 FunctionParam { name: "expression", required: true },
390];
391static PARAMS_ARRAY_ANY: &[FunctionParam] = &[
392 FunctionParam { name: "this", required: true },
393 FunctionParam { name: "expression", required: true },
394];
395static PARAMS_ARRAY_CONCAT: &[FunctionParam] = &[
396 FunctionParam { name: "this", required: true },
397 FunctionParam { name: "expressions", required: false },
398];
399static PARAMS_ARRAY_CONCAT_AGG: &[FunctionParam] = &[
400 FunctionParam { name: "this", required: true },
401];
402static PARAMS_ARRAY_CONSTRUCT_COMPACT: &[FunctionParam] = &[
403 FunctionParam { name: "expressions", required: true },
404];
405static PARAMS_ARRAY_CONTAINS: &[FunctionParam] = &[
406 FunctionParam { name: "this", required: true },
407 FunctionParam { name: "expression", required: true },
408];
409static PARAMS_ARRAY_CONTAINS_ALL: &[FunctionParam] = &[
410 FunctionParam { name: "this", required: true },
411 FunctionParam { name: "expression", required: true },
412];
413static PARAMS_ARRAY_FILTER: &[FunctionParam] = &[
414 FunctionParam { name: "this", required: true },
415 FunctionParam { name: "expression", required: true },
416];
417static PARAMS_ARRAY_FIRST: &[FunctionParam] = &[
418 FunctionParam { name: "this", required: true },
419];
420static PARAMS_ARRAY_INTERSECT: &[FunctionParam] = &[
421 FunctionParam { name: "expressions", required: true },
422];
423static PARAMS_ARRAY_TO_STRING: &[FunctionParam] = &[
424 FunctionParam { name: "this", required: true },
425 FunctionParam { name: "expression", required: true },
426 FunctionParam { name: "null", required: false },
427];
428static PARAMS_ARRAY_LAST: &[FunctionParam] = &[
429 FunctionParam { name: "this", required: true },
430];
431static PARAMS_ARRAY_SIZE: &[FunctionParam] = &[
432 FunctionParam { name: "this", required: true },
433 FunctionParam { name: "expression", required: false },
434];
435static PARAMS_ARRAY_OVERLAPS: &[FunctionParam] = &[
436 FunctionParam { name: "this", required: true },
437 FunctionParam { name: "expression", required: true },
438];
439static PARAMS_ARRAY_REMOVE: &[FunctionParam] = &[
440 FunctionParam { name: "this", required: true },
441 FunctionParam { name: "expression", required: true },
442];
443static PARAMS_ARRAY_REVERSE: &[FunctionParam] = &[
444 FunctionParam { name: "this", required: true },
445];
446static PARAMS_ARRAY_SLICE: &[FunctionParam] = &[
447 FunctionParam { name: "this", required: true },
448 FunctionParam { name: "start", required: true },
449 FunctionParam { name: "end", required: false },
450 FunctionParam { name: "step", required: false },
451];
452static PARAMS_ARRAY_SORT: &[FunctionParam] = &[
453 FunctionParam { name: "this", required: true },
454 FunctionParam { name: "expression", required: false },
455];
456static PARAMS_ARRAY_SUM: &[FunctionParam] = &[
457 FunctionParam { name: "this", required: true },
458 FunctionParam { name: "expression", required: false },
459];
460static PARAMS_ARRAY_UNION_AGG: &[FunctionParam] = &[
461 FunctionParam { name: "this", required: true },
462];
463static PARAMS_ARRAY_UNIQUE_AGG: &[FunctionParam] = &[
464 FunctionParam { name: "this", required: true },
465];
466static PARAMS_ASCII: &[FunctionParam] = &[
467 FunctionParam { name: "this", required: true },
468];
469static PARAMS_ASIN: &[FunctionParam] = &[
470 FunctionParam { name: "this", required: true },
471];
472static PARAMS_ASINH: &[FunctionParam] = &[
473 FunctionParam { name: "this", required: true },
474];
475static PARAMS_ATAN: &[FunctionParam] = &[
476 FunctionParam { name: "this", required: true },
477 FunctionParam { name: "expression", required: false },
478];
479static PARAMS_ATAN2: &[FunctionParam] = &[
480 FunctionParam { name: "this", required: true },
481 FunctionParam { name: "expression", required: true },
482];
483static PARAMS_ATANH: &[FunctionParam] = &[
484 FunctionParam { name: "this", required: true },
485];
486static PARAMS_AVG: &[FunctionParam] = &[
487 FunctionParam { name: "this", required: true },
488];
489static PARAMS_BASE64DECODE_BINARY: &[FunctionParam] = &[
490 FunctionParam { name: "this", required: true },
491 FunctionParam { name: "alphabet", required: false },
492];
493static PARAMS_BASE64DECODE_STRING: &[FunctionParam] = &[
494 FunctionParam { name: "this", required: true },
495 FunctionParam { name: "alphabet", required: false },
496];
497static PARAMS_BASE64ENCODE: &[FunctionParam] = &[
498 FunctionParam { name: "this", required: true },
499 FunctionParam { name: "max_line_length", required: false },
500 FunctionParam { name: "alphabet", required: false },
501];
502static PARAMS_BITMAP_BIT_POSITION: &[FunctionParam] = &[
503 FunctionParam { name: "this", required: true },
504];
505static PARAMS_BITMAP_BUCKET_NUMBER: &[FunctionParam] = &[
506 FunctionParam { name: "this", required: true },
507];
508static PARAMS_BITMAP_CONSTRUCT_AGG: &[FunctionParam] = &[
509 FunctionParam { name: "this", required: true },
510];
511static PARAMS_BITMAP_COUNT: &[FunctionParam] = &[
512 FunctionParam { name: "this", required: true },
513];
514static PARAMS_BITMAP_OR_AGG: &[FunctionParam] = &[
515 FunctionParam { name: "this", required: true },
516];
517static PARAMS_BITWISE_AND_AGG: &[FunctionParam] = &[
518 FunctionParam { name: "this", required: true },
519];
520static PARAMS_BITWISE_COUNT: &[FunctionParam] = &[
521 FunctionParam { name: "this", required: true },
522];
523static PARAMS_BITWISE_OR_AGG: &[FunctionParam] = &[
524 FunctionParam { name: "this", required: true },
525];
526static PARAMS_BITWISE_XOR_AGG: &[FunctionParam] = &[
527 FunctionParam { name: "this", required: true },
528];
529static PARAMS_BIT_LENGTH: &[FunctionParam] = &[
530 FunctionParam { name: "this", required: true },
531];
532static PARAMS_BOOLAND: &[FunctionParam] = &[
533 FunctionParam { name: "this", required: true },
534 FunctionParam { name: "expression", required: true },
535];
536static PARAMS_LOGICAL_AND: &[FunctionParam] = &[
537 FunctionParam { name: "this", required: true },
538];
539static PARAMS_BOOLNOT: &[FunctionParam] = &[
540 FunctionParam { name: "this", required: true },
541];
542static PARAMS_BOOLOR: &[FunctionParam] = &[
543 FunctionParam { name: "this", required: true },
544 FunctionParam { name: "expression", required: true },
545];
546static PARAMS_LOGICAL_OR: &[FunctionParam] = &[
547 FunctionParam { name: "this", required: true },
548];
549static PARAMS_BOOLXOR_AGG: &[FunctionParam] = &[
550 FunctionParam { name: "this", required: true },
551];
552static PARAMS_BYTE_LENGTH: &[FunctionParam] = &[
553 FunctionParam { name: "this", required: true },
554];
555static PARAMS_CASE: &[FunctionParam] = &[
556 FunctionParam { name: "this", required: false },
557 FunctionParam { name: "ifs", required: true },
558 FunctionParam { name: "default", required: false },
559];
560static PARAMS_CAST: &[FunctionParam] = &[
561 FunctionParam { name: "this", required: true },
562 FunctionParam { name: "to", required: true },
563 FunctionParam { name: "format", required: false },
564 FunctionParam { name: "safe", required: false },
565 FunctionParam { name: "action", required: false },
566 FunctionParam { name: "default", required: false },
567];
568static PARAMS_CAST_TO_STR_TYPE: &[FunctionParam] = &[
569 FunctionParam { name: "this", required: true },
570 FunctionParam { name: "to", required: true },
571];
572static PARAMS_CBRT: &[FunctionParam] = &[
573 FunctionParam { name: "this", required: true },
574];
575static PARAMS_CEIL: &[FunctionParam] = &[
576 FunctionParam { name: "this", required: true },
577 FunctionParam { name: "decimals", required: false },
578 FunctionParam { name: "to", required: false },
579];
580static PARAMS_CHR: &[FunctionParam] = &[
581 FunctionParam { name: "expressions", required: true },
582 FunctionParam { name: "charset", required: false },
583];
584static PARAMS_LENGTH: &[FunctionParam] = &[
585 FunctionParam { name: "this", required: true },
586 FunctionParam { name: "binary", required: false },
587 FunctionParam { name: "encoding", required: false },
588];
589static PARAMS_COALESCE: &[FunctionParam] = &[
590 FunctionParam { name: "this", required: true },
591 FunctionParam { name: "expressions", required: false },
592 FunctionParam { name: "is_nvl", required: false },
593 FunctionParam { name: "is_null", required: false },
594];
595static PARAMS_CODE_POINTS_TO_BYTES: &[FunctionParam] = &[
596 FunctionParam { name: "this", required: true },
597];
598static PARAMS_CODE_POINTS_TO_STRING: &[FunctionParam] = &[
599 FunctionParam { name: "this", required: true },
600];
601static PARAMS_COLLATE: &[FunctionParam] = &[
602 FunctionParam { name: "this", required: true },
603 FunctionParam { name: "expression", required: true },
604];
605static PARAMS_COLLATION: &[FunctionParam] = &[
606 FunctionParam { name: "this", required: true },
607];
608static PARAMS_COLUMNS: &[FunctionParam] = &[
609 FunctionParam { name: "this", required: true },
610 FunctionParam { name: "unpack", required: false },
611];
612static PARAMS_COMBINED_AGG_FUNC: &[FunctionParam] = &[
613 FunctionParam { name: "this", required: true },
614 FunctionParam { name: "expressions", required: false },
615];
616static PARAMS_COMBINED_PARAMETERIZED_AGG: &[FunctionParam] = &[
617 FunctionParam { name: "this", required: true },
618 FunctionParam { name: "expressions", required: true },
619 FunctionParam { name: "params", required: true },
620];
621static PARAMS_COMPRESS: &[FunctionParam] = &[
622 FunctionParam { name: "this", required: true },
623 FunctionParam { name: "method", required: false },
624];
625static PARAMS_CONCAT: &[FunctionParam] = &[
626 FunctionParam { name: "expressions", required: true },
627 FunctionParam { name: "safe", required: false },
628 FunctionParam { name: "coalesce", required: false },
629];
630static PARAMS_CONCAT_WS: &[FunctionParam] = &[
631 FunctionParam { name: "expressions", required: true },
632 FunctionParam { name: "safe", required: false },
633 FunctionParam { name: "coalesce", required: false },
634];
635static PARAMS_CONNECT_BY_ROOT: &[FunctionParam] = &[
636 FunctionParam { name: "this", required: true },
637];
638static PARAMS_CONTAINS: &[FunctionParam] = &[
639 FunctionParam { name: "this", required: true },
640 FunctionParam { name: "expression", required: true },
641 FunctionParam { name: "json_scope", required: false },
642];
643static PARAMS_CONVERT: &[FunctionParam] = &[
644 FunctionParam { name: "this", required: true },
645 FunctionParam { name: "expression", required: true },
646 FunctionParam { name: "style", required: false },
647 FunctionParam { name: "safe", required: false },
648];
649static PARAMS_CONVERT_TIMEZONE: &[FunctionParam] = &[
650 FunctionParam { name: "source_tz", required: false },
651 FunctionParam { name: "target_tz", required: true },
652 FunctionParam { name: "timestamp", required: true },
653 FunctionParam { name: "options", required: false },
654];
655static PARAMS_CONVERT_TO_CHARSET: &[FunctionParam] = &[
656 FunctionParam { name: "this", required: true },
657 FunctionParam { name: "dest", required: true },
658 FunctionParam { name: "source", required: false },
659];
660static PARAMS_CORR: &[FunctionParam] = &[
661 FunctionParam { name: "this", required: true },
662 FunctionParam { name: "expression", required: true },
663];
664static PARAMS_COS: &[FunctionParam] = &[
665 FunctionParam { name: "this", required: true },
666];
667static PARAMS_COSH: &[FunctionParam] = &[
668 FunctionParam { name: "this", required: true },
669];
670static PARAMS_COSINE_DISTANCE: &[FunctionParam] = &[
671 FunctionParam { name: "this", required: true },
672 FunctionParam { name: "expression", required: true },
673];
674static PARAMS_COT: &[FunctionParam] = &[
675 FunctionParam { name: "this", required: true },
676];
677static PARAMS_COTH: &[FunctionParam] = &[
678 FunctionParam { name: "this", required: true },
679];
680static PARAMS_COUNT: &[FunctionParam] = &[
681 FunctionParam { name: "this", required: false },
682 FunctionParam { name: "expressions", required: false },
683 FunctionParam { name: "big_int", required: false },
684];
685static PARAMS_COUNT_IF: &[FunctionParam] = &[
686 FunctionParam { name: "this", required: true },
687];
688static PARAMS_COVAR_POP: &[FunctionParam] = &[
689 FunctionParam { name: "this", required: true },
690 FunctionParam { name: "expression", required: true },
691];
692static PARAMS_COVAR_SAMP: &[FunctionParam] = &[
693 FunctionParam { name: "this", required: true },
694 FunctionParam { name: "expression", required: true },
695];
696static PARAMS_CSC: &[FunctionParam] = &[
697 FunctionParam { name: "this", required: true },
698];
699static PARAMS_CSCH: &[FunctionParam] = &[
700 FunctionParam { name: "this", required: true },
701];
702static PARAMS_CUME_DIST: &[FunctionParam] = &[
703 FunctionParam { name: "expressions", required: false },
704];
705static PARAMS_CURRENT_DATE: &[FunctionParam] = &[
706 FunctionParam { name: "this", required: false },
707];
708static PARAMS_CURRENT_DATETIME: &[FunctionParam] = &[
709 FunctionParam { name: "this", required: false },
710];
711static PARAMS_CURRENT_SCHEMA: &[FunctionParam] = &[
712 FunctionParam { name: "this", required: false },
713];
714static PARAMS_CURRENT_TIME: &[FunctionParam] = &[
715 FunctionParam { name: "this", required: false },
716];
717static PARAMS_CURRENT_TIMESTAMP: &[FunctionParam] = &[
718 FunctionParam { name: "this", required: false },
719 FunctionParam { name: "sysdate", required: false },
720];
721static PARAMS_CURRENT_USER: &[FunctionParam] = &[
722 FunctionParam { name: "this", required: false },
723];
724static PARAMS_DATE: &[FunctionParam] = &[
725 FunctionParam { name: "this", required: false },
726 FunctionParam { name: "zone", required: false },
727 FunctionParam { name: "expressions", required: false },
728];
729static PARAMS_DATE_DIFF: &[FunctionParam] = &[
730 FunctionParam { name: "this", required: true },
731 FunctionParam { name: "expression", required: true },
732 FunctionParam { name: "unit", required: false },
733 FunctionParam { name: "zone", required: false },
734 FunctionParam { name: "big_int", required: false },
735];
736static PARAMS_DATE_FROM_PARTS: &[FunctionParam] = &[
737 FunctionParam { name: "year", required: true },
738 FunctionParam { name: "month", required: false },
739 FunctionParam { name: "day", required: false },
740];
741static PARAMS_DATETIME: &[FunctionParam] = &[
742 FunctionParam { name: "this", required: true },
743 FunctionParam { name: "expression", required: false },
744];
745static PARAMS_DATETIME_ADD: &[FunctionParam] = &[
746 FunctionParam { name: "this", required: true },
747 FunctionParam { name: "expression", required: true },
748 FunctionParam { name: "unit", required: false },
749];
750static PARAMS_DATETIME_DIFF: &[FunctionParam] = &[
751 FunctionParam { name: "this", required: true },
752 FunctionParam { name: "expression", required: true },
753 FunctionParam { name: "unit", required: false },
754];
755static PARAMS_DATETIME_SUB: &[FunctionParam] = &[
756 FunctionParam { name: "this", required: true },
757 FunctionParam { name: "expression", required: true },
758 FunctionParam { name: "unit", required: false },
759];
760static PARAMS_DATETIME_TRUNC: &[FunctionParam] = &[
761 FunctionParam { name: "this", required: true },
762 FunctionParam { name: "unit", required: true },
763 FunctionParam { name: "zone", required: false },
764];
765static PARAMS_DATE_ADD: &[FunctionParam] = &[
766 FunctionParam { name: "this", required: true },
767 FunctionParam { name: "expression", required: true },
768 FunctionParam { name: "unit", required: false },
769];
770static PARAMS_DATE_BIN: &[FunctionParam] = &[
771 FunctionParam { name: "this", required: true },
772 FunctionParam { name: "expression", required: true },
773 FunctionParam { name: "unit", required: false },
774 FunctionParam { name: "zone", required: false },
775 FunctionParam { name: "origin", required: false },
776];
777static PARAMS_DATE_FROM_UNIX_DATE: &[FunctionParam] = &[
778 FunctionParam { name: "this", required: true },
779];
780static PARAMS_DATE_STR_TO_DATE: &[FunctionParam] = &[
781 FunctionParam { name: "this", required: true },
782];
783static PARAMS_DATE_SUB: &[FunctionParam] = &[
784 FunctionParam { name: "this", required: true },
785 FunctionParam { name: "expression", required: true },
786 FunctionParam { name: "unit", required: false },
787];
788static PARAMS_DATE_TO_DATE_STR: &[FunctionParam] = &[
789 FunctionParam { name: "this", required: true },
790];
791static PARAMS_DATE_TO_DI: &[FunctionParam] = &[
792 FunctionParam { name: "this", required: true },
793];
794static PARAMS_DATE_TRUNC: &[FunctionParam] = &[
795 FunctionParam { name: "unit", required: true },
796 FunctionParam { name: "this", required: true },
797 FunctionParam { name: "zone", required: false },
798];
799static PARAMS_DAY: &[FunctionParam] = &[
800 FunctionParam { name: "this", required: true },
801];
802static PARAMS_DAY_OF_MONTH: &[FunctionParam] = &[
803 FunctionParam { name: "this", required: true },
804];
805static PARAMS_DAY_OF_WEEK: &[FunctionParam] = &[
806 FunctionParam { name: "this", required: true },
807];
808static PARAMS_DAY_OF_WEEK_ISO: &[FunctionParam] = &[
809 FunctionParam { name: "this", required: true },
810];
811static PARAMS_DAY_OF_YEAR: &[FunctionParam] = &[
812 FunctionParam { name: "this", required: true },
813];
814static PARAMS_DECODE: &[FunctionParam] = &[
815 FunctionParam { name: "this", required: true },
816 FunctionParam { name: "charset", required: true },
817 FunctionParam { name: "replace", required: false },
818];
819static PARAMS_DECODE_CASE: &[FunctionParam] = &[
820 FunctionParam { name: "expressions", required: true },
821];
822static PARAMS_DECOMPRESS_BINARY: &[FunctionParam] = &[
823 FunctionParam { name: "this", required: true },
824 FunctionParam { name: "method", required: true },
825];
826static PARAMS_DECOMPRESS_STRING: &[FunctionParam] = &[
827 FunctionParam { name: "this", required: true },
828 FunctionParam { name: "method", required: true },
829];
830static PARAMS_DEGREES: &[FunctionParam] = &[
831 FunctionParam { name: "this", required: true },
832];
833static PARAMS_DENSE_RANK: &[FunctionParam] = &[
834 FunctionParam { name: "expressions", required: false },
835];
836static PARAMS_DI_TO_DATE: &[FunctionParam] = &[
837 FunctionParam { name: "this", required: true },
838];
839static PARAMS_ENCODE: &[FunctionParam] = &[
840 FunctionParam { name: "this", required: true },
841 FunctionParam { name: "charset", required: true },
842];
843static PARAMS_ENDS_WITH: &[FunctionParam] = &[
844 FunctionParam { name: "this", required: true },
845 FunctionParam { name: "expression", required: true },
846];
847static PARAMS_EQUAL_NULL: &[FunctionParam] = &[
848 FunctionParam { name: "this", required: true },
849 FunctionParam { name: "expression", required: true },
850];
851static PARAMS_EUCLIDEAN_DISTANCE: &[FunctionParam] = &[
852 FunctionParam { name: "this", required: true },
853 FunctionParam { name: "expression", required: true },
854];
855static PARAMS_EXISTS: &[FunctionParam] = &[
856 FunctionParam { name: "this", required: true },
857 FunctionParam { name: "expression", required: false },
858];
859static PARAMS_EXP: &[FunctionParam] = &[
860 FunctionParam { name: "this", required: true },
861];
862static PARAMS_EXPLODE: &[FunctionParam] = &[
863 FunctionParam { name: "this", required: true },
864 FunctionParam { name: "expressions", required: false },
865];
866static PARAMS_EXPLODE_OUTER: &[FunctionParam] = &[
867 FunctionParam { name: "this", required: true },
868 FunctionParam { name: "expressions", required: false },
869];
870static PARAMS_EXPLODING_GENERATE_SERIES: &[FunctionParam] = &[
871 FunctionParam { name: "start", required: true },
872 FunctionParam { name: "end", required: true },
873 FunctionParam { name: "step", required: false },
874 FunctionParam { name: "is_end_exclusive", required: false },
875];
876static PARAMS_EXTRACT: &[FunctionParam] = &[
877 FunctionParam { name: "this", required: true },
878 FunctionParam { name: "expression", required: true },
879];
880static PARAMS_FACTORIAL: &[FunctionParam] = &[
881 FunctionParam { name: "this", required: true },
882];
883static PARAMS_FARM_FINGERPRINT: &[FunctionParam] = &[
884 FunctionParam { name: "expressions", required: true },
885];
886static PARAMS_FEATURES_AT_TIME: &[FunctionParam] = &[
887 FunctionParam { name: "this", required: true },
888 FunctionParam { name: "time", required: false },
889 FunctionParam { name: "num_rows", required: false },
890 FunctionParam { name: "ignore_feature_nulls", required: false },
891];
892static PARAMS_FIRST: &[FunctionParam] = &[
893 FunctionParam { name: "this", required: true },
894 FunctionParam { name: "expression", required: false },
895];
896static PARAMS_FIRST_VALUE: &[FunctionParam] = &[
897 FunctionParam { name: "this", required: true },
898];
899static PARAMS_FLATTEN: &[FunctionParam] = &[
900 FunctionParam { name: "this", required: true },
901];
902static PARAMS_FLOAT64: &[FunctionParam] = &[
903 FunctionParam { name: "this", required: true },
904 FunctionParam { name: "expression", required: false },
905];
906static PARAMS_FLOOR: &[FunctionParam] = &[
907 FunctionParam { name: "this", required: true },
908 FunctionParam { name: "decimals", required: false },
909 FunctionParam { name: "to", required: false },
910];
911static PARAMS_FORMAT: &[FunctionParam] = &[
912 FunctionParam { name: "this", required: true },
913 FunctionParam { name: "expressions", required: false },
914];
915static PARAMS_FROM_BASE: &[FunctionParam] = &[
916 FunctionParam { name: "this", required: true },
917 FunctionParam { name: "expression", required: true },
918];
919static PARAMS_FROM_BASE32: &[FunctionParam] = &[
920 FunctionParam { name: "this", required: true },
921];
922static PARAMS_FROM_BASE64: &[FunctionParam] = &[
923 FunctionParam { name: "this", required: true },
924];
925static PARAMS_FROM_ISO8601TIMESTAMP: &[FunctionParam] = &[
926 FunctionParam { name: "this", required: true },
927];
928static PARAMS_GAP_FILL: &[FunctionParam] = &[
929 FunctionParam { name: "this", required: true },
930 FunctionParam { name: "ts_column", required: true },
931 FunctionParam { name: "bucket_width", required: true },
932 FunctionParam { name: "partitioning_columns", required: false },
933 FunctionParam { name: "value_columns", required: false },
934 FunctionParam { name: "origin", required: false },
935 FunctionParam { name: "ignore_nulls", required: false },
936];
937static PARAMS_GENERATE_DATE_ARRAY: &[FunctionParam] = &[
938 FunctionParam { name: "start", required: true },
939 FunctionParam { name: "end", required: true },
940 FunctionParam { name: "step", required: false },
941];
942static PARAMS_GENERATE_EMBEDDING: &[FunctionParam] = &[
943 FunctionParam { name: "this", required: true },
944 FunctionParam { name: "expression", required: true },
945 FunctionParam { name: "params_struct", required: false },
946 FunctionParam { name: "is_text", required: false },
947];
948static PARAMS_GENERATE_SERIES: &[FunctionParam] = &[
949 FunctionParam { name: "start", required: true },
950 FunctionParam { name: "end", required: true },
951 FunctionParam { name: "step", required: false },
952 FunctionParam { name: "is_end_exclusive", required: false },
953];
954static PARAMS_GENERATE_TIMESTAMP_ARRAY: &[FunctionParam] = &[
955 FunctionParam { name: "start", required: true },
956 FunctionParam { name: "end", required: true },
957 FunctionParam { name: "step", required: true },
958];
959static PARAMS_UUID: &[FunctionParam] = &[
960 FunctionParam { name: "this", required: false },
961 FunctionParam { name: "name", required: false },
962 FunctionParam { name: "is_string", required: false },
963];
964static PARAMS_GETBIT: &[FunctionParam] = &[
965 FunctionParam { name: "this", required: true },
966 FunctionParam { name: "expression", required: true },
967];
968static PARAMS_GET_EXTRACT: &[FunctionParam] = &[
969 FunctionParam { name: "this", required: true },
970 FunctionParam { name: "expression", required: true },
971];
972static PARAMS_GREATEST: &[FunctionParam] = &[
973 FunctionParam { name: "this", required: true },
974 FunctionParam { name: "expressions", required: false },
975 FunctionParam { name: "null_if_any_null", required: false },
976];
977static PARAMS_GREATEST_IGNORE_NULLS: &[FunctionParam] = &[
978 FunctionParam { name: "expressions", required: true },
979];
980static PARAMS_GROUPING: &[FunctionParam] = &[
981 FunctionParam { name: "expressions", required: true },
982];
983static PARAMS_GROUPING_ID: &[FunctionParam] = &[
984 FunctionParam { name: "expressions", required: true },
985];
986static PARAMS_GROUP_CONCAT: &[FunctionParam] = &[
987 FunctionParam { name: "this", required: true },
988 FunctionParam { name: "separator", required: false },
989 FunctionParam { name: "on_overflow", required: false },
990];
991static PARAMS_HEX: &[FunctionParam] = &[
992 FunctionParam { name: "this", required: true },
993];
994static PARAMS_HEX_DECODE_STRING: &[FunctionParam] = &[
995 FunctionParam { name: "this", required: true },
996];
997static PARAMS_HEX_ENCODE: &[FunctionParam] = &[
998 FunctionParam { name: "this", required: true },
999 FunctionParam { name: "case", required: false },
1000];
1001static PARAMS_HLL: &[FunctionParam] = &[
1002 FunctionParam { name: "this", required: true },
1003 FunctionParam { name: "expressions", required: false },
1004];
1005static PARAMS_HOUR: &[FunctionParam] = &[
1006 FunctionParam { name: "this", required: true },
1007];
1008static PARAMS_IF: &[FunctionParam] = &[
1009 FunctionParam { name: "this", required: true },
1010 FunctionParam { name: "true", required: true },
1011 FunctionParam { name: "false", required: false },
1012];
1013static PARAMS_INITCAP: &[FunctionParam] = &[
1014 FunctionParam { name: "this", required: true },
1015 FunctionParam { name: "expression", required: false },
1016];
1017static PARAMS_INLINE: &[FunctionParam] = &[
1018 FunctionParam { name: "this", required: true },
1019];
1020static PARAMS_STUFF: &[FunctionParam] = &[
1021 FunctionParam { name: "this", required: true },
1022 FunctionParam { name: "start", required: true },
1023 FunctionParam { name: "length", required: true },
1024 FunctionParam { name: "expression", required: true },
1025];
1026static PARAMS_INT64: &[FunctionParam] = &[
1027 FunctionParam { name: "this", required: true },
1028];
1029static PARAMS_IS_INF: &[FunctionParam] = &[
1030 FunctionParam { name: "this", required: true },
1031];
1032static PARAMS_IS_NAN: &[FunctionParam] = &[
1033 FunctionParam { name: "this", required: true },
1034];
1035static PARAMS_IS_ASCII: &[FunctionParam] = &[
1036 FunctionParam { name: "this", required: true },
1037];
1038static PARAMS_IS_NULL_VALUE: &[FunctionParam] = &[
1039 FunctionParam { name: "this", required: true },
1040];
1041static PARAMS_JAROWINKLER_SIMILARITY: &[FunctionParam] = &[
1042 FunctionParam { name: "this", required: true },
1043 FunctionParam { name: "expression", required: true },
1044];
1045static PARAMS_JSONB_CONTAINS: &[FunctionParam] = &[
1046 FunctionParam { name: "this", required: true },
1047 FunctionParam { name: "expression", required: true },
1048];
1049static PARAMS_JSONB_EXISTS: &[FunctionParam] = &[
1050 FunctionParam { name: "this", required: true },
1051 FunctionParam { name: "path", required: true },
1052];
1053static PARAMS_JSONB_EXTRACT: &[FunctionParam] = &[
1054 FunctionParam { name: "this", required: true },
1055 FunctionParam { name: "expression", required: true },
1056];
1057static PARAMS_JSONB_EXTRACT_SCALAR: &[FunctionParam] = &[
1058 FunctionParam { name: "this", required: true },
1059 FunctionParam { name: "expression", required: true },
1060 FunctionParam { name: "json_type", required: false },
1061];
1062static PARAMS_JSON_ARRAY_APPEND: &[FunctionParam] = &[
1063 FunctionParam { name: "this", required: true },
1064 FunctionParam { name: "expressions", required: true },
1065];
1066static PARAMS_JSON_ARRAY_CONTAINS: &[FunctionParam] = &[
1067 FunctionParam { name: "this", required: true },
1068 FunctionParam { name: "expression", required: true },
1069 FunctionParam { name: "json_type", required: false },
1070];
1071static PARAMS_JSON_ARRAY_INSERT: &[FunctionParam] = &[
1072 FunctionParam { name: "this", required: true },
1073 FunctionParam { name: "expressions", required: true },
1074];
1075static PARAMS_JSON_EXTRACT: &[FunctionParam] = &[
1076 FunctionParam { name: "this", required: true },
1077 FunctionParam { name: "expression", required: true },
1078 FunctionParam { name: "only_json_types", required: false },
1079 FunctionParam { name: "expressions", required: false },
1080 FunctionParam { name: "variant_extract", required: false },
1081 FunctionParam { name: "json_query", required: false },
1082 FunctionParam { name: "option", required: false },
1083 FunctionParam { name: "quote", required: false },
1084 FunctionParam { name: "on_condition", required: false },
1085 FunctionParam { name: "requires_json", required: false },
1086];
1087static PARAMS_JSON_EXTRACT_ARRAY: &[FunctionParam] = &[
1088 FunctionParam { name: "this", required: true },
1089 FunctionParam { name: "expression", required: false },
1090];
1091static PARAMS_JSON_EXTRACT_SCALAR: &[FunctionParam] = &[
1092 FunctionParam { name: "this", required: true },
1093 FunctionParam { name: "expression", required: true },
1094 FunctionParam { name: "only_json_types", required: false },
1095 FunctionParam { name: "expressions", required: false },
1096 FunctionParam { name: "json_type", required: false },
1097 FunctionParam { name: "scalar_only", required: false },
1098];
1099static PARAMS_JSON_FORMAT: &[FunctionParam] = &[
1100 FunctionParam { name: "this", required: false },
1101 FunctionParam { name: "options", required: false },
1102 FunctionParam { name: "is_json", required: false },
1103 FunctionParam { name: "to_json", required: false },
1104];
1105static PARAMS_PARSE_JSON: &[FunctionParam] = &[
1106 FunctionParam { name: "this", required: true },
1107 FunctionParam { name: "expression", required: false },
1108 FunctionParam { name: "safe", required: false },
1109];
1110static PARAMS_JSON_REMOVE: &[FunctionParam] = &[
1111 FunctionParam { name: "this", required: true },
1112 FunctionParam { name: "expressions", required: true },
1113];
1114static PARAMS_JSON_SET: &[FunctionParam] = &[
1115 FunctionParam { name: "this", required: true },
1116 FunctionParam { name: "expressions", required: true },
1117];
1118static PARAMS_JSON_STRIP_NULLS: &[FunctionParam] = &[
1119 FunctionParam { name: "this", required: true },
1120 FunctionParam { name: "expression", required: false },
1121 FunctionParam { name: "include_arrays", required: false },
1122 FunctionParam { name: "remove_empty", required: false },
1123];
1124static PARAMS_JSON_TYPE: &[FunctionParam] = &[
1125 FunctionParam { name: "this", required: true },
1126 FunctionParam { name: "expression", required: false },
1127];
1128static PARAMS_JUSTIFY_DAYS: &[FunctionParam] = &[
1129 FunctionParam { name: "this", required: true },
1130];
1131static PARAMS_JUSTIFY_HOURS: &[FunctionParam] = &[
1132 FunctionParam { name: "this", required: true },
1133];
1134static PARAMS_JUSTIFY_INTERVAL: &[FunctionParam] = &[
1135 FunctionParam { name: "this", required: true },
1136];
1137static PARAMS_JSON_ARRAY: &[FunctionParam] = &[
1138 FunctionParam { name: "expressions", required: false },
1139 FunctionParam { name: "null_handling", required: false },
1140 FunctionParam { name: "return_type", required: false },
1141 FunctionParam { name: "strict", required: false },
1142];
1143static PARAMS_JSON_ARRAY_AGG: &[FunctionParam] = &[
1144 FunctionParam { name: "this", required: true },
1145 FunctionParam { name: "order", required: false },
1146 FunctionParam { name: "null_handling", required: false },
1147 FunctionParam { name: "return_type", required: false },
1148 FunctionParam { name: "strict", required: false },
1149];
1150static PARAMS_JSON_BOOL: &[FunctionParam] = &[
1151 FunctionParam { name: "this", required: true },
1152];
1153static PARAMS_JSONB_CONTAINS_ALL_TOP_KEYS: &[FunctionParam] = &[
1154 FunctionParam { name: "this", required: true },
1155 FunctionParam { name: "expression", required: true },
1156];
1157static PARAMS_JSONB_CONTAINS_ANY_TOP_KEYS: &[FunctionParam] = &[
1158 FunctionParam { name: "this", required: true },
1159 FunctionParam { name: "expression", required: true },
1160];
1161static PARAMS_JSONB_DELETE_AT_PATH: &[FunctionParam] = &[
1162 FunctionParam { name: "this", required: true },
1163 FunctionParam { name: "expression", required: true },
1164];
1165static PARAMS_JSONB_OBJECT_AGG: &[FunctionParam] = &[
1166 FunctionParam { name: "this", required: true },
1167 FunctionParam { name: "expression", required: true },
1168];
1169static PARAMS_JSON_CAST: &[FunctionParam] = &[
1170 FunctionParam { name: "this", required: true },
1171 FunctionParam { name: "to", required: true },
1172 FunctionParam { name: "format", required: false },
1173 FunctionParam { name: "safe", required: false },
1174 FunctionParam { name: "action", required: false },
1175 FunctionParam { name: "default", required: false },
1176];
1177static PARAMS_JSON_EXISTS: &[FunctionParam] = &[
1178 FunctionParam { name: "this", required: true },
1179 FunctionParam { name: "path", required: true },
1180 FunctionParam { name: "passing", required: false },
1181 FunctionParam { name: "on_condition", required: false },
1182];
1183static PARAMS_JSON_KEYS_AT_DEPTH: &[FunctionParam] = &[
1184 FunctionParam { name: "this", required: true },
1185 FunctionParam { name: "expression", required: false },
1186 FunctionParam { name: "mode", required: false },
1187];
1188static PARAMS_JSON_OBJECT: &[FunctionParam] = &[
1189 FunctionParam { name: "expressions", required: false },
1190 FunctionParam { name: "null_handling", required: false },
1191 FunctionParam { name: "unique_keys", required: false },
1192 FunctionParam { name: "return_type", required: false },
1193 FunctionParam { name: "encoding", required: false },
1194];
1195static PARAMS_JSON_OBJECT_AGG: &[FunctionParam] = &[
1196 FunctionParam { name: "expressions", required: false },
1197 FunctionParam { name: "null_handling", required: false },
1198 FunctionParam { name: "unique_keys", required: false },
1199 FunctionParam { name: "return_type", required: false },
1200 FunctionParam { name: "encoding", required: false },
1201];
1202static PARAMS_JSON_TABLE: &[FunctionParam] = &[
1203 FunctionParam { name: "this", required: true },
1204 FunctionParam { name: "schema", required: true },
1205 FunctionParam { name: "path", required: false },
1206 FunctionParam { name: "error_handling", required: false },
1207 FunctionParam { name: "empty_handling", required: false },
1208];
1209static PARAMS_JSON_VALUE_ARRAY: &[FunctionParam] = &[
1210 FunctionParam { name: "this", required: true },
1211 FunctionParam { name: "expression", required: false },
1212];
1213static PARAMS_LAG: &[FunctionParam] = &[
1214 FunctionParam { name: "this", required: true },
1215 FunctionParam { name: "offset", required: false },
1216 FunctionParam { name: "default", required: false },
1217];
1218static PARAMS_LAST: &[FunctionParam] = &[
1219 FunctionParam { name: "this", required: true },
1220 FunctionParam { name: "expression", required: false },
1221];
1222static PARAMS_LAST_DAY: &[FunctionParam] = &[
1223 FunctionParam { name: "this", required: true },
1224 FunctionParam { name: "unit", required: false },
1225];
1226static PARAMS_LAST_VALUE: &[FunctionParam] = &[
1227 FunctionParam { name: "this", required: true },
1228];
1229static PARAMS_LAX_BOOL: &[FunctionParam] = &[
1230 FunctionParam { name: "this", required: true },
1231];
1232static PARAMS_LAX_FLOAT64: &[FunctionParam] = &[
1233 FunctionParam { name: "this", required: true },
1234];
1235static PARAMS_LAX_INT64: &[FunctionParam] = &[
1236 FunctionParam { name: "this", required: true },
1237];
1238static PARAMS_LAX_STRING: &[FunctionParam] = &[
1239 FunctionParam { name: "this", required: true },
1240];
1241static PARAMS_LOWER: &[FunctionParam] = &[
1242 FunctionParam { name: "this", required: true },
1243];
1244static PARAMS_LEAD: &[FunctionParam] = &[
1245 FunctionParam { name: "this", required: true },
1246 FunctionParam { name: "offset", required: false },
1247 FunctionParam { name: "default", required: false },
1248];
1249static PARAMS_LEAST: &[FunctionParam] = &[
1250 FunctionParam { name: "this", required: true },
1251 FunctionParam { name: "expressions", required: false },
1252 FunctionParam { name: "null_if_any_null", required: false },
1253];
1254static PARAMS_LEAST_IGNORE_NULLS: &[FunctionParam] = &[
1255 FunctionParam { name: "expressions", required: true },
1256];
1257static PARAMS_LEFT: &[FunctionParam] = &[
1258 FunctionParam { name: "this", required: true },
1259 FunctionParam { name: "expression", required: true },
1260];
1261static PARAMS_LEVENSHTEIN: &[FunctionParam] = &[
1262 FunctionParam { name: "this", required: true },
1263 FunctionParam { name: "expression", required: false },
1264 FunctionParam { name: "ins_cost", required: false },
1265 FunctionParam { name: "del_cost", required: false },
1266 FunctionParam { name: "sub_cost", required: false },
1267 FunctionParam { name: "max_dist", required: false },
1268];
1269static PARAMS_LIST: &[FunctionParam] = &[
1270 FunctionParam { name: "expressions", required: false },
1271];
1272static PARAMS_LN: &[FunctionParam] = &[
1273 FunctionParam { name: "this", required: true },
1274];
1275static PARAMS_LOG: &[FunctionParam] = &[
1276 FunctionParam { name: "this", required: true },
1277 FunctionParam { name: "expression", required: false },
1278];
1279static PARAMS_LOWER_HEX: &[FunctionParam] = &[
1280 FunctionParam { name: "this", required: true },
1281];
1282static PARAMS_MAKE_INTERVAL: &[FunctionParam] = &[
1283 FunctionParam { name: "year", required: false },
1284 FunctionParam { name: "month", required: false },
1285 FunctionParam { name: "day", required: false },
1286 FunctionParam { name: "hour", required: false },
1287 FunctionParam { name: "minute", required: false },
1288 FunctionParam { name: "second", required: false },
1289];
1290static PARAMS_MAP: &[FunctionParam] = &[
1291 FunctionParam { name: "keys", required: false },
1292 FunctionParam { name: "values", required: false },
1293];
1294static PARAMS_MAP_FROM_ENTRIES: &[FunctionParam] = &[
1295 FunctionParam { name: "this", required: true },
1296];
1297static PARAMS_MATCH_AGAINST: &[FunctionParam] = &[
1298 FunctionParam { name: "this", required: true },
1299 FunctionParam { name: "expressions", required: true },
1300 FunctionParam { name: "modifier", required: false },
1301];
1302static PARAMS_MAX: &[FunctionParam] = &[
1303 FunctionParam { name: "this", required: true },
1304 FunctionParam { name: "expressions", required: false },
1305];
1306static PARAMS_MD5: &[FunctionParam] = &[
1307 FunctionParam { name: "this", required: true },
1308];
1309static PARAMS_MD5DIGEST: &[FunctionParam] = &[
1310 FunctionParam { name: "this", required: true },
1311];
1312static PARAMS_MEDIAN: &[FunctionParam] = &[
1313 FunctionParam { name: "this", required: true },
1314];
1315static PARAMS_MIN: &[FunctionParam] = &[
1316 FunctionParam { name: "this", required: true },
1317 FunctionParam { name: "expressions", required: false },
1318];
1319static PARAMS_MINHASH: &[FunctionParam] = &[
1320 FunctionParam { name: "this", required: true },
1321 FunctionParam { name: "expressions", required: true },
1322];
1323static PARAMS_MINHASH_COMBINE: &[FunctionParam] = &[
1324 FunctionParam { name: "this", required: true },
1325];
1326static PARAMS_MINUTE: &[FunctionParam] = &[
1327 FunctionParam { name: "this", required: true },
1328];
1329static PARAMS_MONTH: &[FunctionParam] = &[
1330 FunctionParam { name: "this", required: true },
1331];
1332static PARAMS_MONTHNAME: &[FunctionParam] = &[
1333 FunctionParam { name: "this", required: true },
1334];
1335static PARAMS_MONTHS_BETWEEN: &[FunctionParam] = &[
1336 FunctionParam { name: "this", required: true },
1337 FunctionParam { name: "expression", required: true },
1338 FunctionParam { name: "roundoff", required: false },
1339];
1340static PARAMS_MD5NUMBER_LOWER64: &[FunctionParam] = &[
1341 FunctionParam { name: "this", required: true },
1342];
1343static PARAMS_MD5NUMBER_UPPER64: &[FunctionParam] = &[
1344 FunctionParam { name: "this", required: true },
1345];
1346static PARAMS_ML_FORECAST: &[FunctionParam] = &[
1347 FunctionParam { name: "this", required: true },
1348 FunctionParam { name: "expression", required: false },
1349 FunctionParam { name: "params_struct", required: false },
1350];
1351static PARAMS_ML_TRANSLATE: &[FunctionParam] = &[
1352 FunctionParam { name: "this", required: true },
1353 FunctionParam { name: "expression", required: true },
1354 FunctionParam { name: "params_struct", required: true },
1355];
1356static PARAMS_NEXT_DAY: &[FunctionParam] = &[
1357 FunctionParam { name: "this", required: true },
1358 FunctionParam { name: "expression", required: true },
1359];
1360static PARAMS_NEXT_VALUE_FOR: &[FunctionParam] = &[
1361 FunctionParam { name: "this", required: true },
1362 FunctionParam { name: "order", required: false },
1363];
1364static PARAMS_NORMALIZE: &[FunctionParam] = &[
1365 FunctionParam { name: "this", required: true },
1366 FunctionParam { name: "form", required: false },
1367 FunctionParam { name: "is_casefold", required: false },
1368];
1369static PARAMS_NTH_VALUE: &[FunctionParam] = &[
1370 FunctionParam { name: "this", required: true },
1371 FunctionParam { name: "offset", required: true },
1372];
1373static PARAMS_NTILE: &[FunctionParam] = &[
1374 FunctionParam { name: "this", required: false },
1375];
1376static PARAMS_NULLIF: &[FunctionParam] = &[
1377 FunctionParam { name: "this", required: true },
1378 FunctionParam { name: "expression", required: true },
1379];
1380static PARAMS_NUMBER_TO_STR: &[FunctionParam] = &[
1381 FunctionParam { name: "this", required: true },
1382 FunctionParam { name: "format", required: true },
1383 FunctionParam { name: "culture", required: false },
1384];
1385static PARAMS_NVL2: &[FunctionParam] = &[
1386 FunctionParam { name: "this", required: true },
1387 FunctionParam { name: "true", required: true },
1388 FunctionParam { name: "false", required: false },
1389];
1390static PARAMS_OBJECT_AGG: &[FunctionParam] = &[
1391 FunctionParam { name: "this", required: true },
1392 FunctionParam { name: "expression", required: true },
1393];
1394static PARAMS_OBJECT_INSERT: &[FunctionParam] = &[
1395 FunctionParam { name: "this", required: true },
1396 FunctionParam { name: "key", required: true },
1397 FunctionParam { name: "value", required: true },
1398 FunctionParam { name: "update_flag", required: false },
1399];
1400static PARAMS_OPEN_JSON: &[FunctionParam] = &[
1401 FunctionParam { name: "this", required: true },
1402 FunctionParam { name: "path", required: false },
1403 FunctionParam { name: "expressions", required: false },
1404];
1405static PARAMS_OR: &[FunctionParam] = &[
1406 FunctionParam { name: "this", required: true },
1407 FunctionParam { name: "expression", required: true },
1408];
1409static PARAMS_OVERLAY: &[FunctionParam] = &[
1410 FunctionParam { name: "this", required: true },
1411 FunctionParam { name: "expression", required: true },
1412 FunctionParam { name: "from_", required: true },
1413 FunctionParam { name: "for_", required: false },
1414];
1415static PARAMS_PAD: &[FunctionParam] = &[
1416 FunctionParam { name: "this", required: true },
1417 FunctionParam { name: "expression", required: true },
1418 FunctionParam { name: "fill_pattern", required: false },
1419 FunctionParam { name: "is_left", required: true },
1420];
1421static PARAMS_PARAMETERIZED_AGG: &[FunctionParam] = &[
1422 FunctionParam { name: "this", required: true },
1423 FunctionParam { name: "expressions", required: true },
1424 FunctionParam { name: "params", required: true },
1425];
1426static PARAMS_PARSE_BIGNUMERIC: &[FunctionParam] = &[
1427 FunctionParam { name: "this", required: true },
1428];
1429static PARAMS_PARSE_DATETIME: &[FunctionParam] = &[
1430 FunctionParam { name: "this", required: true },
1431 FunctionParam { name: "format", required: false },
1432 FunctionParam { name: "zone", required: false },
1433];
1434static PARAMS_PARSE_IP: &[FunctionParam] = &[
1435 FunctionParam { name: "this", required: true },
1436 FunctionParam { name: "type", required: true },
1437 FunctionParam { name: "permissive", required: false },
1438];
1439static PARAMS_PARSE_NUMERIC: &[FunctionParam] = &[
1440 FunctionParam { name: "this", required: true },
1441];
1442static PARAMS_PARSE_TIME: &[FunctionParam] = &[
1443 FunctionParam { name: "this", required: true },
1444 FunctionParam { name: "format", required: true },
1445];
1446static PARAMS_PARSE_URL: &[FunctionParam] = &[
1447 FunctionParam { name: "this", required: true },
1448 FunctionParam { name: "part_to_extract", required: false },
1449 FunctionParam { name: "key", required: false },
1450 FunctionParam { name: "permissive", required: false },
1451];
1452static PARAMS_PERCENTILE_CONT: &[FunctionParam] = &[
1453 FunctionParam { name: "this", required: true },
1454 FunctionParam { name: "expression", required: false },
1455];
1456static PARAMS_PERCENTILE_DISC: &[FunctionParam] = &[
1457 FunctionParam { name: "this", required: true },
1458 FunctionParam { name: "expression", required: false },
1459];
1460static PARAMS_PERCENT_RANK: &[FunctionParam] = &[
1461 FunctionParam { name: "expressions", required: false },
1462];
1463static PARAMS_POSEXPLODE: &[FunctionParam] = &[
1464 FunctionParam { name: "this", required: true },
1465 FunctionParam { name: "expressions", required: false },
1466];
1467static PARAMS_POSEXPLODE_OUTER: &[FunctionParam] = &[
1468 FunctionParam { name: "this", required: true },
1469 FunctionParam { name: "expressions", required: false },
1470];
1471static PARAMS_POW: &[FunctionParam] = &[
1472 FunctionParam { name: "this", required: true },
1473 FunctionParam { name: "expression", required: true },
1474];
1475static PARAMS_PREDICT: &[FunctionParam] = &[
1476 FunctionParam { name: "this", required: true },
1477 FunctionParam { name: "expression", required: true },
1478 FunctionParam { name: "params_struct", required: false },
1479];
1480static PARAMS_PREVIOUS_DAY: &[FunctionParam] = &[
1481 FunctionParam { name: "this", required: true },
1482 FunctionParam { name: "expression", required: true },
1483];
1484static PARAMS_QUANTILE: &[FunctionParam] = &[
1485 FunctionParam { name: "this", required: true },
1486 FunctionParam { name: "quantile", required: true },
1487];
1488static PARAMS_QUARTER: &[FunctionParam] = &[
1489 FunctionParam { name: "this", required: true },
1490];
1491static PARAMS_RADIANS: &[FunctionParam] = &[
1492 FunctionParam { name: "this", required: true },
1493];
1494static PARAMS_RAND: &[FunctionParam] = &[
1495 FunctionParam { name: "this", required: false },
1496 FunctionParam { name: "lower", required: false },
1497 FunctionParam { name: "upper", required: false },
1498];
1499static PARAMS_RANDN: &[FunctionParam] = &[
1500 FunctionParam { name: "this", required: false },
1501];
1502static PARAMS_RANGE_BUCKET: &[FunctionParam] = &[
1503 FunctionParam { name: "this", required: true },
1504 FunctionParam { name: "expression", required: true },
1505];
1506static PARAMS_RANGE_N: &[FunctionParam] = &[
1507 FunctionParam { name: "this", required: true },
1508 FunctionParam { name: "expressions", required: true },
1509 FunctionParam { name: "each", required: false },
1510];
1511static PARAMS_RANK: &[FunctionParam] = &[
1512 FunctionParam { name: "expressions", required: false },
1513];
1514static PARAMS_READ_CSV: &[FunctionParam] = &[
1515 FunctionParam { name: "this", required: true },
1516 FunctionParam { name: "expressions", required: false },
1517];
1518static PARAMS_READ_PARQUET: &[FunctionParam] = &[
1519 FunctionParam { name: "expressions", required: true },
1520];
1521static PARAMS_REDUCE: &[FunctionParam] = &[
1522 FunctionParam { name: "this", required: true },
1523 FunctionParam { name: "initial", required: true },
1524 FunctionParam { name: "merge", required: true },
1525 FunctionParam { name: "finish", required: false },
1526];
1527static PARAMS_REGEXP_COUNT: &[FunctionParam] = &[
1528 FunctionParam { name: "this", required: true },
1529 FunctionParam { name: "expression", required: true },
1530 FunctionParam { name: "position", required: false },
1531 FunctionParam { name: "parameters", required: false },
1532];
1533static PARAMS_REGEXP_EXTRACT: &[FunctionParam] = &[
1534 FunctionParam { name: "this", required: true },
1535 FunctionParam { name: "expression", required: true },
1536 FunctionParam { name: "position", required: false },
1537 FunctionParam { name: "occurrence", required: false },
1538 FunctionParam { name: "parameters", required: false },
1539 FunctionParam { name: "group", required: false },
1540];
1541static PARAMS_REGEXP_EXTRACT_ALL: &[FunctionParam] = &[
1542 FunctionParam { name: "this", required: true },
1543 FunctionParam { name: "expression", required: true },
1544 FunctionParam { name: "group", required: false },
1545 FunctionParam { name: "parameters", required: false },
1546 FunctionParam { name: "position", required: false },
1547 FunctionParam { name: "occurrence", required: false },
1548];
1549static PARAMS_REGEXP_FULL_MATCH: &[FunctionParam] = &[
1550 FunctionParam { name: "this", required: true },
1551 FunctionParam { name: "expression", required: true },
1552 FunctionParam { name: "options", required: false },
1553];
1554static PARAMS_REGEXP_INSTR: &[FunctionParam] = &[
1555 FunctionParam { name: "this", required: true },
1556 FunctionParam { name: "expression", required: true },
1557 FunctionParam { name: "position", required: false },
1558 FunctionParam { name: "occurrence", required: false },
1559 FunctionParam { name: "option", required: false },
1560 FunctionParam { name: "parameters", required: false },
1561 FunctionParam { name: "group", required: false },
1562];
1563static PARAMS_REGEXP_I_LIKE: &[FunctionParam] = &[
1564 FunctionParam { name: "this", required: true },
1565 FunctionParam { name: "expression", required: true },
1566 FunctionParam { name: "flag", required: false },
1567];
1568static PARAMS_REGEXP_LIKE: &[FunctionParam] = &[
1569 FunctionParam { name: "this", required: true },
1570 FunctionParam { name: "expression", required: true },
1571 FunctionParam { name: "flag", required: false },
1572];
1573static PARAMS_REGEXP_REPLACE: &[FunctionParam] = &[
1574 FunctionParam { name: "this", required: true },
1575 FunctionParam { name: "expression", required: true },
1576 FunctionParam { name: "replacement", required: false },
1577 FunctionParam { name: "position", required: false },
1578 FunctionParam { name: "occurrence", required: false },
1579 FunctionParam { name: "modifiers", required: false },
1580 FunctionParam { name: "single_replace", required: false },
1581];
1582static PARAMS_REGEXP_SPLIT: &[FunctionParam] = &[
1583 FunctionParam { name: "this", required: true },
1584 FunctionParam { name: "expression", required: true },
1585 FunctionParam { name: "limit", required: false },
1586];
1587static PARAMS_REGR_AVGX: &[FunctionParam] = &[
1588 FunctionParam { name: "this", required: true },
1589 FunctionParam { name: "expression", required: true },
1590];
1591static PARAMS_REGR_AVGY: &[FunctionParam] = &[
1592 FunctionParam { name: "this", required: true },
1593 FunctionParam { name: "expression", required: true },
1594];
1595static PARAMS_REGR_VALX: &[FunctionParam] = &[
1596 FunctionParam { name: "this", required: true },
1597 FunctionParam { name: "expression", required: true },
1598];
1599static PARAMS_REGR_VALY: &[FunctionParam] = &[
1600 FunctionParam { name: "this", required: true },
1601 FunctionParam { name: "expression", required: true },
1602];
1603static PARAMS_REPEAT: &[FunctionParam] = &[
1604 FunctionParam { name: "this", required: true },
1605 FunctionParam { name: "times", required: true },
1606];
1607static PARAMS_REPLACE: &[FunctionParam] = &[
1608 FunctionParam { name: "this", required: true },
1609 FunctionParam { name: "expression", required: true },
1610 FunctionParam { name: "replacement", required: false },
1611];
1612static PARAMS_REVERSE: &[FunctionParam] = &[
1613 FunctionParam { name: "this", required: true },
1614];
1615static PARAMS_RIGHT: &[FunctionParam] = &[
1616 FunctionParam { name: "this", required: true },
1617 FunctionParam { name: "expression", required: true },
1618];
1619static PARAMS_ROUND: &[FunctionParam] = &[
1620 FunctionParam { name: "this", required: true },
1621 FunctionParam { name: "decimals", required: false },
1622 FunctionParam { name: "truncate", required: false },
1623];
1624static PARAMS_ROW_NUMBER: &[FunctionParam] = &[
1625 FunctionParam { name: "this", required: false },
1626];
1627static PARAMS_RTRIMMED_LENGTH: &[FunctionParam] = &[
1628 FunctionParam { name: "this", required: true },
1629];
1630static PARAMS_SAFE_ADD: &[FunctionParam] = &[
1631 FunctionParam { name: "this", required: true },
1632 FunctionParam { name: "expression", required: true },
1633];
1634static PARAMS_SAFE_CONVERT_BYTES_TO_STRING: &[FunctionParam] = &[
1635 FunctionParam { name: "this", required: true },
1636];
1637static PARAMS_SAFE_DIVIDE: &[FunctionParam] = &[
1638 FunctionParam { name: "this", required: true },
1639 FunctionParam { name: "expression", required: true },
1640];
1641static PARAMS_SAFE_MULTIPLY: &[FunctionParam] = &[
1642 FunctionParam { name: "this", required: true },
1643 FunctionParam { name: "expression", required: true },
1644];
1645static PARAMS_SAFE_NEGATE: &[FunctionParam] = &[
1646 FunctionParam { name: "this", required: true },
1647];
1648static PARAMS_SAFE_SUBTRACT: &[FunctionParam] = &[
1649 FunctionParam { name: "this", required: true },
1650 FunctionParam { name: "expression", required: true },
1651];
1652static PARAMS_SEARCH: &[FunctionParam] = &[
1653 FunctionParam { name: "this", required: true },
1654 FunctionParam { name: "expression", required: true },
1655 FunctionParam { name: "json_scope", required: false },
1656 FunctionParam { name: "analyzer", required: false },
1657 FunctionParam { name: "analyzer_options", required: false },
1658 FunctionParam { name: "search_mode", required: false },
1659];
1660static PARAMS_SEC: &[FunctionParam] = &[
1661 FunctionParam { name: "this", required: true },
1662];
1663static PARAMS_SECH: &[FunctionParam] = &[
1664 FunctionParam { name: "this", required: true },
1665];
1666static PARAMS_SECOND: &[FunctionParam] = &[
1667 FunctionParam { name: "this", required: true },
1668];
1669static PARAMS_SHA: &[FunctionParam] = &[
1670 FunctionParam { name: "this", required: true },
1671];
1672static PARAMS_SHA2: &[FunctionParam] = &[
1673 FunctionParam { name: "this", required: true },
1674 FunctionParam { name: "length", required: false },
1675];
1676static PARAMS_SIGN: &[FunctionParam] = &[
1677 FunctionParam { name: "this", required: true },
1678];
1679static PARAMS_SIN: &[FunctionParam] = &[
1680 FunctionParam { name: "this", required: true },
1681];
1682static PARAMS_SINH: &[FunctionParam] = &[
1683 FunctionParam { name: "this", required: true },
1684];
1685static PARAMS_SKEWNESS: &[FunctionParam] = &[
1686 FunctionParam { name: "this", required: true },
1687];
1688static PARAMS_SORT_ARRAY: &[FunctionParam] = &[
1689 FunctionParam { name: "this", required: true },
1690 FunctionParam { name: "asc", required: false },
1691 FunctionParam { name: "nulls_first", required: false },
1692];
1693static PARAMS_SOUNDEX: &[FunctionParam] = &[
1694 FunctionParam { name: "this", required: true },
1695];
1696static PARAMS_SOUNDEX_P123: &[FunctionParam] = &[
1697 FunctionParam { name: "this", required: true },
1698];
1699static PARAMS_SPACE: &[FunctionParam] = &[
1700 FunctionParam { name: "this", required: true },
1701];
1702static PARAMS_SPLIT: &[FunctionParam] = &[
1703 FunctionParam { name: "this", required: true },
1704 FunctionParam { name: "expression", required: true },
1705 FunctionParam { name: "limit", required: false },
1706];
1707static PARAMS_STRING_TO_ARRAY: &[FunctionParam] = &[
1708 FunctionParam { name: "this", required: true },
1709 FunctionParam { name: "expression", required: false },
1710 FunctionParam { name: "null", required: false },
1711];
1712static PARAMS_SPLIT_PART: &[FunctionParam] = &[
1713 FunctionParam { name: "this", required: true },
1714 FunctionParam { name: "delimiter", required: false },
1715 FunctionParam { name: "part_index", required: false },
1716];
1717static PARAMS_SQRT: &[FunctionParam] = &[
1718 FunctionParam { name: "this", required: true },
1719];
1720static PARAMS_STANDARD_HASH: &[FunctionParam] = &[
1721 FunctionParam { name: "this", required: true },
1722 FunctionParam { name: "expression", required: false },
1723];
1724static PARAMS_STARTS_WITH: &[FunctionParam] = &[
1725 FunctionParam { name: "this", required: true },
1726 FunctionParam { name: "expression", required: true },
1727];
1728static PARAMS_STAR_MAP: &[FunctionParam] = &[
1729 FunctionParam { name: "this", required: true },
1730];
1731static PARAMS_STDDEV: &[FunctionParam] = &[
1732 FunctionParam { name: "this", required: true },
1733];
1734static PARAMS_STDDEV_POP: &[FunctionParam] = &[
1735 FunctionParam { name: "this", required: true },
1736];
1737static PARAMS_STDDEV_SAMP: &[FunctionParam] = &[
1738 FunctionParam { name: "this", required: true },
1739];
1740static PARAMS_STRING: &[FunctionParam] = &[
1741 FunctionParam { name: "this", required: true },
1742 FunctionParam { name: "zone", required: false },
1743];
1744static PARAMS_STRUCT: &[FunctionParam] = &[
1745 FunctionParam { name: "expressions", required: false },
1746];
1747static PARAMS_STRUCT_EXTRACT: &[FunctionParam] = &[
1748 FunctionParam { name: "this", required: true },
1749 FunctionParam { name: "expression", required: true },
1750];
1751static PARAMS_STR_POSITION: &[FunctionParam] = &[
1752 FunctionParam { name: "this", required: true },
1753 FunctionParam { name: "substr", required: true },
1754 FunctionParam { name: "position", required: false },
1755 FunctionParam { name: "occurrence", required: false },
1756];
1757static PARAMS_STR_TO_DATE: &[FunctionParam] = &[
1758 FunctionParam { name: "this", required: true },
1759 FunctionParam { name: "format", required: false },
1760 FunctionParam { name: "safe", required: false },
1761];
1762static PARAMS_STR_TO_MAP: &[FunctionParam] = &[
1763 FunctionParam { name: "this", required: true },
1764 FunctionParam { name: "pair_delim", required: false },
1765 FunctionParam { name: "key_value_delim", required: false },
1766 FunctionParam { name: "duplicate_resolution_callback", required: false },
1767];
1768static PARAMS_STR_TO_TIME: &[FunctionParam] = &[
1769 FunctionParam { name: "this", required: true },
1770 FunctionParam { name: "format", required: true },
1771 FunctionParam { name: "zone", required: false },
1772 FunctionParam { name: "safe", required: false },
1773];
1774static PARAMS_STR_TO_UNIX: &[FunctionParam] = &[
1775 FunctionParam { name: "this", required: false },
1776 FunctionParam { name: "format", required: false },
1777];
1778static PARAMS_ST_DISTANCE: &[FunctionParam] = &[
1779 FunctionParam { name: "this", required: true },
1780 FunctionParam { name: "expression", required: true },
1781 FunctionParam { name: "use_spheroid", required: false },
1782];
1783static PARAMS_ST_POINT: &[FunctionParam] = &[
1784 FunctionParam { name: "this", required: true },
1785 FunctionParam { name: "expression", required: true },
1786 FunctionParam { name: "null", required: false },
1787];
1788static PARAMS_SUBSTRING: &[FunctionParam] = &[
1789 FunctionParam { name: "this", required: true },
1790 FunctionParam { name: "start", required: false },
1791 FunctionParam { name: "length", required: false },
1792];
1793static PARAMS_SUBSTRING_INDEX: &[FunctionParam] = &[
1794 FunctionParam { name: "this", required: true },
1795 FunctionParam { name: "delimiter", required: true },
1796 FunctionParam { name: "count", required: true },
1797];
1798static PARAMS_SUM: &[FunctionParam] = &[
1799 FunctionParam { name: "this", required: true },
1800];
1801static PARAMS_SHA1DIGEST: &[FunctionParam] = &[
1802 FunctionParam { name: "this", required: true },
1803];
1804static PARAMS_SHA2DIGEST: &[FunctionParam] = &[
1805 FunctionParam { name: "this", required: true },
1806 FunctionParam { name: "length", required: false },
1807];
1808static PARAMS_TAN: &[FunctionParam] = &[
1809 FunctionParam { name: "this", required: true },
1810];
1811static PARAMS_TANH: &[FunctionParam] = &[
1812 FunctionParam { name: "this", required: true },
1813];
1814static PARAMS_TIME: &[FunctionParam] = &[
1815 FunctionParam { name: "this", required: false },
1816 FunctionParam { name: "zone", required: false },
1817];
1818static PARAMS_TIME_FROM_PARTS: &[FunctionParam] = &[
1819 FunctionParam { name: "hour", required: true },
1820 FunctionParam { name: "min", required: true },
1821 FunctionParam { name: "sec", required: true },
1822 FunctionParam { name: "nano", required: false },
1823 FunctionParam { name: "fractions", required: false },
1824 FunctionParam { name: "precision", required: false },
1825];
1826static PARAMS_TIMESTAMP: &[FunctionParam] = &[
1827 FunctionParam { name: "this", required: false },
1828 FunctionParam { name: "zone", required: false },
1829 FunctionParam { name: "with_tz", required: false },
1830];
1831static PARAMS_TIMESTAMP_DIFF: &[FunctionParam] = &[
1832 FunctionParam { name: "this", required: true },
1833 FunctionParam { name: "expression", required: true },
1834 FunctionParam { name: "unit", required: false },
1835];
1836static PARAMS_TIMESTAMP_FROM_PARTS: &[FunctionParam] = &[
1837 FunctionParam { name: "year", required: false },
1838 FunctionParam { name: "month", required: false },
1839 FunctionParam { name: "day", required: false },
1840 FunctionParam { name: "hour", required: false },
1841 FunctionParam { name: "min", required: false },
1842 FunctionParam { name: "sec", required: false },
1843 FunctionParam { name: "nano", required: false },
1844 FunctionParam { name: "zone", required: false },
1845 FunctionParam { name: "milli", required: false },
1846 FunctionParam { name: "this", required: false },
1847 FunctionParam { name: "expression", required: false },
1848];
1849static PARAMS_TIMESTAMP_LTZ_FROM_PARTS: &[FunctionParam] = &[
1850 FunctionParam { name: "year", required: false },
1851 FunctionParam { name: "month", required: false },
1852 FunctionParam { name: "day", required: false },
1853 FunctionParam { name: "hour", required: false },
1854 FunctionParam { name: "min", required: false },
1855 FunctionParam { name: "sec", required: false },
1856 FunctionParam { name: "nano", required: false },
1857];
1858static PARAMS_TIMESTAMP_TZ_FROM_PARTS: &[FunctionParam] = &[
1859 FunctionParam { name: "year", required: false },
1860 FunctionParam { name: "month", required: false },
1861 FunctionParam { name: "day", required: false },
1862 FunctionParam { name: "hour", required: false },
1863 FunctionParam { name: "min", required: false },
1864 FunctionParam { name: "sec", required: false },
1865 FunctionParam { name: "nano", required: false },
1866 FunctionParam { name: "zone", required: false },
1867];
1868static PARAMS_TIMESTAMP_ADD: &[FunctionParam] = &[
1869 FunctionParam { name: "this", required: true },
1870 FunctionParam { name: "expression", required: true },
1871 FunctionParam { name: "unit", required: false },
1872];
1873static PARAMS_TIMESTAMP_SUB: &[FunctionParam] = &[
1874 FunctionParam { name: "this", required: true },
1875 FunctionParam { name: "expression", required: true },
1876 FunctionParam { name: "unit", required: false },
1877];
1878static PARAMS_TIMESTAMP_TRUNC: &[FunctionParam] = &[
1879 FunctionParam { name: "this", required: true },
1880 FunctionParam { name: "unit", required: true },
1881 FunctionParam { name: "zone", required: false },
1882];
1883static PARAMS_TIME_ADD: &[FunctionParam] = &[
1884 FunctionParam { name: "this", required: true },
1885 FunctionParam { name: "expression", required: true },
1886 FunctionParam { name: "unit", required: false },
1887];
1888static PARAMS_TIME_DIFF: &[FunctionParam] = &[
1889 FunctionParam { name: "this", required: true },
1890 FunctionParam { name: "expression", required: true },
1891 FunctionParam { name: "unit", required: false },
1892];
1893static PARAMS_TIME_SLICE: &[FunctionParam] = &[
1894 FunctionParam { name: "this", required: true },
1895 FunctionParam { name: "expression", required: true },
1896 FunctionParam { name: "unit", required: true },
1897 FunctionParam { name: "kind", required: false },
1898];
1899static PARAMS_TIME_STR_TO_DATE: &[FunctionParam] = &[
1900 FunctionParam { name: "this", required: true },
1901];
1902static PARAMS_TIME_STR_TO_TIME: &[FunctionParam] = &[
1903 FunctionParam { name: "this", required: true },
1904 FunctionParam { name: "zone", required: false },
1905];
1906static PARAMS_TIME_STR_TO_UNIX: &[FunctionParam] = &[
1907 FunctionParam { name: "this", required: true },
1908];
1909static PARAMS_TIME_SUB: &[FunctionParam] = &[
1910 FunctionParam { name: "this", required: true },
1911 FunctionParam { name: "expression", required: true },
1912 FunctionParam { name: "unit", required: false },
1913];
1914static PARAMS_TIME_TO_STR: &[FunctionParam] = &[
1915 FunctionParam { name: "this", required: true },
1916 FunctionParam { name: "format", required: true },
1917 FunctionParam { name: "culture", required: false },
1918 FunctionParam { name: "zone", required: false },
1919];
1920static PARAMS_TIME_TO_TIME_STR: &[FunctionParam] = &[
1921 FunctionParam { name: "this", required: true },
1922];
1923static PARAMS_TIME_TO_UNIX: &[FunctionParam] = &[
1924 FunctionParam { name: "this", required: true },
1925];
1926static PARAMS_TIME_TRUNC: &[FunctionParam] = &[
1927 FunctionParam { name: "this", required: true },
1928 FunctionParam { name: "unit", required: true },
1929 FunctionParam { name: "zone", required: false },
1930];
1931static PARAMS_TO_ARRAY: &[FunctionParam] = &[
1932 FunctionParam { name: "this", required: true },
1933];
1934static PARAMS_TO_BASE32: &[FunctionParam] = &[
1935 FunctionParam { name: "this", required: true },
1936];
1937static PARAMS_TO_BASE64: &[FunctionParam] = &[
1938 FunctionParam { name: "this", required: true },
1939];
1940static PARAMS_TO_CHAR: &[FunctionParam] = &[
1941 FunctionParam { name: "this", required: true },
1942 FunctionParam { name: "format", required: false },
1943 FunctionParam { name: "nlsparam", required: false },
1944 FunctionParam { name: "is_numeric", required: false },
1945];
1946static PARAMS_TO_CODE_POINTS: &[FunctionParam] = &[
1947 FunctionParam { name: "this", required: true },
1948];
1949static PARAMS_TO_DAYS: &[FunctionParam] = &[
1950 FunctionParam { name: "this", required: true },
1951];
1952static PARAMS_TO_DOUBLE: &[FunctionParam] = &[
1953 FunctionParam { name: "this", required: true },
1954 FunctionParam { name: "format", required: false },
1955];
1956static PARAMS_TO_MAP: &[FunctionParam] = &[
1957 FunctionParam { name: "this", required: true },
1958];
1959static PARAMS_TO_NUMBER: &[FunctionParam] = &[
1960 FunctionParam { name: "this", required: true },
1961 FunctionParam { name: "format", required: false },
1962 FunctionParam { name: "nlsparam", required: false },
1963 FunctionParam { name: "precision", required: false },
1964 FunctionParam { name: "scale", required: false },
1965];
1966static PARAMS_TRANSFORM: &[FunctionParam] = &[
1967 FunctionParam { name: "this", required: true },
1968 FunctionParam { name: "expression", required: true },
1969];
1970static PARAMS_TRANSLATE: &[FunctionParam] = &[
1971 FunctionParam { name: "this", required: true },
1972 FunctionParam { name: "from_", required: true },
1973 FunctionParam { name: "to", required: true },
1974];
1975static PARAMS_TRIM: &[FunctionParam] = &[
1976 FunctionParam { name: "this", required: true },
1977 FunctionParam { name: "expression", required: false },
1978 FunctionParam { name: "position", required: false },
1979 FunctionParam { name: "collation", required: false },
1980];
1981static PARAMS_TRY: &[FunctionParam] = &[
1982 FunctionParam { name: "this", required: true },
1983];
1984static PARAMS_TRY_BASE64DECODE_BINARY: &[FunctionParam] = &[
1985 FunctionParam { name: "this", required: true },
1986 FunctionParam { name: "alphabet", required: false },
1987];
1988static PARAMS_TRY_BASE64DECODE_STRING: &[FunctionParam] = &[
1989 FunctionParam { name: "this", required: true },
1990 FunctionParam { name: "alphabet", required: false },
1991];
1992static PARAMS_TRY_CAST: &[FunctionParam] = &[
1993 FunctionParam { name: "this", required: true },
1994 FunctionParam { name: "to", required: true },
1995 FunctionParam { name: "format", required: false },
1996 FunctionParam { name: "safe", required: false },
1997 FunctionParam { name: "action", required: false },
1998 FunctionParam { name: "default", required: false },
1999 FunctionParam { name: "requires_string", required: false },
2000];
2001static PARAMS_TRY_HEX_DECODE_BINARY: &[FunctionParam] = &[
2002 FunctionParam { name: "this", required: true },
2003];
2004static PARAMS_TRY_HEX_DECODE_STRING: &[FunctionParam] = &[
2005 FunctionParam { name: "this", required: true },
2006];
2007static PARAMS_TS_OR_DI_TO_DI: &[FunctionParam] = &[
2008 FunctionParam { name: "this", required: true },
2009];
2010static PARAMS_TS_OR_DS_ADD: &[FunctionParam] = &[
2011 FunctionParam { name: "this", required: true },
2012 FunctionParam { name: "expression", required: true },
2013 FunctionParam { name: "unit", required: false },
2014 FunctionParam { name: "return_type", required: false },
2015];
2016static PARAMS_TS_OR_DS_DIFF: &[FunctionParam] = &[
2017 FunctionParam { name: "this", required: true },
2018 FunctionParam { name: "expression", required: true },
2019 FunctionParam { name: "unit", required: false },
2020];
2021static PARAMS_TS_OR_DS_TO_DATE: &[FunctionParam] = &[
2022 FunctionParam { name: "this", required: true },
2023 FunctionParam { name: "format", required: false },
2024 FunctionParam { name: "safe", required: false },
2025];
2026static PARAMS_TS_OR_DS_TO_DATETIME: &[FunctionParam] = &[
2027 FunctionParam { name: "this", required: true },
2028];
2029static PARAMS_TS_OR_DS_TO_DATE_STR: &[FunctionParam] = &[
2030 FunctionParam { name: "this", required: true },
2031];
2032static PARAMS_TS_OR_DS_TO_TIME: &[FunctionParam] = &[
2033 FunctionParam { name: "this", required: true },
2034 FunctionParam { name: "format", required: false },
2035 FunctionParam { name: "safe", required: false },
2036];
2037static PARAMS_TS_OR_DS_TO_TIMESTAMP: &[FunctionParam] = &[
2038 FunctionParam { name: "this", required: true },
2039];
2040static PARAMS_TYPEOF: &[FunctionParam] = &[
2041 FunctionParam { name: "this", required: true },
2042];
2043static PARAMS_UPPER: &[FunctionParam] = &[
2044 FunctionParam { name: "this", required: true },
2045];
2046static PARAMS_UNHEX: &[FunctionParam] = &[
2047 FunctionParam { name: "this", required: true },
2048 FunctionParam { name: "expression", required: false },
2049];
2050static PARAMS_UNICODE: &[FunctionParam] = &[
2051 FunctionParam { name: "this", required: true },
2052];
2053static PARAMS_UNIX_DATE: &[FunctionParam] = &[
2054 FunctionParam { name: "this", required: true },
2055];
2056static PARAMS_UNIX_MICROS: &[FunctionParam] = &[
2057 FunctionParam { name: "this", required: true },
2058];
2059static PARAMS_UNIX_MILLIS: &[FunctionParam] = &[
2060 FunctionParam { name: "this", required: true },
2061];
2062static PARAMS_UNIX_SECONDS: &[FunctionParam] = &[
2063 FunctionParam { name: "this", required: true },
2064];
2065static PARAMS_UNIX_TO_STR: &[FunctionParam] = &[
2066 FunctionParam { name: "this", required: true },
2067 FunctionParam { name: "format", required: false },
2068];
2069static PARAMS_UNIX_TO_TIME: &[FunctionParam] = &[
2070 FunctionParam { name: "this", required: true },
2071 FunctionParam { name: "scale", required: false },
2072 FunctionParam { name: "zone", required: false },
2073 FunctionParam { name: "hours", required: false },
2074 FunctionParam { name: "minutes", required: false },
2075 FunctionParam { name: "format", required: false },
2076];
2077static PARAMS_UNIX_TO_TIME_STR: &[FunctionParam] = &[
2078 FunctionParam { name: "this", required: true },
2079];
2080static PARAMS_UNNEST: &[FunctionParam] = &[
2081 FunctionParam { name: "expressions", required: true },
2082 FunctionParam { name: "alias", required: false },
2083 FunctionParam { name: "offset", required: false },
2084 FunctionParam { name: "explode_array", required: false },
2085];
2086static PARAMS_UTC_TIME: &[FunctionParam] = &[
2087 FunctionParam { name: "this", required: false },
2088];
2089static PARAMS_UTC_TIMESTAMP: &[FunctionParam] = &[
2090 FunctionParam { name: "this", required: false },
2091];
2092static PARAMS_VARIANCE: &[FunctionParam] = &[
2093 FunctionParam { name: "this", required: true },
2094];
2095static PARAMS_VARIANCE_POP: &[FunctionParam] = &[
2096 FunctionParam { name: "this", required: true },
2097];
2098static PARAMS_VAR_MAP: &[FunctionParam] = &[
2099 FunctionParam { name: "keys", required: true },
2100 FunctionParam { name: "values", required: true },
2101];
2102static PARAMS_VECTOR_SEARCH: &[FunctionParam] = &[
2103 FunctionParam { name: "this", required: true },
2104 FunctionParam { name: "column_to_search", required: true },
2105 FunctionParam { name: "query_table", required: true },
2106 FunctionParam { name: "query_column_to_search", required: false },
2107 FunctionParam { name: "top_k", required: false },
2108 FunctionParam { name: "distance_type", required: false },
2109 FunctionParam { name: "options", required: false },
2110];
2111static PARAMS_WEEK: &[FunctionParam] = &[
2112 FunctionParam { name: "this", required: true },
2113 FunctionParam { name: "mode", required: false },
2114];
2115static PARAMS_WEEK_OF_YEAR: &[FunctionParam] = &[
2116 FunctionParam { name: "this", required: true },
2117];
2118static PARAMS_WIDTH_BUCKET: &[FunctionParam] = &[
2119 FunctionParam { name: "this", required: true },
2120 FunctionParam { name: "min_value", required: true },
2121 FunctionParam { name: "max_value", required: true },
2122 FunctionParam { name: "num_buckets", required: true },
2123];
2124static PARAMS_XML_ELEMENT: &[FunctionParam] = &[
2125 FunctionParam { name: "this", required: true },
2126 FunctionParam { name: "expressions", required: false },
2127];
2128static PARAMS_XOR: &[FunctionParam] = &[
2129 FunctionParam { name: "this", required: false },
2130 FunctionParam { name: "expression", required: false },
2131 FunctionParam { name: "expressions", required: false },
2132];
2133static PARAMS_XML_TABLE: &[FunctionParam] = &[
2134 FunctionParam { name: "this", required: true },
2135 FunctionParam { name: "namespaces", required: false },
2136 FunctionParam { name: "passing", required: false },
2137 FunctionParam { name: "columns", required: false },
2138 FunctionParam { name: "by_ref", required: false },
2139];
2140static PARAMS_YEAR: &[FunctionParam] = &[
2141 FunctionParam { name: "this", required: true },
2142];
2143static PARAMS_YEAR_OF_WEEK: &[FunctionParam] = &[
2144 FunctionParam { name: "this", required: true },
2145];
2146static PARAMS_YEAR_OF_WEEK_ISO: &[FunctionParam] = &[
2147 FunctionParam { name: "this", required: true },
2148];
2149
2150pub fn get_function_signature(name: &str) -> Option<FunctionSignature> {
2163 let lower = name.to_ascii_lowercase();
2164 match lower.as_str() {
2165 "abs" => Some(FunctionSignature {
2166 name: "abs",
2167 display_name: "ABS",
2168 params: PARAMS_ABS,
2169 return_type: None,
2170 category: FunctionCategory::Scalar,
2171 }),
2172 "acos" => Some(FunctionSignature {
2173 name: "acos",
2174 display_name: "ACOS",
2175 params: PARAMS_ACOS,
2176 return_type: None,
2177 category: FunctionCategory::Scalar,
2178 }),
2179 "acosh" => Some(FunctionSignature {
2180 name: "acosh",
2181 display_name: "ACOSH",
2182 params: PARAMS_ACOSH,
2183 return_type: None,
2184 category: FunctionCategory::Scalar,
2185 }),
2186 "add_months" => Some(FunctionSignature {
2187 name: "add_months",
2188 display_name: "ADD_MONTHS",
2189 params: PARAMS_ADD_MONTHS,
2190 return_type: None,
2191 category: FunctionCategory::Scalar,
2192 }),
2193 "agg_func" => Some(FunctionSignature {
2194 name: "agg_func",
2195 display_name: "AGG_FUNC",
2196 params: PARAMS_AGG_FUNC,
2197 return_type: None,
2198 category: FunctionCategory::Aggregate,
2199 }),
2200 "ai_agg" => Some(FunctionSignature {
2201 name: "ai_agg",
2202 display_name: "AI_AGG",
2203 params: PARAMS_AI_AGG,
2204 return_type: None,
2205 category: FunctionCategory::Aggregate,
2206 }),
2207 "ai_classify" => Some(FunctionSignature {
2208 name: "ai_classify",
2209 display_name: "AI_CLASSIFY",
2210 params: PARAMS_AI_CLASSIFY,
2211 return_type: None,
2212 category: FunctionCategory::Scalar,
2213 }),
2214 "ai_summarize_agg" => Some(FunctionSignature {
2215 name: "ai_summarize_agg",
2216 display_name: "AI_SUMMARIZE_AGG",
2217 params: PARAMS_AI_SUMMARIZE_AGG,
2218 return_type: None,
2219 category: FunctionCategory::Aggregate,
2220 }),
2221 "and" => Some(FunctionSignature {
2222 name: "and",
2223 display_name: "AND",
2224 params: PARAMS_AND,
2225 return_type: Some(ReturnTypeRule::Boolean),
2226 category: FunctionCategory::Scalar,
2227 }),
2228 "any_value" => Some(FunctionSignature {
2229 name: "any_value",
2230 display_name: "ANY_VALUE",
2231 params: PARAMS_ANY_VALUE,
2232 return_type: Some(ReturnTypeRule::MatchFirstArg),
2233 category: FunctionCategory::Aggregate,
2234 }),
2235 "apply" => Some(FunctionSignature {
2236 name: "apply",
2237 display_name: "APPLY",
2238 params: PARAMS_APPLY,
2239 return_type: None,
2240 category: FunctionCategory::Scalar,
2241 }),
2242 "approximate_similarity" => Some(FunctionSignature {
2243 name: "approximate_similarity",
2244 display_name: "APPROXIMATE_SIMILARITY",
2245 params: PARAMS_APPROXIMATE_SIMILARITY,
2246 return_type: None,
2247 category: FunctionCategory::Aggregate,
2248 }),
2249 "approx_distinct" => Some(FunctionSignature {
2250 name: "approx_distinct",
2251 display_name: "APPROX_DISTINCT",
2252 params: PARAMS_APPROX_DISTINCT,
2253 return_type: None,
2254 category: FunctionCategory::Aggregate,
2255 }),
2256 "approx_quantile" => Some(FunctionSignature {
2257 name: "approx_quantile",
2258 display_name: "APPROX_QUANTILE",
2259 params: PARAMS_APPROX_QUANTILE,
2260 return_type: None,
2261 category: FunctionCategory::Aggregate,
2262 }),
2263 "approx_quantiles" => Some(FunctionSignature {
2264 name: "approx_quantiles",
2265 display_name: "APPROX_QUANTILES",
2266 params: PARAMS_APPROX_QUANTILES,
2267 return_type: None,
2268 category: FunctionCategory::Aggregate,
2269 }),
2270 "approx_top_k" => Some(FunctionSignature {
2271 name: "approx_top_k",
2272 display_name: "APPROX_TOP_K",
2273 params: PARAMS_APPROX_TOP_K,
2274 return_type: None,
2275 category: FunctionCategory::Aggregate,
2276 }),
2277 "approx_top_k_accumulate" => Some(FunctionSignature {
2278 name: "approx_top_k_accumulate",
2279 display_name: "APPROX_TOP_K_ACCUMULATE",
2280 params: PARAMS_APPROX_TOP_K_ACCUMULATE,
2281 return_type: None,
2282 category: FunctionCategory::Aggregate,
2283 }),
2284 "approx_top_k_combine" => Some(FunctionSignature {
2285 name: "approx_top_k_combine",
2286 display_name: "APPROX_TOP_K_COMBINE",
2287 params: PARAMS_APPROX_TOP_K_COMBINE,
2288 return_type: None,
2289 category: FunctionCategory::Aggregate,
2290 }),
2291 "approx_top_sum" => Some(FunctionSignature {
2292 name: "approx_top_sum",
2293 display_name: "APPROX_TOP_SUM",
2294 params: PARAMS_APPROX_TOP_SUM,
2295 return_type: None,
2296 category: FunctionCategory::Aggregate,
2297 }),
2298 "arg_max" => Some(FunctionSignature {
2299 name: "arg_max",
2300 display_name: "ARG_MAX",
2301 params: PARAMS_ARG_MAX,
2302 return_type: None,
2303 category: FunctionCategory::Aggregate,
2304 }),
2305 "arg_min" => Some(FunctionSignature {
2306 name: "arg_min",
2307 display_name: "ARG_MIN",
2308 params: PARAMS_ARG_MIN,
2309 return_type: None,
2310 category: FunctionCategory::Aggregate,
2311 }),
2312 "array" => Some(FunctionSignature {
2313 name: "array",
2314 display_name: "ARRAY",
2315 params: PARAMS_ARRAY,
2316 return_type: None,
2317 category: FunctionCategory::Scalar,
2318 }),
2319 "array_agg" => Some(FunctionSignature {
2320 name: "array_agg",
2321 display_name: "ARRAY_AGG",
2322 params: PARAMS_ARRAY_AGG,
2323 return_type: None,
2324 category: FunctionCategory::Aggregate,
2325 }),
2326 "array_all" => Some(FunctionSignature {
2327 name: "array_all",
2328 display_name: "ARRAY_ALL",
2329 params: PARAMS_ARRAY_ALL,
2330 return_type: None,
2331 category: FunctionCategory::Scalar,
2332 }),
2333 "array_any" => Some(FunctionSignature {
2334 name: "array_any",
2335 display_name: "ARRAY_ANY",
2336 params: PARAMS_ARRAY_ANY,
2337 return_type: None,
2338 category: FunctionCategory::Scalar,
2339 }),
2340 "array_concat" => Some(FunctionSignature {
2341 name: "array_concat",
2342 display_name: "ARRAY_CONCAT",
2343 params: PARAMS_ARRAY_CONCAT,
2344 return_type: None,
2345 category: FunctionCategory::Scalar,
2346 }),
2347 "array_concat_agg" => Some(FunctionSignature {
2348 name: "array_concat_agg",
2349 display_name: "ARRAY_CONCAT_AGG",
2350 params: PARAMS_ARRAY_CONCAT_AGG,
2351 return_type: None,
2352 category: FunctionCategory::Aggregate,
2353 }),
2354 "array_construct_compact" => Some(FunctionSignature {
2355 name: "array_construct_compact",
2356 display_name: "ARRAY_CONSTRUCT_COMPACT",
2357 params: PARAMS_ARRAY_CONSTRUCT_COMPACT,
2358 return_type: None,
2359 category: FunctionCategory::Scalar,
2360 }),
2361 "array_contains" => Some(FunctionSignature {
2362 name: "array_contains",
2363 display_name: "ARRAY_CONTAINS",
2364 params: PARAMS_ARRAY_CONTAINS,
2365 return_type: None,
2366 category: FunctionCategory::Scalar,
2367 }),
2368 "array_contains_all" => Some(FunctionSignature {
2369 name: "array_contains_all",
2370 display_name: "ARRAY_CONTAINS_ALL",
2371 params: PARAMS_ARRAY_CONTAINS_ALL,
2372 return_type: None,
2373 category: FunctionCategory::Scalar,
2374 }),
2375 "array_filter" => Some(FunctionSignature {
2376 name: "array_filter",
2377 display_name: "ARRAY_FILTER",
2378 params: PARAMS_ARRAY_FILTER,
2379 return_type: None,
2380 category: FunctionCategory::Scalar,
2381 }),
2382 "array_first" => Some(FunctionSignature {
2383 name: "array_first",
2384 display_name: "ARRAY_FIRST",
2385 params: PARAMS_ARRAY_FIRST,
2386 return_type: None,
2387 category: FunctionCategory::Scalar,
2388 }),
2389 "array_intersect" => Some(FunctionSignature {
2390 name: "array_intersect",
2391 display_name: "ARRAY_INTERSECT",
2392 params: PARAMS_ARRAY_INTERSECT,
2393 return_type: None,
2394 category: FunctionCategory::Scalar,
2395 }),
2396 "array_to_string" => Some(FunctionSignature {
2397 name: "array_to_string",
2398 display_name: "ARRAY_TO_STRING",
2399 params: PARAMS_ARRAY_TO_STRING,
2400 return_type: None,
2401 category: FunctionCategory::Scalar,
2402 }),
2403 "array_last" => Some(FunctionSignature {
2404 name: "array_last",
2405 display_name: "ARRAY_LAST",
2406 params: PARAMS_ARRAY_LAST,
2407 return_type: None,
2408 category: FunctionCategory::Scalar,
2409 }),
2410 "array_size" => Some(FunctionSignature {
2411 name: "array_size",
2412 display_name: "ARRAY_SIZE",
2413 params: PARAMS_ARRAY_SIZE,
2414 return_type: None,
2415 category: FunctionCategory::Scalar,
2416 }),
2417 "array_overlaps" => Some(FunctionSignature {
2418 name: "array_overlaps",
2419 display_name: "ARRAY_OVERLAPS",
2420 params: PARAMS_ARRAY_OVERLAPS,
2421 return_type: None,
2422 category: FunctionCategory::Scalar,
2423 }),
2424 "array_remove" => Some(FunctionSignature {
2425 name: "array_remove",
2426 display_name: "ARRAY_REMOVE",
2427 params: PARAMS_ARRAY_REMOVE,
2428 return_type: None,
2429 category: FunctionCategory::Scalar,
2430 }),
2431 "array_reverse" => Some(FunctionSignature {
2432 name: "array_reverse",
2433 display_name: "ARRAY_REVERSE",
2434 params: PARAMS_ARRAY_REVERSE,
2435 return_type: None,
2436 category: FunctionCategory::Scalar,
2437 }),
2438 "array_slice" => Some(FunctionSignature {
2439 name: "array_slice",
2440 display_name: "ARRAY_SLICE",
2441 params: PARAMS_ARRAY_SLICE,
2442 return_type: None,
2443 category: FunctionCategory::Scalar,
2444 }),
2445 "array_sort" => Some(FunctionSignature {
2446 name: "array_sort",
2447 display_name: "ARRAY_SORT",
2448 params: PARAMS_ARRAY_SORT,
2449 return_type: None,
2450 category: FunctionCategory::Scalar,
2451 }),
2452 "array_sum" => Some(FunctionSignature {
2453 name: "array_sum",
2454 display_name: "ARRAY_SUM",
2455 params: PARAMS_ARRAY_SUM,
2456 return_type: None,
2457 category: FunctionCategory::Scalar,
2458 }),
2459 "array_union_agg" => Some(FunctionSignature {
2460 name: "array_union_agg",
2461 display_name: "ARRAY_UNION_AGG",
2462 params: PARAMS_ARRAY_UNION_AGG,
2463 return_type: None,
2464 category: FunctionCategory::Aggregate,
2465 }),
2466 "array_unique_agg" => Some(FunctionSignature {
2467 name: "array_unique_agg",
2468 display_name: "ARRAY_UNIQUE_AGG",
2469 params: PARAMS_ARRAY_UNIQUE_AGG,
2470 return_type: None,
2471 category: FunctionCategory::Aggregate,
2472 }),
2473 "ascii" => Some(FunctionSignature {
2474 name: "ascii",
2475 display_name: "ASCII",
2476 params: PARAMS_ASCII,
2477 return_type: None,
2478 category: FunctionCategory::Scalar,
2479 }),
2480 "asin" => Some(FunctionSignature {
2481 name: "asin",
2482 display_name: "ASIN",
2483 params: PARAMS_ASIN,
2484 return_type: None,
2485 category: FunctionCategory::Scalar,
2486 }),
2487 "asinh" => Some(FunctionSignature {
2488 name: "asinh",
2489 display_name: "ASINH",
2490 params: PARAMS_ASINH,
2491 return_type: None,
2492 category: FunctionCategory::Scalar,
2493 }),
2494 "atan" => Some(FunctionSignature {
2495 name: "atan",
2496 display_name: "ATAN",
2497 params: PARAMS_ATAN,
2498 return_type: None,
2499 category: FunctionCategory::Scalar,
2500 }),
2501 "atan2" => Some(FunctionSignature {
2502 name: "atan2",
2503 display_name: "ATAN2",
2504 params: PARAMS_ATAN2,
2505 return_type: None,
2506 category: FunctionCategory::Scalar,
2507 }),
2508 "atanh" => Some(FunctionSignature {
2509 name: "atanh",
2510 display_name: "ATANH",
2511 params: PARAMS_ATANH,
2512 return_type: None,
2513 category: FunctionCategory::Scalar,
2514 }),
2515 "avg" => Some(FunctionSignature {
2516 name: "avg",
2517 display_name: "AVG",
2518 params: PARAMS_AVG,
2519 return_type: Some(ReturnTypeRule::Numeric),
2520 category: FunctionCategory::Aggregate,
2521 }),
2522 "base64decode_binary" => Some(FunctionSignature {
2523 name: "base64decode_binary",
2524 display_name: "BASE64DECODE_BINARY",
2525 params: PARAMS_BASE64DECODE_BINARY,
2526 return_type: None,
2527 category: FunctionCategory::Scalar,
2528 }),
2529 "base64decode_string" => Some(FunctionSignature {
2530 name: "base64decode_string",
2531 display_name: "BASE64DECODE_STRING",
2532 params: PARAMS_BASE64DECODE_STRING,
2533 return_type: None,
2534 category: FunctionCategory::Scalar,
2535 }),
2536 "base64encode" => Some(FunctionSignature {
2537 name: "base64encode",
2538 display_name: "BASE64ENCODE",
2539 params: PARAMS_BASE64ENCODE,
2540 return_type: None,
2541 category: FunctionCategory::Scalar,
2542 }),
2543 "bitmap_bit_position" => Some(FunctionSignature {
2544 name: "bitmap_bit_position",
2545 display_name: "BITMAP_BIT_POSITION",
2546 params: PARAMS_BITMAP_BIT_POSITION,
2547 return_type: None,
2548 category: FunctionCategory::Scalar,
2549 }),
2550 "bitmap_bucket_number" => Some(FunctionSignature {
2551 name: "bitmap_bucket_number",
2552 display_name: "BITMAP_BUCKET_NUMBER",
2553 params: PARAMS_BITMAP_BUCKET_NUMBER,
2554 return_type: None,
2555 category: FunctionCategory::Scalar,
2556 }),
2557 "bitmap_construct_agg" => Some(FunctionSignature {
2558 name: "bitmap_construct_agg",
2559 display_name: "BITMAP_CONSTRUCT_AGG",
2560 params: PARAMS_BITMAP_CONSTRUCT_AGG,
2561 return_type: None,
2562 category: FunctionCategory::Aggregate,
2563 }),
2564 "bitmap_count" => Some(FunctionSignature {
2565 name: "bitmap_count",
2566 display_name: "BITMAP_COUNT",
2567 params: PARAMS_BITMAP_COUNT,
2568 return_type: None,
2569 category: FunctionCategory::Scalar,
2570 }),
2571 "bitmap_or_agg" => Some(FunctionSignature {
2572 name: "bitmap_or_agg",
2573 display_name: "BITMAP_OR_AGG",
2574 params: PARAMS_BITMAP_OR_AGG,
2575 return_type: None,
2576 category: FunctionCategory::Aggregate,
2577 }),
2578 "bitwise_and_agg" => Some(FunctionSignature {
2579 name: "bitwise_and_agg",
2580 display_name: "BITWISE_AND_AGG",
2581 params: PARAMS_BITWISE_AND_AGG,
2582 return_type: None,
2583 category: FunctionCategory::Aggregate,
2584 }),
2585 "bitwise_count" => Some(FunctionSignature {
2586 name: "bitwise_count",
2587 display_name: "BITWISE_COUNT",
2588 params: PARAMS_BITWISE_COUNT,
2589 return_type: None,
2590 category: FunctionCategory::Scalar,
2591 }),
2592 "bitwise_or_agg" => Some(FunctionSignature {
2593 name: "bitwise_or_agg",
2594 display_name: "BITWISE_OR_AGG",
2595 params: PARAMS_BITWISE_OR_AGG,
2596 return_type: None,
2597 category: FunctionCategory::Aggregate,
2598 }),
2599 "bitwise_xor_agg" => Some(FunctionSignature {
2600 name: "bitwise_xor_agg",
2601 display_name: "BITWISE_XOR_AGG",
2602 params: PARAMS_BITWISE_XOR_AGG,
2603 return_type: None,
2604 category: FunctionCategory::Aggregate,
2605 }),
2606 "bit_length" => Some(FunctionSignature {
2607 name: "bit_length",
2608 display_name: "BIT_LENGTH",
2609 params: PARAMS_BIT_LENGTH,
2610 return_type: None,
2611 category: FunctionCategory::Scalar,
2612 }),
2613 "booland" => Some(FunctionSignature {
2614 name: "booland",
2615 display_name: "BOOLAND",
2616 params: PARAMS_BOOLAND,
2617 return_type: None,
2618 category: FunctionCategory::Scalar,
2619 }),
2620 "logical_and" => Some(FunctionSignature {
2621 name: "logical_and",
2622 display_name: "LOGICAL_AND",
2623 params: PARAMS_LOGICAL_AND,
2624 return_type: None,
2625 category: FunctionCategory::Aggregate,
2626 }),
2627 "boolnot" => Some(FunctionSignature {
2628 name: "boolnot",
2629 display_name: "BOOLNOT",
2630 params: PARAMS_BOOLNOT,
2631 return_type: None,
2632 category: FunctionCategory::Scalar,
2633 }),
2634 "boolor" => Some(FunctionSignature {
2635 name: "boolor",
2636 display_name: "BOOLOR",
2637 params: PARAMS_BOOLOR,
2638 return_type: None,
2639 category: FunctionCategory::Scalar,
2640 }),
2641 "logical_or" => Some(FunctionSignature {
2642 name: "logical_or",
2643 display_name: "LOGICAL_OR",
2644 params: PARAMS_LOGICAL_OR,
2645 return_type: None,
2646 category: FunctionCategory::Aggregate,
2647 }),
2648 "boolxor_agg" => Some(FunctionSignature {
2649 name: "boolxor_agg",
2650 display_name: "BOOLXOR_AGG",
2651 params: PARAMS_BOOLXOR_AGG,
2652 return_type: None,
2653 category: FunctionCategory::Aggregate,
2654 }),
2655 "byte_length" => Some(FunctionSignature {
2656 name: "byte_length",
2657 display_name: "BYTE_LENGTH",
2658 params: PARAMS_BYTE_LENGTH,
2659 return_type: None,
2660 category: FunctionCategory::Scalar,
2661 }),
2662 "case" => Some(FunctionSignature {
2663 name: "case",
2664 display_name: "CASE",
2665 params: PARAMS_CASE,
2666 return_type: None,
2667 category: FunctionCategory::Scalar,
2668 }),
2669 "cast" => Some(FunctionSignature {
2670 name: "cast",
2671 display_name: "CAST",
2672 params: PARAMS_CAST,
2673 return_type: None,
2674 category: FunctionCategory::Scalar,
2675 }),
2676 "cast_to_str_type" => Some(FunctionSignature {
2677 name: "cast_to_str_type",
2678 display_name: "CAST_TO_STR_TYPE",
2679 params: PARAMS_CAST_TO_STR_TYPE,
2680 return_type: None,
2681 category: FunctionCategory::Scalar,
2682 }),
2683 "cbrt" => Some(FunctionSignature {
2684 name: "cbrt",
2685 display_name: "CBRT",
2686 params: PARAMS_CBRT,
2687 return_type: None,
2688 category: FunctionCategory::Scalar,
2689 }),
2690 "ceil" => Some(FunctionSignature {
2691 name: "ceil",
2692 display_name: "CEIL",
2693 params: PARAMS_CEIL,
2694 return_type: None,
2695 category: FunctionCategory::Scalar,
2696 }),
2697 "chr" => Some(FunctionSignature {
2698 name: "chr",
2699 display_name: "CHR",
2700 params: PARAMS_CHR,
2701 return_type: None,
2702 category: FunctionCategory::Scalar,
2703 }),
2704 "length" => Some(FunctionSignature {
2705 name: "length",
2706 display_name: "LENGTH",
2707 params: PARAMS_LENGTH,
2708 return_type: None,
2709 category: FunctionCategory::Scalar,
2710 }),
2711 "coalesce" => Some(FunctionSignature {
2712 name: "coalesce",
2713 display_name: "COALESCE",
2714 params: PARAMS_COALESCE,
2715 return_type: Some(ReturnTypeRule::MatchFirstArg),
2716 category: FunctionCategory::Scalar,
2717 }),
2718 "code_points_to_bytes" => Some(FunctionSignature {
2719 name: "code_points_to_bytes",
2720 display_name: "CODE_POINTS_TO_BYTES",
2721 params: PARAMS_CODE_POINTS_TO_BYTES,
2722 return_type: None,
2723 category: FunctionCategory::Scalar,
2724 }),
2725 "code_points_to_string" => Some(FunctionSignature {
2726 name: "code_points_to_string",
2727 display_name: "CODE_POINTS_TO_STRING",
2728 params: PARAMS_CODE_POINTS_TO_STRING,
2729 return_type: None,
2730 category: FunctionCategory::Scalar,
2731 }),
2732 "collate" => Some(FunctionSignature {
2733 name: "collate",
2734 display_name: "COLLATE",
2735 params: PARAMS_COLLATE,
2736 return_type: None,
2737 category: FunctionCategory::Scalar,
2738 }),
2739 "collation" => Some(FunctionSignature {
2740 name: "collation",
2741 display_name: "COLLATION",
2742 params: PARAMS_COLLATION,
2743 return_type: None,
2744 category: FunctionCategory::Scalar,
2745 }),
2746 "columns" => Some(FunctionSignature {
2747 name: "columns",
2748 display_name: "COLUMNS",
2749 params: PARAMS_COLUMNS,
2750 return_type: None,
2751 category: FunctionCategory::Scalar,
2752 }),
2753 "combined_agg_func" => Some(FunctionSignature {
2754 name: "combined_agg_func",
2755 display_name: "COMBINED_AGG_FUNC",
2756 params: PARAMS_COMBINED_AGG_FUNC,
2757 return_type: None,
2758 category: FunctionCategory::Aggregate,
2759 }),
2760 "combined_parameterized_agg" => Some(FunctionSignature {
2761 name: "combined_parameterized_agg",
2762 display_name: "COMBINED_PARAMETERIZED_AGG",
2763 params: PARAMS_COMBINED_PARAMETERIZED_AGG,
2764 return_type: None,
2765 category: FunctionCategory::Aggregate,
2766 }),
2767 "compress" => Some(FunctionSignature {
2768 name: "compress",
2769 display_name: "COMPRESS",
2770 params: PARAMS_COMPRESS,
2771 return_type: None,
2772 category: FunctionCategory::Scalar,
2773 }),
2774 "concat" => Some(FunctionSignature {
2775 name: "concat",
2776 display_name: "CONCAT",
2777 params: PARAMS_CONCAT,
2778 return_type: Some(ReturnTypeRule::Text),
2779 category: FunctionCategory::Scalar,
2780 }),
2781 "concat_ws" => Some(FunctionSignature {
2782 name: "concat_ws",
2783 display_name: "CONCAT_WS",
2784 params: PARAMS_CONCAT_WS,
2785 return_type: Some(ReturnTypeRule::Text),
2786 category: FunctionCategory::Scalar,
2787 }),
2788 "connect_by_root" => Some(FunctionSignature {
2789 name: "connect_by_root",
2790 display_name: "CONNECT_BY_ROOT",
2791 params: PARAMS_CONNECT_BY_ROOT,
2792 return_type: None,
2793 category: FunctionCategory::Scalar,
2794 }),
2795 "contains" => Some(FunctionSignature {
2796 name: "contains",
2797 display_name: "CONTAINS",
2798 params: PARAMS_CONTAINS,
2799 return_type: None,
2800 category: FunctionCategory::Scalar,
2801 }),
2802 "convert" => Some(FunctionSignature {
2803 name: "convert",
2804 display_name: "CONVERT",
2805 params: PARAMS_CONVERT,
2806 return_type: None,
2807 category: FunctionCategory::Scalar,
2808 }),
2809 "convert_timezone" => Some(FunctionSignature {
2810 name: "convert_timezone",
2811 display_name: "CONVERT_TIMEZONE",
2812 params: PARAMS_CONVERT_TIMEZONE,
2813 return_type: None,
2814 category: FunctionCategory::Scalar,
2815 }),
2816 "convert_to_charset" => Some(FunctionSignature {
2817 name: "convert_to_charset",
2818 display_name: "CONVERT_TO_CHARSET",
2819 params: PARAMS_CONVERT_TO_CHARSET,
2820 return_type: None,
2821 category: FunctionCategory::Scalar,
2822 }),
2823 "corr" => Some(FunctionSignature {
2824 name: "corr",
2825 display_name: "CORR",
2826 params: PARAMS_CORR,
2827 return_type: None,
2828 category: FunctionCategory::Aggregate,
2829 }),
2830 "cos" => Some(FunctionSignature {
2831 name: "cos",
2832 display_name: "COS",
2833 params: PARAMS_COS,
2834 return_type: None,
2835 category: FunctionCategory::Scalar,
2836 }),
2837 "cosh" => Some(FunctionSignature {
2838 name: "cosh",
2839 display_name: "COSH",
2840 params: PARAMS_COSH,
2841 return_type: None,
2842 category: FunctionCategory::Scalar,
2843 }),
2844 "cosine_distance" => Some(FunctionSignature {
2845 name: "cosine_distance",
2846 display_name: "COSINE_DISTANCE",
2847 params: PARAMS_COSINE_DISTANCE,
2848 return_type: None,
2849 category: FunctionCategory::Scalar,
2850 }),
2851 "cot" => Some(FunctionSignature {
2852 name: "cot",
2853 display_name: "COT",
2854 params: PARAMS_COT,
2855 return_type: None,
2856 category: FunctionCategory::Scalar,
2857 }),
2858 "coth" => Some(FunctionSignature {
2859 name: "coth",
2860 display_name: "COTH",
2861 params: PARAMS_COTH,
2862 return_type: None,
2863 category: FunctionCategory::Scalar,
2864 }),
2865 "count" => Some(FunctionSignature {
2866 name: "count",
2867 display_name: "COUNT",
2868 params: PARAMS_COUNT,
2869 return_type: Some(ReturnTypeRule::Integer),
2870 category: FunctionCategory::Aggregate,
2871 }),
2872 "count_if" => Some(FunctionSignature {
2873 name: "count_if",
2874 display_name: "COUNT_IF",
2875 params: PARAMS_COUNT_IF,
2876 return_type: None,
2877 category: FunctionCategory::Aggregate,
2878 }),
2879 "covar_pop" => Some(FunctionSignature {
2880 name: "covar_pop",
2881 display_name: "COVAR_POP",
2882 params: PARAMS_COVAR_POP,
2883 return_type: None,
2884 category: FunctionCategory::Aggregate,
2885 }),
2886 "covar_samp" => Some(FunctionSignature {
2887 name: "covar_samp",
2888 display_name: "COVAR_SAMP",
2889 params: PARAMS_COVAR_SAMP,
2890 return_type: None,
2891 category: FunctionCategory::Aggregate,
2892 }),
2893 "csc" => Some(FunctionSignature {
2894 name: "csc",
2895 display_name: "CSC",
2896 params: PARAMS_CSC,
2897 return_type: None,
2898 category: FunctionCategory::Scalar,
2899 }),
2900 "csch" => Some(FunctionSignature {
2901 name: "csch",
2902 display_name: "CSCH",
2903 params: PARAMS_CSCH,
2904 return_type: None,
2905 category: FunctionCategory::Scalar,
2906 }),
2907 "cume_dist" => Some(FunctionSignature {
2908 name: "cume_dist",
2909 display_name: "CUME_DIST",
2910 params: PARAMS_CUME_DIST,
2911 return_type: None,
2912 category: FunctionCategory::Window,
2913 }),
2914 "current_date" => Some(FunctionSignature {
2915 name: "current_date",
2916 display_name: "CURRENT_DATE",
2917 params: PARAMS_CURRENT_DATE,
2918 return_type: Some(ReturnTypeRule::Date),
2919 category: FunctionCategory::Scalar,
2920 }),
2921 "current_datetime" => Some(FunctionSignature {
2922 name: "current_datetime",
2923 display_name: "CURRENT_DATETIME",
2924 params: PARAMS_CURRENT_DATETIME,
2925 return_type: None,
2926 category: FunctionCategory::Scalar,
2927 }),
2928 "current_schema" => Some(FunctionSignature {
2929 name: "current_schema",
2930 display_name: "CURRENT_SCHEMA",
2931 params: PARAMS_CURRENT_SCHEMA,
2932 return_type: None,
2933 category: FunctionCategory::Scalar,
2934 }),
2935 "current_time" => Some(FunctionSignature {
2936 name: "current_time",
2937 display_name: "CURRENT_TIME",
2938 params: PARAMS_CURRENT_TIME,
2939 return_type: None,
2940 category: FunctionCategory::Scalar,
2941 }),
2942 "current_timestamp" => Some(FunctionSignature {
2943 name: "current_timestamp",
2944 display_name: "CURRENT_TIMESTAMP",
2945 params: PARAMS_CURRENT_TIMESTAMP,
2946 return_type: Some(ReturnTypeRule::Timestamp),
2947 category: FunctionCategory::Scalar,
2948 }),
2949 "current_timestamp_ltz" => Some(FunctionSignature {
2950 name: "current_timestamp_ltz",
2951 display_name: "CURRENT_TIMESTAMP_LTZ",
2952 params: &[],
2953 return_type: None,
2954 category: FunctionCategory::Scalar,
2955 }),
2956 "current_user" => Some(FunctionSignature {
2957 name: "current_user",
2958 display_name: "CURRENT_USER",
2959 params: PARAMS_CURRENT_USER,
2960 return_type: None,
2961 category: FunctionCategory::Scalar,
2962 }),
2963 "date" => Some(FunctionSignature {
2964 name: "date",
2965 display_name: "DATE",
2966 params: PARAMS_DATE,
2967 return_type: None,
2968 category: FunctionCategory::Scalar,
2969 }),
2970 "date_diff" => Some(FunctionSignature {
2971 name: "date_diff",
2972 display_name: "DATE_DIFF",
2973 params: PARAMS_DATE_DIFF,
2974 return_type: None,
2975 category: FunctionCategory::Scalar,
2976 }),
2977 "date_from_parts" => Some(FunctionSignature {
2978 name: "date_from_parts",
2979 display_name: "DATE_FROM_PARTS",
2980 params: PARAMS_DATE_FROM_PARTS,
2981 return_type: None,
2982 category: FunctionCategory::Scalar,
2983 }),
2984 "datetime" => Some(FunctionSignature {
2985 name: "datetime",
2986 display_name: "DATETIME",
2987 params: PARAMS_DATETIME,
2988 return_type: None,
2989 category: FunctionCategory::Scalar,
2990 }),
2991 "datetime_add" => Some(FunctionSignature {
2992 name: "datetime_add",
2993 display_name: "DATETIME_ADD",
2994 params: PARAMS_DATETIME_ADD,
2995 return_type: None,
2996 category: FunctionCategory::Scalar,
2997 }),
2998 "datetime_diff" => Some(FunctionSignature {
2999 name: "datetime_diff",
3000 display_name: "DATETIME_DIFF",
3001 params: PARAMS_DATETIME_DIFF,
3002 return_type: None,
3003 category: FunctionCategory::Scalar,
3004 }),
3005 "datetime_sub" => Some(FunctionSignature {
3006 name: "datetime_sub",
3007 display_name: "DATETIME_SUB",
3008 params: PARAMS_DATETIME_SUB,
3009 return_type: None,
3010 category: FunctionCategory::Scalar,
3011 }),
3012 "datetime_trunc" => Some(FunctionSignature {
3013 name: "datetime_trunc",
3014 display_name: "DATETIME_TRUNC",
3015 params: PARAMS_DATETIME_TRUNC,
3016 return_type: None,
3017 category: FunctionCategory::Scalar,
3018 }),
3019 "date_add" => Some(FunctionSignature {
3020 name: "date_add",
3021 display_name: "DATE_ADD",
3022 params: PARAMS_DATE_ADD,
3023 return_type: None,
3024 category: FunctionCategory::Scalar,
3025 }),
3026 "date_bin" => Some(FunctionSignature {
3027 name: "date_bin",
3028 display_name: "DATE_BIN",
3029 params: PARAMS_DATE_BIN,
3030 return_type: None,
3031 category: FunctionCategory::Scalar,
3032 }),
3033 "date_from_unix_date" => Some(FunctionSignature {
3034 name: "date_from_unix_date",
3035 display_name: "DATE_FROM_UNIX_DATE",
3036 params: PARAMS_DATE_FROM_UNIX_DATE,
3037 return_type: None,
3038 category: FunctionCategory::Scalar,
3039 }),
3040 "date_str_to_date" => Some(FunctionSignature {
3041 name: "date_str_to_date",
3042 display_name: "DATE_STR_TO_DATE",
3043 params: PARAMS_DATE_STR_TO_DATE,
3044 return_type: None,
3045 category: FunctionCategory::Scalar,
3046 }),
3047 "date_sub" => Some(FunctionSignature {
3048 name: "date_sub",
3049 display_name: "DATE_SUB",
3050 params: PARAMS_DATE_SUB,
3051 return_type: None,
3052 category: FunctionCategory::Scalar,
3053 }),
3054 "date_to_date_str" => Some(FunctionSignature {
3055 name: "date_to_date_str",
3056 display_name: "DATE_TO_DATE_STR",
3057 params: PARAMS_DATE_TO_DATE_STR,
3058 return_type: None,
3059 category: FunctionCategory::Scalar,
3060 }),
3061 "date_to_di" => Some(FunctionSignature {
3062 name: "date_to_di",
3063 display_name: "DATE_TO_DI",
3064 params: PARAMS_DATE_TO_DI,
3065 return_type: None,
3066 category: FunctionCategory::Scalar,
3067 }),
3068 "date_trunc" => Some(FunctionSignature {
3069 name: "date_trunc",
3070 display_name: "DATE_TRUNC",
3071 params: PARAMS_DATE_TRUNC,
3072 return_type: Some(ReturnTypeRule::MatchFirstArg),
3073 category: FunctionCategory::Scalar,
3074 }),
3075 "day" => Some(FunctionSignature {
3076 name: "day",
3077 display_name: "DAY",
3078 params: PARAMS_DAY,
3079 return_type: None,
3080 category: FunctionCategory::Scalar,
3081 }),
3082 "day_of_month" => Some(FunctionSignature {
3083 name: "day_of_month",
3084 display_name: "DAY_OF_MONTH",
3085 params: PARAMS_DAY_OF_MONTH,
3086 return_type: None,
3087 category: FunctionCategory::Scalar,
3088 }),
3089 "day_of_week" => Some(FunctionSignature {
3090 name: "day_of_week",
3091 display_name: "DAY_OF_WEEK",
3092 params: PARAMS_DAY_OF_WEEK,
3093 return_type: None,
3094 category: FunctionCategory::Scalar,
3095 }),
3096 "day_of_week_iso" => Some(FunctionSignature {
3097 name: "day_of_week_iso",
3098 display_name: "DAY_OF_WEEK_ISO",
3099 params: PARAMS_DAY_OF_WEEK_ISO,
3100 return_type: None,
3101 category: FunctionCategory::Scalar,
3102 }),
3103 "day_of_year" => Some(FunctionSignature {
3104 name: "day_of_year",
3105 display_name: "DAY_OF_YEAR",
3106 params: PARAMS_DAY_OF_YEAR,
3107 return_type: None,
3108 category: FunctionCategory::Scalar,
3109 }),
3110 "decode" => Some(FunctionSignature {
3111 name: "decode",
3112 display_name: "DECODE",
3113 params: PARAMS_DECODE,
3114 return_type: None,
3115 category: FunctionCategory::Scalar,
3116 }),
3117 "decode_case" => Some(FunctionSignature {
3118 name: "decode_case",
3119 display_name: "DECODE_CASE",
3120 params: PARAMS_DECODE_CASE,
3121 return_type: None,
3122 category: FunctionCategory::Scalar,
3123 }),
3124 "decompress_binary" => Some(FunctionSignature {
3125 name: "decompress_binary",
3126 display_name: "DECOMPRESS_BINARY",
3127 params: PARAMS_DECOMPRESS_BINARY,
3128 return_type: None,
3129 category: FunctionCategory::Scalar,
3130 }),
3131 "decompress_string" => Some(FunctionSignature {
3132 name: "decompress_string",
3133 display_name: "DECOMPRESS_STRING",
3134 params: PARAMS_DECOMPRESS_STRING,
3135 return_type: None,
3136 category: FunctionCategory::Scalar,
3137 }),
3138 "degrees" => Some(FunctionSignature {
3139 name: "degrees",
3140 display_name: "DEGREES",
3141 params: PARAMS_DEGREES,
3142 return_type: None,
3143 category: FunctionCategory::Scalar,
3144 }),
3145 "dense_rank" => Some(FunctionSignature {
3146 name: "dense_rank",
3147 display_name: "DENSE_RANK",
3148 params: PARAMS_DENSE_RANK,
3149 return_type: Some(ReturnTypeRule::Integer),
3150 category: FunctionCategory::Window,
3151 }),
3152 "di_to_date" => Some(FunctionSignature {
3153 name: "di_to_date",
3154 display_name: "DI_TO_DATE",
3155 params: PARAMS_DI_TO_DATE,
3156 return_type: None,
3157 category: FunctionCategory::Scalar,
3158 }),
3159 "encode" => Some(FunctionSignature {
3160 name: "encode",
3161 display_name: "ENCODE",
3162 params: PARAMS_ENCODE,
3163 return_type: None,
3164 category: FunctionCategory::Scalar,
3165 }),
3166 "ends_with" => Some(FunctionSignature {
3167 name: "ends_with",
3168 display_name: "ENDS_WITH",
3169 params: PARAMS_ENDS_WITH,
3170 return_type: None,
3171 category: FunctionCategory::Scalar,
3172 }),
3173 "equal_null" => Some(FunctionSignature {
3174 name: "equal_null",
3175 display_name: "EQUAL_NULL",
3176 params: PARAMS_EQUAL_NULL,
3177 return_type: None,
3178 category: FunctionCategory::Scalar,
3179 }),
3180 "euclidean_distance" => Some(FunctionSignature {
3181 name: "euclidean_distance",
3182 display_name: "EUCLIDEAN_DISTANCE",
3183 params: PARAMS_EUCLIDEAN_DISTANCE,
3184 return_type: None,
3185 category: FunctionCategory::Scalar,
3186 }),
3187 "exists" => Some(FunctionSignature {
3188 name: "exists",
3189 display_name: "EXISTS",
3190 params: PARAMS_EXISTS,
3191 return_type: None,
3192 category: FunctionCategory::Scalar,
3193 }),
3194 "exp" => Some(FunctionSignature {
3195 name: "exp",
3196 display_name: "EXP",
3197 params: PARAMS_EXP,
3198 return_type: None,
3199 category: FunctionCategory::Scalar,
3200 }),
3201 "explode" => Some(FunctionSignature {
3202 name: "explode",
3203 display_name: "EXPLODE",
3204 params: PARAMS_EXPLODE,
3205 return_type: None,
3206 category: FunctionCategory::Scalar,
3207 }),
3208 "explode_outer" => Some(FunctionSignature {
3209 name: "explode_outer",
3210 display_name: "EXPLODE_OUTER",
3211 params: PARAMS_EXPLODE_OUTER,
3212 return_type: None,
3213 category: FunctionCategory::Scalar,
3214 }),
3215 "exploding_generate_series" => Some(FunctionSignature {
3216 name: "exploding_generate_series",
3217 display_name: "EXPLODING_GENERATE_SERIES",
3218 params: PARAMS_EXPLODING_GENERATE_SERIES,
3219 return_type: None,
3220 category: FunctionCategory::Scalar,
3221 }),
3222 "extract" => Some(FunctionSignature {
3223 name: "extract",
3224 display_name: "EXTRACT",
3225 params: PARAMS_EXTRACT,
3226 return_type: None,
3227 category: FunctionCategory::Scalar,
3228 }),
3229 "factorial" => Some(FunctionSignature {
3230 name: "factorial",
3231 display_name: "FACTORIAL",
3232 params: PARAMS_FACTORIAL,
3233 return_type: None,
3234 category: FunctionCategory::Scalar,
3235 }),
3236 "farm_fingerprint" => Some(FunctionSignature {
3237 name: "farm_fingerprint",
3238 display_name: "FARM_FINGERPRINT",
3239 params: PARAMS_FARM_FINGERPRINT,
3240 return_type: None,
3241 category: FunctionCategory::Scalar,
3242 }),
3243 "features_at_time" => Some(FunctionSignature {
3244 name: "features_at_time",
3245 display_name: "FEATURES_AT_TIME",
3246 params: PARAMS_FEATURES_AT_TIME,
3247 return_type: None,
3248 category: FunctionCategory::Scalar,
3249 }),
3250 "first" => Some(FunctionSignature {
3251 name: "first",
3252 display_name: "FIRST",
3253 params: PARAMS_FIRST,
3254 return_type: None,
3255 category: FunctionCategory::Aggregate,
3256 }),
3257 "first_value" => Some(FunctionSignature {
3258 name: "first_value",
3259 display_name: "FIRST_VALUE",
3260 params: PARAMS_FIRST_VALUE,
3261 return_type: Some(ReturnTypeRule::MatchFirstArg),
3262 category: FunctionCategory::Window,
3263 }),
3264 "flatten" => Some(FunctionSignature {
3265 name: "flatten",
3266 display_name: "FLATTEN",
3267 params: PARAMS_FLATTEN,
3268 return_type: None,
3269 category: FunctionCategory::Scalar,
3270 }),
3271 "float64" => Some(FunctionSignature {
3272 name: "float64",
3273 display_name: "FLOAT64",
3274 params: PARAMS_FLOAT64,
3275 return_type: None,
3276 category: FunctionCategory::Scalar,
3277 }),
3278 "floor" => Some(FunctionSignature {
3279 name: "floor",
3280 display_name: "FLOOR",
3281 params: PARAMS_FLOOR,
3282 return_type: None,
3283 category: FunctionCategory::Scalar,
3284 }),
3285 "format" => Some(FunctionSignature {
3286 name: "format",
3287 display_name: "FORMAT",
3288 params: PARAMS_FORMAT,
3289 return_type: None,
3290 category: FunctionCategory::Scalar,
3291 }),
3292 "from_base" => Some(FunctionSignature {
3293 name: "from_base",
3294 display_name: "FROM_BASE",
3295 params: PARAMS_FROM_BASE,
3296 return_type: None,
3297 category: FunctionCategory::Scalar,
3298 }),
3299 "from_base32" => Some(FunctionSignature {
3300 name: "from_base32",
3301 display_name: "FROM_BASE32",
3302 params: PARAMS_FROM_BASE32,
3303 return_type: None,
3304 category: FunctionCategory::Scalar,
3305 }),
3306 "from_base64" => Some(FunctionSignature {
3307 name: "from_base64",
3308 display_name: "FROM_BASE64",
3309 params: PARAMS_FROM_BASE64,
3310 return_type: None,
3311 category: FunctionCategory::Scalar,
3312 }),
3313 "from_iso8601timestamp" => Some(FunctionSignature {
3314 name: "from_iso8601timestamp",
3315 display_name: "FROM_ISO8601TIMESTAMP",
3316 params: PARAMS_FROM_ISO8601TIMESTAMP,
3317 return_type: None,
3318 category: FunctionCategory::Scalar,
3319 }),
3320 "gap_fill" => Some(FunctionSignature {
3321 name: "gap_fill",
3322 display_name: "GAP_FILL",
3323 params: PARAMS_GAP_FILL,
3324 return_type: None,
3325 category: FunctionCategory::Scalar,
3326 }),
3327 "generate_date_array" => Some(FunctionSignature {
3328 name: "generate_date_array",
3329 display_name: "GENERATE_DATE_ARRAY",
3330 params: PARAMS_GENERATE_DATE_ARRAY,
3331 return_type: None,
3332 category: FunctionCategory::Scalar,
3333 }),
3334 "generate_embedding" => Some(FunctionSignature {
3335 name: "generate_embedding",
3336 display_name: "GENERATE_EMBEDDING",
3337 params: PARAMS_GENERATE_EMBEDDING,
3338 return_type: None,
3339 category: FunctionCategory::Scalar,
3340 }),
3341 "generate_series" => Some(FunctionSignature {
3342 name: "generate_series",
3343 display_name: "GENERATE_SERIES",
3344 params: PARAMS_GENERATE_SERIES,
3345 return_type: None,
3346 category: FunctionCategory::Scalar,
3347 }),
3348 "generate_timestamp_array" => Some(FunctionSignature {
3349 name: "generate_timestamp_array",
3350 display_name: "GENERATE_TIMESTAMP_ARRAY",
3351 params: PARAMS_GENERATE_TIMESTAMP_ARRAY,
3352 return_type: None,
3353 category: FunctionCategory::Scalar,
3354 }),
3355 "uuid" => Some(FunctionSignature {
3356 name: "uuid",
3357 display_name: "UUID",
3358 params: PARAMS_UUID,
3359 return_type: None,
3360 category: FunctionCategory::Scalar,
3361 }),
3362 "getbit" => Some(FunctionSignature {
3363 name: "getbit",
3364 display_name: "GETBIT",
3365 params: PARAMS_GETBIT,
3366 return_type: None,
3367 category: FunctionCategory::Scalar,
3368 }),
3369 "get_extract" => Some(FunctionSignature {
3370 name: "get_extract",
3371 display_name: "GET_EXTRACT",
3372 params: PARAMS_GET_EXTRACT,
3373 return_type: None,
3374 category: FunctionCategory::Scalar,
3375 }),
3376 "greatest" => Some(FunctionSignature {
3377 name: "greatest",
3378 display_name: "GREATEST",
3379 params: PARAMS_GREATEST,
3380 return_type: None,
3381 category: FunctionCategory::Scalar,
3382 }),
3383 "greatest_ignore_nulls" => Some(FunctionSignature {
3384 name: "greatest_ignore_nulls",
3385 display_name: "GREATEST_IGNORE_NULLS",
3386 params: PARAMS_GREATEST_IGNORE_NULLS,
3387 return_type: None,
3388 category: FunctionCategory::Scalar,
3389 }),
3390 "grouping" => Some(FunctionSignature {
3391 name: "grouping",
3392 display_name: "GROUPING",
3393 params: PARAMS_GROUPING,
3394 return_type: None,
3395 category: FunctionCategory::Aggregate,
3396 }),
3397 "grouping_id" => Some(FunctionSignature {
3398 name: "grouping_id",
3399 display_name: "GROUPING_ID",
3400 params: PARAMS_GROUPING_ID,
3401 return_type: None,
3402 category: FunctionCategory::Aggregate,
3403 }),
3404 "group_concat" => Some(FunctionSignature {
3405 name: "group_concat",
3406 display_name: "GROUP_CONCAT",
3407 params: PARAMS_GROUP_CONCAT,
3408 return_type: None,
3409 category: FunctionCategory::Aggregate,
3410 }),
3411 "hex" => Some(FunctionSignature {
3412 name: "hex",
3413 display_name: "HEX",
3414 params: PARAMS_HEX,
3415 return_type: None,
3416 category: FunctionCategory::Scalar,
3417 }),
3418 "hex_decode_string" => Some(FunctionSignature {
3419 name: "hex_decode_string",
3420 display_name: "HEX_DECODE_STRING",
3421 params: PARAMS_HEX_DECODE_STRING,
3422 return_type: None,
3423 category: FunctionCategory::Scalar,
3424 }),
3425 "hex_encode" => Some(FunctionSignature {
3426 name: "hex_encode",
3427 display_name: "HEX_ENCODE",
3428 params: PARAMS_HEX_ENCODE,
3429 return_type: None,
3430 category: FunctionCategory::Scalar,
3431 }),
3432 "hll" => Some(FunctionSignature {
3433 name: "hll",
3434 display_name: "HLL",
3435 params: PARAMS_HLL,
3436 return_type: None,
3437 category: FunctionCategory::Aggregate,
3438 }),
3439 "hour" => Some(FunctionSignature {
3440 name: "hour",
3441 display_name: "HOUR",
3442 params: PARAMS_HOUR,
3443 return_type: None,
3444 category: FunctionCategory::Scalar,
3445 }),
3446 "if" => Some(FunctionSignature {
3447 name: "if",
3448 display_name: "IF",
3449 params: PARAMS_IF,
3450 return_type: None,
3451 category: FunctionCategory::Scalar,
3452 }),
3453 "initcap" => Some(FunctionSignature {
3454 name: "initcap",
3455 display_name: "INITCAP",
3456 params: PARAMS_INITCAP,
3457 return_type: None,
3458 category: FunctionCategory::Scalar,
3459 }),
3460 "inline" => Some(FunctionSignature {
3461 name: "inline",
3462 display_name: "INLINE",
3463 params: PARAMS_INLINE,
3464 return_type: None,
3465 category: FunctionCategory::Scalar,
3466 }),
3467 "stuff" => Some(FunctionSignature {
3468 name: "stuff",
3469 display_name: "STUFF",
3470 params: PARAMS_STUFF,
3471 return_type: None,
3472 category: FunctionCategory::Scalar,
3473 }),
3474 "int64" => Some(FunctionSignature {
3475 name: "int64",
3476 display_name: "INT64",
3477 params: PARAMS_INT64,
3478 return_type: None,
3479 category: FunctionCategory::Scalar,
3480 }),
3481 "is_inf" => Some(FunctionSignature {
3482 name: "is_inf",
3483 display_name: "IS_INF",
3484 params: PARAMS_IS_INF,
3485 return_type: None,
3486 category: FunctionCategory::Scalar,
3487 }),
3488 "is_nan" => Some(FunctionSignature {
3489 name: "is_nan",
3490 display_name: "IS_NAN",
3491 params: PARAMS_IS_NAN,
3492 return_type: None,
3493 category: FunctionCategory::Scalar,
3494 }),
3495 "is_ascii" => Some(FunctionSignature {
3496 name: "is_ascii",
3497 display_name: "IS_ASCII",
3498 params: PARAMS_IS_ASCII,
3499 return_type: None,
3500 category: FunctionCategory::Scalar,
3501 }),
3502 "is_null_value" => Some(FunctionSignature {
3503 name: "is_null_value",
3504 display_name: "IS_NULL_VALUE",
3505 params: PARAMS_IS_NULL_VALUE,
3506 return_type: None,
3507 category: FunctionCategory::Scalar,
3508 }),
3509 "jarowinkler_similarity" => Some(FunctionSignature {
3510 name: "jarowinkler_similarity",
3511 display_name: "JAROWINKLER_SIMILARITY",
3512 params: PARAMS_JAROWINKLER_SIMILARITY,
3513 return_type: None,
3514 category: FunctionCategory::Scalar,
3515 }),
3516 "jsonb_contains" => Some(FunctionSignature {
3517 name: "jsonb_contains",
3518 display_name: "JSONB_CONTAINS",
3519 params: PARAMS_JSONB_CONTAINS,
3520 return_type: None,
3521 category: FunctionCategory::Scalar,
3522 }),
3523 "jsonb_exists" => Some(FunctionSignature {
3524 name: "jsonb_exists",
3525 display_name: "JSONB_EXISTS",
3526 params: PARAMS_JSONB_EXISTS,
3527 return_type: None,
3528 category: FunctionCategory::Scalar,
3529 }),
3530 "jsonb_extract" => Some(FunctionSignature {
3531 name: "jsonb_extract",
3532 display_name: "JSONB_EXTRACT",
3533 params: PARAMS_JSONB_EXTRACT,
3534 return_type: None,
3535 category: FunctionCategory::Scalar,
3536 }),
3537 "jsonb_extract_scalar" => Some(FunctionSignature {
3538 name: "jsonb_extract_scalar",
3539 display_name: "JSONB_EXTRACT_SCALAR",
3540 params: PARAMS_JSONB_EXTRACT_SCALAR,
3541 return_type: None,
3542 category: FunctionCategory::Scalar,
3543 }),
3544 "json_array_append" => Some(FunctionSignature {
3545 name: "json_array_append",
3546 display_name: "JSON_ARRAY_APPEND",
3547 params: PARAMS_JSON_ARRAY_APPEND,
3548 return_type: None,
3549 category: FunctionCategory::Scalar,
3550 }),
3551 "json_array_contains" => Some(FunctionSignature {
3552 name: "json_array_contains",
3553 display_name: "JSON_ARRAY_CONTAINS",
3554 params: PARAMS_JSON_ARRAY_CONTAINS,
3555 return_type: None,
3556 category: FunctionCategory::Scalar,
3557 }),
3558 "json_array_insert" => Some(FunctionSignature {
3559 name: "json_array_insert",
3560 display_name: "JSON_ARRAY_INSERT",
3561 params: PARAMS_JSON_ARRAY_INSERT,
3562 return_type: None,
3563 category: FunctionCategory::Scalar,
3564 }),
3565 "json_extract" => Some(FunctionSignature {
3566 name: "json_extract",
3567 display_name: "JSON_EXTRACT",
3568 params: PARAMS_JSON_EXTRACT,
3569 return_type: None,
3570 category: FunctionCategory::Scalar,
3571 }),
3572 "json_extract_array" => Some(FunctionSignature {
3573 name: "json_extract_array",
3574 display_name: "JSON_EXTRACT_ARRAY",
3575 params: PARAMS_JSON_EXTRACT_ARRAY,
3576 return_type: None,
3577 category: FunctionCategory::Scalar,
3578 }),
3579 "json_extract_scalar" => Some(FunctionSignature {
3580 name: "json_extract_scalar",
3581 display_name: "JSON_EXTRACT_SCALAR",
3582 params: PARAMS_JSON_EXTRACT_SCALAR,
3583 return_type: None,
3584 category: FunctionCategory::Scalar,
3585 }),
3586 "json_format" => Some(FunctionSignature {
3587 name: "json_format",
3588 display_name: "JSON_FORMAT",
3589 params: PARAMS_JSON_FORMAT,
3590 return_type: None,
3591 category: FunctionCategory::Scalar,
3592 }),
3593 "parse_json" => Some(FunctionSignature {
3594 name: "parse_json",
3595 display_name: "PARSE_JSON",
3596 params: PARAMS_PARSE_JSON,
3597 return_type: None,
3598 category: FunctionCategory::Scalar,
3599 }),
3600 "json_remove" => Some(FunctionSignature {
3601 name: "json_remove",
3602 display_name: "JSON_REMOVE",
3603 params: PARAMS_JSON_REMOVE,
3604 return_type: None,
3605 category: FunctionCategory::Scalar,
3606 }),
3607 "json_set" => Some(FunctionSignature {
3608 name: "json_set",
3609 display_name: "JSON_SET",
3610 params: PARAMS_JSON_SET,
3611 return_type: None,
3612 category: FunctionCategory::Scalar,
3613 }),
3614 "json_strip_nulls" => Some(FunctionSignature {
3615 name: "json_strip_nulls",
3616 display_name: "JSON_STRIP_NULLS",
3617 params: PARAMS_JSON_STRIP_NULLS,
3618 return_type: None,
3619 category: FunctionCategory::Scalar,
3620 }),
3621 "json_type" => Some(FunctionSignature {
3622 name: "json_type",
3623 display_name: "JSON_TYPE",
3624 params: PARAMS_JSON_TYPE,
3625 return_type: None,
3626 category: FunctionCategory::Scalar,
3627 }),
3628 "justify_days" => Some(FunctionSignature {
3629 name: "justify_days",
3630 display_name: "JUSTIFY_DAYS",
3631 params: PARAMS_JUSTIFY_DAYS,
3632 return_type: None,
3633 category: FunctionCategory::Scalar,
3634 }),
3635 "justify_hours" => Some(FunctionSignature {
3636 name: "justify_hours",
3637 display_name: "JUSTIFY_HOURS",
3638 params: PARAMS_JUSTIFY_HOURS,
3639 return_type: None,
3640 category: FunctionCategory::Scalar,
3641 }),
3642 "justify_interval" => Some(FunctionSignature {
3643 name: "justify_interval",
3644 display_name: "JUSTIFY_INTERVAL",
3645 params: PARAMS_JUSTIFY_INTERVAL,
3646 return_type: None,
3647 category: FunctionCategory::Scalar,
3648 }),
3649 "json_array" => Some(FunctionSignature {
3650 name: "json_array",
3651 display_name: "JSON_ARRAY",
3652 params: PARAMS_JSON_ARRAY,
3653 return_type: None,
3654 category: FunctionCategory::Scalar,
3655 }),
3656 "json_array_agg" => Some(FunctionSignature {
3657 name: "json_array_agg",
3658 display_name: "JSON_ARRAY_AGG",
3659 params: PARAMS_JSON_ARRAY_AGG,
3660 return_type: None,
3661 category: FunctionCategory::Scalar,
3662 }),
3663 "json_bool" => Some(FunctionSignature {
3664 name: "json_bool",
3665 display_name: "JSON_BOOL",
3666 params: PARAMS_JSON_BOOL,
3667 return_type: None,
3668 category: FunctionCategory::Scalar,
3669 }),
3670 "jsonb_contains_all_top_keys" => Some(FunctionSignature {
3671 name: "jsonb_contains_all_top_keys",
3672 display_name: "JSONB_CONTAINS_ALL_TOP_KEYS",
3673 params: PARAMS_JSONB_CONTAINS_ALL_TOP_KEYS,
3674 return_type: None,
3675 category: FunctionCategory::Scalar,
3676 }),
3677 "jsonb_contains_any_top_keys" => Some(FunctionSignature {
3678 name: "jsonb_contains_any_top_keys",
3679 display_name: "JSONB_CONTAINS_ANY_TOP_KEYS",
3680 params: PARAMS_JSONB_CONTAINS_ANY_TOP_KEYS,
3681 return_type: None,
3682 category: FunctionCategory::Scalar,
3683 }),
3684 "jsonb_delete_at_path" => Some(FunctionSignature {
3685 name: "jsonb_delete_at_path",
3686 display_name: "JSONB_DELETE_AT_PATH",
3687 params: PARAMS_JSONB_DELETE_AT_PATH,
3688 return_type: None,
3689 category: FunctionCategory::Scalar,
3690 }),
3691 "jsonb_object_agg" => Some(FunctionSignature {
3692 name: "jsonb_object_agg",
3693 display_name: "JSONB_OBJECT_AGG",
3694 params: PARAMS_JSONB_OBJECT_AGG,
3695 return_type: None,
3696 category: FunctionCategory::Aggregate,
3697 }),
3698 "json_cast" => Some(FunctionSignature {
3699 name: "json_cast",
3700 display_name: "JSON_CAST",
3701 params: PARAMS_JSON_CAST,
3702 return_type: None,
3703 category: FunctionCategory::Scalar,
3704 }),
3705 "json_exists" => Some(FunctionSignature {
3706 name: "json_exists",
3707 display_name: "JSON_EXISTS",
3708 params: PARAMS_JSON_EXISTS,
3709 return_type: None,
3710 category: FunctionCategory::Scalar,
3711 }),
3712 "json_keys_at_depth" => Some(FunctionSignature {
3713 name: "json_keys_at_depth",
3714 display_name: "JSON_KEYS_AT_DEPTH",
3715 params: PARAMS_JSON_KEYS_AT_DEPTH,
3716 return_type: None,
3717 category: FunctionCategory::Scalar,
3718 }),
3719 "json_object" => Some(FunctionSignature {
3720 name: "json_object",
3721 display_name: "JSON_OBJECT",
3722 params: PARAMS_JSON_OBJECT,
3723 return_type: None,
3724 category: FunctionCategory::Scalar,
3725 }),
3726 "json_object_agg" => Some(FunctionSignature {
3727 name: "json_object_agg",
3728 display_name: "JSON_OBJECT_AGG",
3729 params: PARAMS_JSON_OBJECT_AGG,
3730 return_type: None,
3731 category: FunctionCategory::Aggregate,
3732 }),
3733 "json_table" => Some(FunctionSignature {
3734 name: "json_table",
3735 display_name: "JSON_TABLE",
3736 params: PARAMS_JSON_TABLE,
3737 return_type: None,
3738 category: FunctionCategory::Scalar,
3739 }),
3740 "json_value_array" => Some(FunctionSignature {
3741 name: "json_value_array",
3742 display_name: "JSON_VALUE_ARRAY",
3743 params: PARAMS_JSON_VALUE_ARRAY,
3744 return_type: None,
3745 category: FunctionCategory::Scalar,
3746 }),
3747 "lag" => Some(FunctionSignature {
3748 name: "lag",
3749 display_name: "LAG",
3750 params: PARAMS_LAG,
3751 return_type: Some(ReturnTypeRule::MatchFirstArg),
3752 category: FunctionCategory::Window,
3753 }),
3754 "last" => Some(FunctionSignature {
3755 name: "last",
3756 display_name: "LAST",
3757 params: PARAMS_LAST,
3758 return_type: None,
3759 category: FunctionCategory::Aggregate,
3760 }),
3761 "last_day" => Some(FunctionSignature {
3762 name: "last_day",
3763 display_name: "LAST_DAY",
3764 params: PARAMS_LAST_DAY,
3765 return_type: None,
3766 category: FunctionCategory::Scalar,
3767 }),
3768 "last_value" => Some(FunctionSignature {
3769 name: "last_value",
3770 display_name: "LAST_VALUE",
3771 params: PARAMS_LAST_VALUE,
3772 return_type: Some(ReturnTypeRule::MatchFirstArg),
3773 category: FunctionCategory::Window,
3774 }),
3775 "lax_bool" => Some(FunctionSignature {
3776 name: "lax_bool",
3777 display_name: "LAX_BOOL",
3778 params: PARAMS_LAX_BOOL,
3779 return_type: None,
3780 category: FunctionCategory::Scalar,
3781 }),
3782 "lax_float64" => Some(FunctionSignature {
3783 name: "lax_float64",
3784 display_name: "LAX_FLOAT64",
3785 params: PARAMS_LAX_FLOAT64,
3786 return_type: None,
3787 category: FunctionCategory::Scalar,
3788 }),
3789 "lax_int64" => Some(FunctionSignature {
3790 name: "lax_int64",
3791 display_name: "LAX_INT64",
3792 params: PARAMS_LAX_INT64,
3793 return_type: None,
3794 category: FunctionCategory::Scalar,
3795 }),
3796 "lax_string" => Some(FunctionSignature {
3797 name: "lax_string",
3798 display_name: "LAX_STRING",
3799 params: PARAMS_LAX_STRING,
3800 return_type: None,
3801 category: FunctionCategory::Scalar,
3802 }),
3803 "lower" => Some(FunctionSignature {
3804 name: "lower",
3805 display_name: "LOWER",
3806 params: PARAMS_LOWER,
3807 return_type: Some(ReturnTypeRule::Text),
3808 category: FunctionCategory::Scalar,
3809 }),
3810 "lead" => Some(FunctionSignature {
3811 name: "lead",
3812 display_name: "LEAD",
3813 params: PARAMS_LEAD,
3814 return_type: Some(ReturnTypeRule::MatchFirstArg),
3815 category: FunctionCategory::Window,
3816 }),
3817 "least" => Some(FunctionSignature {
3818 name: "least",
3819 display_name: "LEAST",
3820 params: PARAMS_LEAST,
3821 return_type: None,
3822 category: FunctionCategory::Scalar,
3823 }),
3824 "least_ignore_nulls" => Some(FunctionSignature {
3825 name: "least_ignore_nulls",
3826 display_name: "LEAST_IGNORE_NULLS",
3827 params: PARAMS_LEAST_IGNORE_NULLS,
3828 return_type: None,
3829 category: FunctionCategory::Scalar,
3830 }),
3831 "left" => Some(FunctionSignature {
3832 name: "left",
3833 display_name: "LEFT",
3834 params: PARAMS_LEFT,
3835 return_type: None,
3836 category: FunctionCategory::Scalar,
3837 }),
3838 "levenshtein" => Some(FunctionSignature {
3839 name: "levenshtein",
3840 display_name: "LEVENSHTEIN",
3841 params: PARAMS_LEVENSHTEIN,
3842 return_type: None,
3843 category: FunctionCategory::Scalar,
3844 }),
3845 "list" => Some(FunctionSignature {
3846 name: "list",
3847 display_name: "LIST",
3848 params: PARAMS_LIST,
3849 return_type: None,
3850 category: FunctionCategory::Scalar,
3851 }),
3852 "ln" => Some(FunctionSignature {
3853 name: "ln",
3854 display_name: "LN",
3855 params: PARAMS_LN,
3856 return_type: None,
3857 category: FunctionCategory::Scalar,
3858 }),
3859 "log" => Some(FunctionSignature {
3860 name: "log",
3861 display_name: "LOG",
3862 params: PARAMS_LOG,
3863 return_type: None,
3864 category: FunctionCategory::Scalar,
3865 }),
3866 "lower_hex" => Some(FunctionSignature {
3867 name: "lower_hex",
3868 display_name: "LOWER_HEX",
3869 params: PARAMS_LOWER_HEX,
3870 return_type: None,
3871 category: FunctionCategory::Scalar,
3872 }),
3873 "make_interval" => Some(FunctionSignature {
3874 name: "make_interval",
3875 display_name: "MAKE_INTERVAL",
3876 params: PARAMS_MAKE_INTERVAL,
3877 return_type: None,
3878 category: FunctionCategory::Scalar,
3879 }),
3880 "map" => Some(FunctionSignature {
3881 name: "map",
3882 display_name: "MAP",
3883 params: PARAMS_MAP,
3884 return_type: None,
3885 category: FunctionCategory::Scalar,
3886 }),
3887 "map_from_entries" => Some(FunctionSignature {
3888 name: "map_from_entries",
3889 display_name: "MAP_FROM_ENTRIES",
3890 params: PARAMS_MAP_FROM_ENTRIES,
3891 return_type: None,
3892 category: FunctionCategory::Scalar,
3893 }),
3894 "match_against" => Some(FunctionSignature {
3895 name: "match_against",
3896 display_name: "MATCH_AGAINST",
3897 params: PARAMS_MATCH_AGAINST,
3898 return_type: None,
3899 category: FunctionCategory::Scalar,
3900 }),
3901 "max" => Some(FunctionSignature {
3902 name: "max",
3903 display_name: "MAX",
3904 params: PARAMS_MAX,
3905 return_type: Some(ReturnTypeRule::MatchFirstArg),
3906 category: FunctionCategory::Aggregate,
3907 }),
3908 "md5" => Some(FunctionSignature {
3909 name: "md5",
3910 display_name: "MD5",
3911 params: PARAMS_MD5,
3912 return_type: None,
3913 category: FunctionCategory::Scalar,
3914 }),
3915 "md5digest" => Some(FunctionSignature {
3916 name: "md5digest",
3917 display_name: "MD5DIGEST",
3918 params: PARAMS_MD5DIGEST,
3919 return_type: None,
3920 category: FunctionCategory::Scalar,
3921 }),
3922 "median" => Some(FunctionSignature {
3923 name: "median",
3924 display_name: "MEDIAN",
3925 params: PARAMS_MEDIAN,
3926 return_type: None,
3927 category: FunctionCategory::Aggregate,
3928 }),
3929 "min" => Some(FunctionSignature {
3930 name: "min",
3931 display_name: "MIN",
3932 params: PARAMS_MIN,
3933 return_type: Some(ReturnTypeRule::MatchFirstArg),
3934 category: FunctionCategory::Aggregate,
3935 }),
3936 "minhash" => Some(FunctionSignature {
3937 name: "minhash",
3938 display_name: "MINHASH",
3939 params: PARAMS_MINHASH,
3940 return_type: None,
3941 category: FunctionCategory::Aggregate,
3942 }),
3943 "minhash_combine" => Some(FunctionSignature {
3944 name: "minhash_combine",
3945 display_name: "MINHASH_COMBINE",
3946 params: PARAMS_MINHASH_COMBINE,
3947 return_type: None,
3948 category: FunctionCategory::Aggregate,
3949 }),
3950 "minute" => Some(FunctionSignature {
3951 name: "minute",
3952 display_name: "MINUTE",
3953 params: PARAMS_MINUTE,
3954 return_type: None,
3955 category: FunctionCategory::Scalar,
3956 }),
3957 "month" => Some(FunctionSignature {
3958 name: "month",
3959 display_name: "MONTH",
3960 params: PARAMS_MONTH,
3961 return_type: None,
3962 category: FunctionCategory::Scalar,
3963 }),
3964 "monthname" => Some(FunctionSignature {
3965 name: "monthname",
3966 display_name: "MONTHNAME",
3967 params: PARAMS_MONTHNAME,
3968 return_type: None,
3969 category: FunctionCategory::Scalar,
3970 }),
3971 "months_between" => Some(FunctionSignature {
3972 name: "months_between",
3973 display_name: "MONTHS_BETWEEN",
3974 params: PARAMS_MONTHS_BETWEEN,
3975 return_type: None,
3976 category: FunctionCategory::Scalar,
3977 }),
3978 "md5number_lower64" => Some(FunctionSignature {
3979 name: "md5number_lower64",
3980 display_name: "MD5NUMBER_LOWER64",
3981 params: PARAMS_MD5NUMBER_LOWER64,
3982 return_type: None,
3983 category: FunctionCategory::Scalar,
3984 }),
3985 "md5number_upper64" => Some(FunctionSignature {
3986 name: "md5number_upper64",
3987 display_name: "MD5NUMBER_UPPER64",
3988 params: PARAMS_MD5NUMBER_UPPER64,
3989 return_type: None,
3990 category: FunctionCategory::Scalar,
3991 }),
3992 "ml_forecast" => Some(FunctionSignature {
3993 name: "ml_forecast",
3994 display_name: "ML_FORECAST",
3995 params: PARAMS_ML_FORECAST,
3996 return_type: None,
3997 category: FunctionCategory::Scalar,
3998 }),
3999 "ml_translate" => Some(FunctionSignature {
4000 name: "ml_translate",
4001 display_name: "ML_TRANSLATE",
4002 params: PARAMS_ML_TRANSLATE,
4003 return_type: None,
4004 category: FunctionCategory::Scalar,
4005 }),
4006 "next_day" => Some(FunctionSignature {
4007 name: "next_day",
4008 display_name: "NEXT_DAY",
4009 params: PARAMS_NEXT_DAY,
4010 return_type: None,
4011 category: FunctionCategory::Scalar,
4012 }),
4013 "next_value_for" => Some(FunctionSignature {
4014 name: "next_value_for",
4015 display_name: "NEXT_VALUE_FOR",
4016 params: PARAMS_NEXT_VALUE_FOR,
4017 return_type: None,
4018 category: FunctionCategory::Scalar,
4019 }),
4020 "normalize" => Some(FunctionSignature {
4021 name: "normalize",
4022 display_name: "NORMALIZE",
4023 params: PARAMS_NORMALIZE,
4024 return_type: None,
4025 category: FunctionCategory::Scalar,
4026 }),
4027 "now" => Some(FunctionSignature {
4028 name: "now",
4029 display_name: "NOW",
4030 params: &[],
4031 return_type: Some(ReturnTypeRule::Timestamp),
4032 category: FunctionCategory::Scalar,
4033 }),
4034 "nth_value" => Some(FunctionSignature {
4035 name: "nth_value",
4036 display_name: "NTH_VALUE",
4037 params: PARAMS_NTH_VALUE,
4038 return_type: None,
4039 category: FunctionCategory::Window,
4040 }),
4041 "ntile" => Some(FunctionSignature {
4042 name: "ntile",
4043 display_name: "NTILE",
4044 params: PARAMS_NTILE,
4045 return_type: Some(ReturnTypeRule::Integer),
4046 category: FunctionCategory::Window,
4047 }),
4048 "nullif" => Some(FunctionSignature {
4049 name: "nullif",
4050 display_name: "NULLIF",
4051 params: PARAMS_NULLIF,
4052 return_type: None,
4053 category: FunctionCategory::Scalar,
4054 }),
4055 "number_to_str" => Some(FunctionSignature {
4056 name: "number_to_str",
4057 display_name: "NUMBER_TO_STR",
4058 params: PARAMS_NUMBER_TO_STR,
4059 return_type: None,
4060 category: FunctionCategory::Scalar,
4061 }),
4062 "nvl2" => Some(FunctionSignature {
4063 name: "nvl2",
4064 display_name: "NVL2",
4065 params: PARAMS_NVL2,
4066 return_type: None,
4067 category: FunctionCategory::Scalar,
4068 }),
4069 "object_agg" => Some(FunctionSignature {
4070 name: "object_agg",
4071 display_name: "OBJECT_AGG",
4072 params: PARAMS_OBJECT_AGG,
4073 return_type: None,
4074 category: FunctionCategory::Aggregate,
4075 }),
4076 "object_insert" => Some(FunctionSignature {
4077 name: "object_insert",
4078 display_name: "OBJECT_INSERT",
4079 params: PARAMS_OBJECT_INSERT,
4080 return_type: None,
4081 category: FunctionCategory::Scalar,
4082 }),
4083 "open_json" => Some(FunctionSignature {
4084 name: "open_json",
4085 display_name: "OPEN_JSON",
4086 params: PARAMS_OPEN_JSON,
4087 return_type: None,
4088 category: FunctionCategory::Scalar,
4089 }),
4090 "or" => Some(FunctionSignature {
4091 name: "or",
4092 display_name: "OR",
4093 params: PARAMS_OR,
4094 return_type: Some(ReturnTypeRule::Boolean),
4095 category: FunctionCategory::Scalar,
4096 }),
4097 "overlay" => Some(FunctionSignature {
4098 name: "overlay",
4099 display_name: "OVERLAY",
4100 params: PARAMS_OVERLAY,
4101 return_type: None,
4102 category: FunctionCategory::Scalar,
4103 }),
4104 "pad" => Some(FunctionSignature {
4105 name: "pad",
4106 display_name: "PAD",
4107 params: PARAMS_PAD,
4108 return_type: None,
4109 category: FunctionCategory::Scalar,
4110 }),
4111 "parameterized_agg" => Some(FunctionSignature {
4112 name: "parameterized_agg",
4113 display_name: "PARAMETERIZED_AGG",
4114 params: PARAMS_PARAMETERIZED_AGG,
4115 return_type: None,
4116 category: FunctionCategory::Aggregate,
4117 }),
4118 "parse_bignumeric" => Some(FunctionSignature {
4119 name: "parse_bignumeric",
4120 display_name: "PARSE_BIGNUMERIC",
4121 params: PARAMS_PARSE_BIGNUMERIC,
4122 return_type: None,
4123 category: FunctionCategory::Scalar,
4124 }),
4125 "parse_datetime" => Some(FunctionSignature {
4126 name: "parse_datetime",
4127 display_name: "PARSE_DATETIME",
4128 params: PARAMS_PARSE_DATETIME,
4129 return_type: None,
4130 category: FunctionCategory::Scalar,
4131 }),
4132 "parse_ip" => Some(FunctionSignature {
4133 name: "parse_ip",
4134 display_name: "PARSE_IP",
4135 params: PARAMS_PARSE_IP,
4136 return_type: None,
4137 category: FunctionCategory::Scalar,
4138 }),
4139 "parse_numeric" => Some(FunctionSignature {
4140 name: "parse_numeric",
4141 display_name: "PARSE_NUMERIC",
4142 params: PARAMS_PARSE_NUMERIC,
4143 return_type: None,
4144 category: FunctionCategory::Scalar,
4145 }),
4146 "parse_time" => Some(FunctionSignature {
4147 name: "parse_time",
4148 display_name: "PARSE_TIME",
4149 params: PARAMS_PARSE_TIME,
4150 return_type: None,
4151 category: FunctionCategory::Scalar,
4152 }),
4153 "parse_url" => Some(FunctionSignature {
4154 name: "parse_url",
4155 display_name: "PARSE_URL",
4156 params: PARAMS_PARSE_URL,
4157 return_type: None,
4158 category: FunctionCategory::Scalar,
4159 }),
4160 "percentile_cont" => Some(FunctionSignature {
4161 name: "percentile_cont",
4162 display_name: "PERCENTILE_CONT",
4163 params: PARAMS_PERCENTILE_CONT,
4164 return_type: None,
4165 category: FunctionCategory::Window,
4166 }),
4167 "percentile_disc" => Some(FunctionSignature {
4168 name: "percentile_disc",
4169 display_name: "PERCENTILE_DISC",
4170 params: PARAMS_PERCENTILE_DISC,
4171 return_type: None,
4172 category: FunctionCategory::Window,
4173 }),
4174 "percent_rank" => Some(FunctionSignature {
4175 name: "percent_rank",
4176 display_name: "PERCENT_RANK",
4177 params: PARAMS_PERCENT_RANK,
4178 return_type: None,
4179 category: FunctionCategory::Window,
4180 }),
4181 "pi" => Some(FunctionSignature {
4182 name: "pi",
4183 display_name: "PI",
4184 params: &[],
4185 return_type: None,
4186 category: FunctionCategory::Scalar,
4187 }),
4188 "posexplode" => Some(FunctionSignature {
4189 name: "posexplode",
4190 display_name: "POSEXPLODE",
4191 params: PARAMS_POSEXPLODE,
4192 return_type: None,
4193 category: FunctionCategory::Scalar,
4194 }),
4195 "posexplode_outer" => Some(FunctionSignature {
4196 name: "posexplode_outer",
4197 display_name: "POSEXPLODE_OUTER",
4198 params: PARAMS_POSEXPLODE_OUTER,
4199 return_type: None,
4200 category: FunctionCategory::Scalar,
4201 }),
4202 "pow" => Some(FunctionSignature {
4203 name: "pow",
4204 display_name: "POW",
4205 params: PARAMS_POW,
4206 return_type: None,
4207 category: FunctionCategory::Scalar,
4208 }),
4209 "predict" => Some(FunctionSignature {
4210 name: "predict",
4211 display_name: "PREDICT",
4212 params: PARAMS_PREDICT,
4213 return_type: None,
4214 category: FunctionCategory::Scalar,
4215 }),
4216 "previous_day" => Some(FunctionSignature {
4217 name: "previous_day",
4218 display_name: "PREVIOUS_DAY",
4219 params: PARAMS_PREVIOUS_DAY,
4220 return_type: None,
4221 category: FunctionCategory::Scalar,
4222 }),
4223 "quantile" => Some(FunctionSignature {
4224 name: "quantile",
4225 display_name: "QUANTILE",
4226 params: PARAMS_QUANTILE,
4227 return_type: None,
4228 category: FunctionCategory::Aggregate,
4229 }),
4230 "quarter" => Some(FunctionSignature {
4231 name: "quarter",
4232 display_name: "QUARTER",
4233 params: PARAMS_QUARTER,
4234 return_type: None,
4235 category: FunctionCategory::Scalar,
4236 }),
4237 "radians" => Some(FunctionSignature {
4238 name: "radians",
4239 display_name: "RADIANS",
4240 params: PARAMS_RADIANS,
4241 return_type: None,
4242 category: FunctionCategory::Scalar,
4243 }),
4244 "rand" => Some(FunctionSignature {
4245 name: "rand",
4246 display_name: "RAND",
4247 params: PARAMS_RAND,
4248 return_type: None,
4249 category: FunctionCategory::Scalar,
4250 }),
4251 "randn" => Some(FunctionSignature {
4252 name: "randn",
4253 display_name: "RANDN",
4254 params: PARAMS_RANDN,
4255 return_type: None,
4256 category: FunctionCategory::Scalar,
4257 }),
4258 "range_bucket" => Some(FunctionSignature {
4259 name: "range_bucket",
4260 display_name: "RANGE_BUCKET",
4261 params: PARAMS_RANGE_BUCKET,
4262 return_type: None,
4263 category: FunctionCategory::Scalar,
4264 }),
4265 "range_n" => Some(FunctionSignature {
4266 name: "range_n",
4267 display_name: "RANGE_N",
4268 params: PARAMS_RANGE_N,
4269 return_type: None,
4270 category: FunctionCategory::Scalar,
4271 }),
4272 "rank" => Some(FunctionSignature {
4273 name: "rank",
4274 display_name: "RANK",
4275 params: PARAMS_RANK,
4276 return_type: Some(ReturnTypeRule::Integer),
4277 category: FunctionCategory::Window,
4278 }),
4279 "read_csv" => Some(FunctionSignature {
4280 name: "read_csv",
4281 display_name: "READ_CSV",
4282 params: PARAMS_READ_CSV,
4283 return_type: None,
4284 category: FunctionCategory::Scalar,
4285 }),
4286 "read_parquet" => Some(FunctionSignature {
4287 name: "read_parquet",
4288 display_name: "READ_PARQUET",
4289 params: PARAMS_READ_PARQUET,
4290 return_type: None,
4291 category: FunctionCategory::Scalar,
4292 }),
4293 "reduce" => Some(FunctionSignature {
4294 name: "reduce",
4295 display_name: "REDUCE",
4296 params: PARAMS_REDUCE,
4297 return_type: None,
4298 category: FunctionCategory::Scalar,
4299 }),
4300 "regexp_count" => Some(FunctionSignature {
4301 name: "regexp_count",
4302 display_name: "REGEXP_COUNT",
4303 params: PARAMS_REGEXP_COUNT,
4304 return_type: None,
4305 category: FunctionCategory::Scalar,
4306 }),
4307 "regexp_extract" => Some(FunctionSignature {
4308 name: "regexp_extract",
4309 display_name: "REGEXP_EXTRACT",
4310 params: PARAMS_REGEXP_EXTRACT,
4311 return_type: None,
4312 category: FunctionCategory::Scalar,
4313 }),
4314 "regexp_extract_all" => Some(FunctionSignature {
4315 name: "regexp_extract_all",
4316 display_name: "REGEXP_EXTRACT_ALL",
4317 params: PARAMS_REGEXP_EXTRACT_ALL,
4318 return_type: None,
4319 category: FunctionCategory::Scalar,
4320 }),
4321 "regexp_full_match" => Some(FunctionSignature {
4322 name: "regexp_full_match",
4323 display_name: "REGEXP_FULL_MATCH",
4324 params: PARAMS_REGEXP_FULL_MATCH,
4325 return_type: None,
4326 category: FunctionCategory::Scalar,
4327 }),
4328 "regexp_instr" => Some(FunctionSignature {
4329 name: "regexp_instr",
4330 display_name: "REGEXP_INSTR",
4331 params: PARAMS_REGEXP_INSTR,
4332 return_type: None,
4333 category: FunctionCategory::Scalar,
4334 }),
4335 "regexp_i_like" => Some(FunctionSignature {
4336 name: "regexp_i_like",
4337 display_name: "REGEXP_I_LIKE",
4338 params: PARAMS_REGEXP_I_LIKE,
4339 return_type: None,
4340 category: FunctionCategory::Scalar,
4341 }),
4342 "regexp_like" => Some(FunctionSignature {
4343 name: "regexp_like",
4344 display_name: "REGEXP_LIKE",
4345 params: PARAMS_REGEXP_LIKE,
4346 return_type: None,
4347 category: FunctionCategory::Scalar,
4348 }),
4349 "regexp_replace" => Some(FunctionSignature {
4350 name: "regexp_replace",
4351 display_name: "REGEXP_REPLACE",
4352 params: PARAMS_REGEXP_REPLACE,
4353 return_type: None,
4354 category: FunctionCategory::Scalar,
4355 }),
4356 "regexp_split" => Some(FunctionSignature {
4357 name: "regexp_split",
4358 display_name: "REGEXP_SPLIT",
4359 params: PARAMS_REGEXP_SPLIT,
4360 return_type: None,
4361 category: FunctionCategory::Scalar,
4362 }),
4363 "regr_avgx" => Some(FunctionSignature {
4364 name: "regr_avgx",
4365 display_name: "REGR_AVGX",
4366 params: PARAMS_REGR_AVGX,
4367 return_type: None,
4368 category: FunctionCategory::Scalar,
4369 }),
4370 "regr_avgy" => Some(FunctionSignature {
4371 name: "regr_avgy",
4372 display_name: "REGR_AVGY",
4373 params: PARAMS_REGR_AVGY,
4374 return_type: None,
4375 category: FunctionCategory::Scalar,
4376 }),
4377 "regr_valx" => Some(FunctionSignature {
4378 name: "regr_valx",
4379 display_name: "REGR_VALX",
4380 params: PARAMS_REGR_VALX,
4381 return_type: None,
4382 category: FunctionCategory::Scalar,
4383 }),
4384 "regr_valy" => Some(FunctionSignature {
4385 name: "regr_valy",
4386 display_name: "REGR_VALY",
4387 params: PARAMS_REGR_VALY,
4388 return_type: None,
4389 category: FunctionCategory::Scalar,
4390 }),
4391 "repeat" => Some(FunctionSignature {
4392 name: "repeat",
4393 display_name: "REPEAT",
4394 params: PARAMS_REPEAT,
4395 return_type: None,
4396 category: FunctionCategory::Scalar,
4397 }),
4398 "replace" => Some(FunctionSignature {
4399 name: "replace",
4400 display_name: "REPLACE",
4401 params: PARAMS_REPLACE,
4402 return_type: Some(ReturnTypeRule::Text),
4403 category: FunctionCategory::Scalar,
4404 }),
4405 "reverse" => Some(FunctionSignature {
4406 name: "reverse",
4407 display_name: "REVERSE",
4408 params: PARAMS_REVERSE,
4409 return_type: None,
4410 category: FunctionCategory::Scalar,
4411 }),
4412 "right" => Some(FunctionSignature {
4413 name: "right",
4414 display_name: "RIGHT",
4415 params: PARAMS_RIGHT,
4416 return_type: None,
4417 category: FunctionCategory::Scalar,
4418 }),
4419 "round" => Some(FunctionSignature {
4420 name: "round",
4421 display_name: "ROUND",
4422 params: PARAMS_ROUND,
4423 return_type: None,
4424 category: FunctionCategory::Scalar,
4425 }),
4426 "row_number" => Some(FunctionSignature {
4427 name: "row_number",
4428 display_name: "ROW_NUMBER",
4429 params: PARAMS_ROW_NUMBER,
4430 return_type: Some(ReturnTypeRule::Integer),
4431 category: FunctionCategory::Window,
4432 }),
4433 "rtrimmed_length" => Some(FunctionSignature {
4434 name: "rtrimmed_length",
4435 display_name: "RTRIMMED_LENGTH",
4436 params: PARAMS_RTRIMMED_LENGTH,
4437 return_type: None,
4438 category: FunctionCategory::Scalar,
4439 }),
4440 "safe_add" => Some(FunctionSignature {
4441 name: "safe_add",
4442 display_name: "SAFE_ADD",
4443 params: PARAMS_SAFE_ADD,
4444 return_type: None,
4445 category: FunctionCategory::Scalar,
4446 }),
4447 "safe_convert_bytes_to_string" => Some(FunctionSignature {
4448 name: "safe_convert_bytes_to_string",
4449 display_name: "SAFE_CONVERT_BYTES_TO_STRING",
4450 params: PARAMS_SAFE_CONVERT_BYTES_TO_STRING,
4451 return_type: None,
4452 category: FunctionCategory::Scalar,
4453 }),
4454 "safe_divide" => Some(FunctionSignature {
4455 name: "safe_divide",
4456 display_name: "SAFE_DIVIDE",
4457 params: PARAMS_SAFE_DIVIDE,
4458 return_type: None,
4459 category: FunctionCategory::Scalar,
4460 }),
4461 "safe_multiply" => Some(FunctionSignature {
4462 name: "safe_multiply",
4463 display_name: "SAFE_MULTIPLY",
4464 params: PARAMS_SAFE_MULTIPLY,
4465 return_type: None,
4466 category: FunctionCategory::Scalar,
4467 }),
4468 "safe_negate" => Some(FunctionSignature {
4469 name: "safe_negate",
4470 display_name: "SAFE_NEGATE",
4471 params: PARAMS_SAFE_NEGATE,
4472 return_type: None,
4473 category: FunctionCategory::Scalar,
4474 }),
4475 "safe_subtract" => Some(FunctionSignature {
4476 name: "safe_subtract",
4477 display_name: "SAFE_SUBTRACT",
4478 params: PARAMS_SAFE_SUBTRACT,
4479 return_type: None,
4480 category: FunctionCategory::Scalar,
4481 }),
4482 "search" => Some(FunctionSignature {
4483 name: "search",
4484 display_name: "SEARCH",
4485 params: PARAMS_SEARCH,
4486 return_type: None,
4487 category: FunctionCategory::Scalar,
4488 }),
4489 "sec" => Some(FunctionSignature {
4490 name: "sec",
4491 display_name: "SEC",
4492 params: PARAMS_SEC,
4493 return_type: None,
4494 category: FunctionCategory::Scalar,
4495 }),
4496 "sech" => Some(FunctionSignature {
4497 name: "sech",
4498 display_name: "SECH",
4499 params: PARAMS_SECH,
4500 return_type: None,
4501 category: FunctionCategory::Scalar,
4502 }),
4503 "second" => Some(FunctionSignature {
4504 name: "second",
4505 display_name: "SECOND",
4506 params: PARAMS_SECOND,
4507 return_type: None,
4508 category: FunctionCategory::Scalar,
4509 }),
4510 "sha" => Some(FunctionSignature {
4511 name: "sha",
4512 display_name: "SHA",
4513 params: PARAMS_SHA,
4514 return_type: None,
4515 category: FunctionCategory::Scalar,
4516 }),
4517 "sha2" => Some(FunctionSignature {
4518 name: "sha2",
4519 display_name: "SHA2",
4520 params: PARAMS_SHA2,
4521 return_type: None,
4522 category: FunctionCategory::Scalar,
4523 }),
4524 "sign" => Some(FunctionSignature {
4525 name: "sign",
4526 display_name: "SIGN",
4527 params: PARAMS_SIGN,
4528 return_type: None,
4529 category: FunctionCategory::Scalar,
4530 }),
4531 "sin" => Some(FunctionSignature {
4532 name: "sin",
4533 display_name: "SIN",
4534 params: PARAMS_SIN,
4535 return_type: None,
4536 category: FunctionCategory::Scalar,
4537 }),
4538 "sinh" => Some(FunctionSignature {
4539 name: "sinh",
4540 display_name: "SINH",
4541 params: PARAMS_SINH,
4542 return_type: None,
4543 category: FunctionCategory::Scalar,
4544 }),
4545 "skewness" => Some(FunctionSignature {
4546 name: "skewness",
4547 display_name: "SKEWNESS",
4548 params: PARAMS_SKEWNESS,
4549 return_type: None,
4550 category: FunctionCategory::Aggregate,
4551 }),
4552 "sort_array" => Some(FunctionSignature {
4553 name: "sort_array",
4554 display_name: "SORT_ARRAY",
4555 params: PARAMS_SORT_ARRAY,
4556 return_type: None,
4557 category: FunctionCategory::Scalar,
4558 }),
4559 "soundex" => Some(FunctionSignature {
4560 name: "soundex",
4561 display_name: "SOUNDEX",
4562 params: PARAMS_SOUNDEX,
4563 return_type: None,
4564 category: FunctionCategory::Scalar,
4565 }),
4566 "soundex_p123" => Some(FunctionSignature {
4567 name: "soundex_p123",
4568 display_name: "SOUNDEX_P123",
4569 params: PARAMS_SOUNDEX_P123,
4570 return_type: None,
4571 category: FunctionCategory::Scalar,
4572 }),
4573 "space" => Some(FunctionSignature {
4574 name: "space",
4575 display_name: "SPACE",
4576 params: PARAMS_SPACE,
4577 return_type: None,
4578 category: FunctionCategory::Scalar,
4579 }),
4580 "split" => Some(FunctionSignature {
4581 name: "split",
4582 display_name: "SPLIT",
4583 params: PARAMS_SPLIT,
4584 return_type: None,
4585 category: FunctionCategory::Scalar,
4586 }),
4587 "string_to_array" => Some(FunctionSignature {
4588 name: "string_to_array",
4589 display_name: "STRING_TO_ARRAY",
4590 params: PARAMS_STRING_TO_ARRAY,
4591 return_type: None,
4592 category: FunctionCategory::Scalar,
4593 }),
4594 "split_part" => Some(FunctionSignature {
4595 name: "split_part",
4596 display_name: "SPLIT_PART",
4597 params: PARAMS_SPLIT_PART,
4598 return_type: None,
4599 category: FunctionCategory::Scalar,
4600 }),
4601 "sqrt" => Some(FunctionSignature {
4602 name: "sqrt",
4603 display_name: "SQRT",
4604 params: PARAMS_SQRT,
4605 return_type: None,
4606 category: FunctionCategory::Scalar,
4607 }),
4608 "standard_hash" => Some(FunctionSignature {
4609 name: "standard_hash",
4610 display_name: "STANDARD_HASH",
4611 params: PARAMS_STANDARD_HASH,
4612 return_type: None,
4613 category: FunctionCategory::Scalar,
4614 }),
4615 "starts_with" => Some(FunctionSignature {
4616 name: "starts_with",
4617 display_name: "STARTS_WITH",
4618 params: PARAMS_STARTS_WITH,
4619 return_type: None,
4620 category: FunctionCategory::Scalar,
4621 }),
4622 "star_map" => Some(FunctionSignature {
4623 name: "star_map",
4624 display_name: "STAR_MAP",
4625 params: PARAMS_STAR_MAP,
4626 return_type: None,
4627 category: FunctionCategory::Scalar,
4628 }),
4629 "stddev" => Some(FunctionSignature {
4630 name: "stddev",
4631 display_name: "STDDEV",
4632 params: PARAMS_STDDEV,
4633 return_type: None,
4634 category: FunctionCategory::Aggregate,
4635 }),
4636 "stddev_pop" => Some(FunctionSignature {
4637 name: "stddev_pop",
4638 display_name: "STDDEV_POP",
4639 params: PARAMS_STDDEV_POP,
4640 return_type: None,
4641 category: FunctionCategory::Aggregate,
4642 }),
4643 "stddev_samp" => Some(FunctionSignature {
4644 name: "stddev_samp",
4645 display_name: "STDDEV_SAMP",
4646 params: PARAMS_STDDEV_SAMP,
4647 return_type: None,
4648 category: FunctionCategory::Aggregate,
4649 }),
4650 "string" => Some(FunctionSignature {
4651 name: "string",
4652 display_name: "STRING",
4653 params: PARAMS_STRING,
4654 return_type: None,
4655 category: FunctionCategory::Scalar,
4656 }),
4657 "struct" => Some(FunctionSignature {
4658 name: "struct",
4659 display_name: "STRUCT",
4660 params: PARAMS_STRUCT,
4661 return_type: None,
4662 category: FunctionCategory::Scalar,
4663 }),
4664 "struct_extract" => Some(FunctionSignature {
4665 name: "struct_extract",
4666 display_name: "STRUCT_EXTRACT",
4667 params: PARAMS_STRUCT_EXTRACT,
4668 return_type: None,
4669 category: FunctionCategory::Scalar,
4670 }),
4671 "str_position" => Some(FunctionSignature {
4672 name: "str_position",
4673 display_name: "STR_POSITION",
4674 params: PARAMS_STR_POSITION,
4675 return_type: None,
4676 category: FunctionCategory::Scalar,
4677 }),
4678 "str_to_date" => Some(FunctionSignature {
4679 name: "str_to_date",
4680 display_name: "STR_TO_DATE",
4681 params: PARAMS_STR_TO_DATE,
4682 return_type: None,
4683 category: FunctionCategory::Scalar,
4684 }),
4685 "str_to_map" => Some(FunctionSignature {
4686 name: "str_to_map",
4687 display_name: "STR_TO_MAP",
4688 params: PARAMS_STR_TO_MAP,
4689 return_type: None,
4690 category: FunctionCategory::Scalar,
4691 }),
4692 "str_to_time" => Some(FunctionSignature {
4693 name: "str_to_time",
4694 display_name: "STR_TO_TIME",
4695 params: PARAMS_STR_TO_TIME,
4696 return_type: None,
4697 category: FunctionCategory::Scalar,
4698 }),
4699 "str_to_unix" => Some(FunctionSignature {
4700 name: "str_to_unix",
4701 display_name: "STR_TO_UNIX",
4702 params: PARAMS_STR_TO_UNIX,
4703 return_type: None,
4704 category: FunctionCategory::Scalar,
4705 }),
4706 "st_distance" => Some(FunctionSignature {
4707 name: "st_distance",
4708 display_name: "ST_DISTANCE",
4709 params: PARAMS_ST_DISTANCE,
4710 return_type: None,
4711 category: FunctionCategory::Scalar,
4712 }),
4713 "st_point" => Some(FunctionSignature {
4714 name: "st_point",
4715 display_name: "ST_POINT",
4716 params: PARAMS_ST_POINT,
4717 return_type: None,
4718 category: FunctionCategory::Scalar,
4719 }),
4720 "substring" => Some(FunctionSignature {
4721 name: "substring",
4722 display_name: "SUBSTRING",
4723 params: PARAMS_SUBSTRING,
4724 return_type: Some(ReturnTypeRule::Text),
4725 category: FunctionCategory::Scalar,
4726 }),
4727 "substring_index" => Some(FunctionSignature {
4728 name: "substring_index",
4729 display_name: "SUBSTRING_INDEX",
4730 params: PARAMS_SUBSTRING_INDEX,
4731 return_type: None,
4732 category: FunctionCategory::Scalar,
4733 }),
4734 "sum" => Some(FunctionSignature {
4735 name: "sum",
4736 display_name: "SUM",
4737 params: PARAMS_SUM,
4738 return_type: Some(ReturnTypeRule::Numeric),
4739 category: FunctionCategory::Aggregate,
4740 }),
4741 "sha1digest" => Some(FunctionSignature {
4742 name: "sha1digest",
4743 display_name: "SHA1DIGEST",
4744 params: PARAMS_SHA1DIGEST,
4745 return_type: None,
4746 category: FunctionCategory::Scalar,
4747 }),
4748 "sha2digest" => Some(FunctionSignature {
4749 name: "sha2digest",
4750 display_name: "SHA2DIGEST",
4751 params: PARAMS_SHA2DIGEST,
4752 return_type: None,
4753 category: FunctionCategory::Scalar,
4754 }),
4755 "tan" => Some(FunctionSignature {
4756 name: "tan",
4757 display_name: "TAN",
4758 params: PARAMS_TAN,
4759 return_type: None,
4760 category: FunctionCategory::Scalar,
4761 }),
4762 "tanh" => Some(FunctionSignature {
4763 name: "tanh",
4764 display_name: "TANH",
4765 params: PARAMS_TANH,
4766 return_type: None,
4767 category: FunctionCategory::Scalar,
4768 }),
4769 "time" => Some(FunctionSignature {
4770 name: "time",
4771 display_name: "TIME",
4772 params: PARAMS_TIME,
4773 return_type: None,
4774 category: FunctionCategory::Scalar,
4775 }),
4776 "time_from_parts" => Some(FunctionSignature {
4777 name: "time_from_parts",
4778 display_name: "TIME_FROM_PARTS",
4779 params: PARAMS_TIME_FROM_PARTS,
4780 return_type: None,
4781 category: FunctionCategory::Scalar,
4782 }),
4783 "timestamp" => Some(FunctionSignature {
4784 name: "timestamp",
4785 display_name: "TIMESTAMP",
4786 params: PARAMS_TIMESTAMP,
4787 return_type: None,
4788 category: FunctionCategory::Scalar,
4789 }),
4790 "timestamp_diff" => Some(FunctionSignature {
4791 name: "timestamp_diff",
4792 display_name: "TIMESTAMP_DIFF",
4793 params: PARAMS_TIMESTAMP_DIFF,
4794 return_type: None,
4795 category: FunctionCategory::Scalar,
4796 }),
4797 "timestamp_from_parts" => Some(FunctionSignature {
4798 name: "timestamp_from_parts",
4799 display_name: "TIMESTAMP_FROM_PARTS",
4800 params: PARAMS_TIMESTAMP_FROM_PARTS,
4801 return_type: None,
4802 category: FunctionCategory::Scalar,
4803 }),
4804 "timestamp_ltz_from_parts" => Some(FunctionSignature {
4805 name: "timestamp_ltz_from_parts",
4806 display_name: "TIMESTAMP_LTZ_FROM_PARTS",
4807 params: PARAMS_TIMESTAMP_LTZ_FROM_PARTS,
4808 return_type: None,
4809 category: FunctionCategory::Scalar,
4810 }),
4811 "timestamp_tz_from_parts" => Some(FunctionSignature {
4812 name: "timestamp_tz_from_parts",
4813 display_name: "TIMESTAMP_TZ_FROM_PARTS",
4814 params: PARAMS_TIMESTAMP_TZ_FROM_PARTS,
4815 return_type: None,
4816 category: FunctionCategory::Scalar,
4817 }),
4818 "timestamp_add" => Some(FunctionSignature {
4819 name: "timestamp_add",
4820 display_name: "TIMESTAMP_ADD",
4821 params: PARAMS_TIMESTAMP_ADD,
4822 return_type: None,
4823 category: FunctionCategory::Scalar,
4824 }),
4825 "timestamp_sub" => Some(FunctionSignature {
4826 name: "timestamp_sub",
4827 display_name: "TIMESTAMP_SUB",
4828 params: PARAMS_TIMESTAMP_SUB,
4829 return_type: None,
4830 category: FunctionCategory::Scalar,
4831 }),
4832 "timestamp_trunc" => Some(FunctionSignature {
4833 name: "timestamp_trunc",
4834 display_name: "TIMESTAMP_TRUNC",
4835 params: PARAMS_TIMESTAMP_TRUNC,
4836 return_type: None,
4837 category: FunctionCategory::Scalar,
4838 }),
4839 "time_add" => Some(FunctionSignature {
4840 name: "time_add",
4841 display_name: "TIME_ADD",
4842 params: PARAMS_TIME_ADD,
4843 return_type: None,
4844 category: FunctionCategory::Scalar,
4845 }),
4846 "time_diff" => Some(FunctionSignature {
4847 name: "time_diff",
4848 display_name: "TIME_DIFF",
4849 params: PARAMS_TIME_DIFF,
4850 return_type: None,
4851 category: FunctionCategory::Scalar,
4852 }),
4853 "time_slice" => Some(FunctionSignature {
4854 name: "time_slice",
4855 display_name: "TIME_SLICE",
4856 params: PARAMS_TIME_SLICE,
4857 return_type: None,
4858 category: FunctionCategory::Scalar,
4859 }),
4860 "time_str_to_date" => Some(FunctionSignature {
4861 name: "time_str_to_date",
4862 display_name: "TIME_STR_TO_DATE",
4863 params: PARAMS_TIME_STR_TO_DATE,
4864 return_type: None,
4865 category: FunctionCategory::Scalar,
4866 }),
4867 "time_str_to_time" => Some(FunctionSignature {
4868 name: "time_str_to_time",
4869 display_name: "TIME_STR_TO_TIME",
4870 params: PARAMS_TIME_STR_TO_TIME,
4871 return_type: None,
4872 category: FunctionCategory::Scalar,
4873 }),
4874 "time_str_to_unix" => Some(FunctionSignature {
4875 name: "time_str_to_unix",
4876 display_name: "TIME_STR_TO_UNIX",
4877 params: PARAMS_TIME_STR_TO_UNIX,
4878 return_type: None,
4879 category: FunctionCategory::Scalar,
4880 }),
4881 "time_sub" => Some(FunctionSignature {
4882 name: "time_sub",
4883 display_name: "TIME_SUB",
4884 params: PARAMS_TIME_SUB,
4885 return_type: None,
4886 category: FunctionCategory::Scalar,
4887 }),
4888 "time_to_str" => Some(FunctionSignature {
4889 name: "time_to_str",
4890 display_name: "TIME_TO_STR",
4891 params: PARAMS_TIME_TO_STR,
4892 return_type: None,
4893 category: FunctionCategory::Scalar,
4894 }),
4895 "time_to_time_str" => Some(FunctionSignature {
4896 name: "time_to_time_str",
4897 display_name: "TIME_TO_TIME_STR",
4898 params: PARAMS_TIME_TO_TIME_STR,
4899 return_type: None,
4900 category: FunctionCategory::Scalar,
4901 }),
4902 "time_to_unix" => Some(FunctionSignature {
4903 name: "time_to_unix",
4904 display_name: "TIME_TO_UNIX",
4905 params: PARAMS_TIME_TO_UNIX,
4906 return_type: None,
4907 category: FunctionCategory::Scalar,
4908 }),
4909 "time_trunc" => Some(FunctionSignature {
4910 name: "time_trunc",
4911 display_name: "TIME_TRUNC",
4912 params: PARAMS_TIME_TRUNC,
4913 return_type: None,
4914 category: FunctionCategory::Scalar,
4915 }),
4916 "to_array" => Some(FunctionSignature {
4917 name: "to_array",
4918 display_name: "TO_ARRAY",
4919 params: PARAMS_TO_ARRAY,
4920 return_type: None,
4921 category: FunctionCategory::Scalar,
4922 }),
4923 "to_base32" => Some(FunctionSignature {
4924 name: "to_base32",
4925 display_name: "TO_BASE32",
4926 params: PARAMS_TO_BASE32,
4927 return_type: None,
4928 category: FunctionCategory::Scalar,
4929 }),
4930 "to_base64" => Some(FunctionSignature {
4931 name: "to_base64",
4932 display_name: "TO_BASE64",
4933 params: PARAMS_TO_BASE64,
4934 return_type: None,
4935 category: FunctionCategory::Scalar,
4936 }),
4937 "to_char" => Some(FunctionSignature {
4938 name: "to_char",
4939 display_name: "TO_CHAR",
4940 params: PARAMS_TO_CHAR,
4941 return_type: None,
4942 category: FunctionCategory::Scalar,
4943 }),
4944 "to_code_points" => Some(FunctionSignature {
4945 name: "to_code_points",
4946 display_name: "TO_CODE_POINTS",
4947 params: PARAMS_TO_CODE_POINTS,
4948 return_type: None,
4949 category: FunctionCategory::Scalar,
4950 }),
4951 "to_days" => Some(FunctionSignature {
4952 name: "to_days",
4953 display_name: "TO_DAYS",
4954 params: PARAMS_TO_DAYS,
4955 return_type: None,
4956 category: FunctionCategory::Scalar,
4957 }),
4958 "to_double" => Some(FunctionSignature {
4959 name: "to_double",
4960 display_name: "TO_DOUBLE",
4961 params: PARAMS_TO_DOUBLE,
4962 return_type: None,
4963 category: FunctionCategory::Scalar,
4964 }),
4965 "to_map" => Some(FunctionSignature {
4966 name: "to_map",
4967 display_name: "TO_MAP",
4968 params: PARAMS_TO_MAP,
4969 return_type: None,
4970 category: FunctionCategory::Scalar,
4971 }),
4972 "to_number" => Some(FunctionSignature {
4973 name: "to_number",
4974 display_name: "TO_NUMBER",
4975 params: PARAMS_TO_NUMBER,
4976 return_type: None,
4977 category: FunctionCategory::Scalar,
4978 }),
4979 "transform" => Some(FunctionSignature {
4980 name: "transform",
4981 display_name: "TRANSFORM",
4982 params: PARAMS_TRANSFORM,
4983 return_type: None,
4984 category: FunctionCategory::Scalar,
4985 }),
4986 "translate" => Some(FunctionSignature {
4987 name: "translate",
4988 display_name: "TRANSLATE",
4989 params: PARAMS_TRANSLATE,
4990 return_type: None,
4991 category: FunctionCategory::Scalar,
4992 }),
4993 "trim" => Some(FunctionSignature {
4994 name: "trim",
4995 display_name: "TRIM",
4996 params: PARAMS_TRIM,
4997 return_type: Some(ReturnTypeRule::Text),
4998 category: FunctionCategory::Scalar,
4999 }),
5000 "try" => Some(FunctionSignature {
5001 name: "try",
5002 display_name: "TRY",
5003 params: PARAMS_TRY,
5004 return_type: None,
5005 category: FunctionCategory::Scalar,
5006 }),
5007 "try_base64decode_binary" => Some(FunctionSignature {
5008 name: "try_base64decode_binary",
5009 display_name: "TRY_BASE64DECODE_BINARY",
5010 params: PARAMS_TRY_BASE64DECODE_BINARY,
5011 return_type: None,
5012 category: FunctionCategory::Scalar,
5013 }),
5014 "try_base64decode_string" => Some(FunctionSignature {
5015 name: "try_base64decode_string",
5016 display_name: "TRY_BASE64DECODE_STRING",
5017 params: PARAMS_TRY_BASE64DECODE_STRING,
5018 return_type: None,
5019 category: FunctionCategory::Scalar,
5020 }),
5021 "try_cast" => Some(FunctionSignature {
5022 name: "try_cast",
5023 display_name: "TRY_CAST",
5024 params: PARAMS_TRY_CAST,
5025 return_type: None,
5026 category: FunctionCategory::Scalar,
5027 }),
5028 "try_hex_decode_binary" => Some(FunctionSignature {
5029 name: "try_hex_decode_binary",
5030 display_name: "TRY_HEX_DECODE_BINARY",
5031 params: PARAMS_TRY_HEX_DECODE_BINARY,
5032 return_type: None,
5033 category: FunctionCategory::Scalar,
5034 }),
5035 "try_hex_decode_string" => Some(FunctionSignature {
5036 name: "try_hex_decode_string",
5037 display_name: "TRY_HEX_DECODE_STRING",
5038 params: PARAMS_TRY_HEX_DECODE_STRING,
5039 return_type: None,
5040 category: FunctionCategory::Scalar,
5041 }),
5042 "ts_or_di_to_di" => Some(FunctionSignature {
5043 name: "ts_or_di_to_di",
5044 display_name: "TS_OR_DI_TO_DI",
5045 params: PARAMS_TS_OR_DI_TO_DI,
5046 return_type: None,
5047 category: FunctionCategory::Scalar,
5048 }),
5049 "ts_or_ds_add" => Some(FunctionSignature {
5050 name: "ts_or_ds_add",
5051 display_name: "TS_OR_DS_ADD",
5052 params: PARAMS_TS_OR_DS_ADD,
5053 return_type: None,
5054 category: FunctionCategory::Scalar,
5055 }),
5056 "ts_or_ds_diff" => Some(FunctionSignature {
5057 name: "ts_or_ds_diff",
5058 display_name: "TS_OR_DS_DIFF",
5059 params: PARAMS_TS_OR_DS_DIFF,
5060 return_type: None,
5061 category: FunctionCategory::Scalar,
5062 }),
5063 "ts_or_ds_to_date" => Some(FunctionSignature {
5064 name: "ts_or_ds_to_date",
5065 display_name: "TS_OR_DS_TO_DATE",
5066 params: PARAMS_TS_OR_DS_TO_DATE,
5067 return_type: None,
5068 category: FunctionCategory::Scalar,
5069 }),
5070 "ts_or_ds_to_datetime" => Some(FunctionSignature {
5071 name: "ts_or_ds_to_datetime",
5072 display_name: "TS_OR_DS_TO_DATETIME",
5073 params: PARAMS_TS_OR_DS_TO_DATETIME,
5074 return_type: None,
5075 category: FunctionCategory::Scalar,
5076 }),
5077 "ts_or_ds_to_date_str" => Some(FunctionSignature {
5078 name: "ts_or_ds_to_date_str",
5079 display_name: "TS_OR_DS_TO_DATE_STR",
5080 params: PARAMS_TS_OR_DS_TO_DATE_STR,
5081 return_type: None,
5082 category: FunctionCategory::Scalar,
5083 }),
5084 "ts_or_ds_to_time" => Some(FunctionSignature {
5085 name: "ts_or_ds_to_time",
5086 display_name: "TS_OR_DS_TO_TIME",
5087 params: PARAMS_TS_OR_DS_TO_TIME,
5088 return_type: None,
5089 category: FunctionCategory::Scalar,
5090 }),
5091 "ts_or_ds_to_timestamp" => Some(FunctionSignature {
5092 name: "ts_or_ds_to_timestamp",
5093 display_name: "TS_OR_DS_TO_TIMESTAMP",
5094 params: PARAMS_TS_OR_DS_TO_TIMESTAMP,
5095 return_type: None,
5096 category: FunctionCategory::Scalar,
5097 }),
5098 "typeof" => Some(FunctionSignature {
5099 name: "typeof",
5100 display_name: "TYPEOF",
5101 params: PARAMS_TYPEOF,
5102 return_type: None,
5103 category: FunctionCategory::Scalar,
5104 }),
5105 "upper" => Some(FunctionSignature {
5106 name: "upper",
5107 display_name: "UPPER",
5108 params: PARAMS_UPPER,
5109 return_type: Some(ReturnTypeRule::Text),
5110 category: FunctionCategory::Scalar,
5111 }),
5112 "unhex" => Some(FunctionSignature {
5113 name: "unhex",
5114 display_name: "UNHEX",
5115 params: PARAMS_UNHEX,
5116 return_type: None,
5117 category: FunctionCategory::Scalar,
5118 }),
5119 "unicode" => Some(FunctionSignature {
5120 name: "unicode",
5121 display_name: "UNICODE",
5122 params: PARAMS_UNICODE,
5123 return_type: None,
5124 category: FunctionCategory::Scalar,
5125 }),
5126 "unix_date" => Some(FunctionSignature {
5127 name: "unix_date",
5128 display_name: "UNIX_DATE",
5129 params: PARAMS_UNIX_DATE,
5130 return_type: None,
5131 category: FunctionCategory::Scalar,
5132 }),
5133 "unix_micros" => Some(FunctionSignature {
5134 name: "unix_micros",
5135 display_name: "UNIX_MICROS",
5136 params: PARAMS_UNIX_MICROS,
5137 return_type: None,
5138 category: FunctionCategory::Scalar,
5139 }),
5140 "unix_millis" => Some(FunctionSignature {
5141 name: "unix_millis",
5142 display_name: "UNIX_MILLIS",
5143 params: PARAMS_UNIX_MILLIS,
5144 return_type: None,
5145 category: FunctionCategory::Scalar,
5146 }),
5147 "unix_seconds" => Some(FunctionSignature {
5148 name: "unix_seconds",
5149 display_name: "UNIX_SECONDS",
5150 params: PARAMS_UNIX_SECONDS,
5151 return_type: None,
5152 category: FunctionCategory::Scalar,
5153 }),
5154 "unix_to_str" => Some(FunctionSignature {
5155 name: "unix_to_str",
5156 display_name: "UNIX_TO_STR",
5157 params: PARAMS_UNIX_TO_STR,
5158 return_type: None,
5159 category: FunctionCategory::Scalar,
5160 }),
5161 "unix_to_time" => Some(FunctionSignature {
5162 name: "unix_to_time",
5163 display_name: "UNIX_TO_TIME",
5164 params: PARAMS_UNIX_TO_TIME,
5165 return_type: None,
5166 category: FunctionCategory::Scalar,
5167 }),
5168 "unix_to_time_str" => Some(FunctionSignature {
5169 name: "unix_to_time_str",
5170 display_name: "UNIX_TO_TIME_STR",
5171 params: PARAMS_UNIX_TO_TIME_STR,
5172 return_type: None,
5173 category: FunctionCategory::Scalar,
5174 }),
5175 "unnest" => Some(FunctionSignature {
5176 name: "unnest",
5177 display_name: "UNNEST",
5178 params: PARAMS_UNNEST,
5179 return_type: None,
5180 category: FunctionCategory::Scalar,
5181 }),
5182 "utc_date" => Some(FunctionSignature {
5183 name: "utc_date",
5184 display_name: "UTC_DATE",
5185 params: &[],
5186 return_type: None,
5187 category: FunctionCategory::Scalar,
5188 }),
5189 "utc_time" => Some(FunctionSignature {
5190 name: "utc_time",
5191 display_name: "UTC_TIME",
5192 params: PARAMS_UTC_TIME,
5193 return_type: None,
5194 category: FunctionCategory::Scalar,
5195 }),
5196 "utc_timestamp" => Some(FunctionSignature {
5197 name: "utc_timestamp",
5198 display_name: "UTC_TIMESTAMP",
5199 params: PARAMS_UTC_TIMESTAMP,
5200 return_type: None,
5201 category: FunctionCategory::Scalar,
5202 }),
5203 "variance" => Some(FunctionSignature {
5204 name: "variance",
5205 display_name: "VARIANCE",
5206 params: PARAMS_VARIANCE,
5207 return_type: None,
5208 category: FunctionCategory::Aggregate,
5209 }),
5210 "variance_pop" => Some(FunctionSignature {
5211 name: "variance_pop",
5212 display_name: "VARIANCE_POP",
5213 params: PARAMS_VARIANCE_POP,
5214 return_type: None,
5215 category: FunctionCategory::Aggregate,
5216 }),
5217 "var_map" => Some(FunctionSignature {
5218 name: "var_map",
5219 display_name: "VAR_MAP",
5220 params: PARAMS_VAR_MAP,
5221 return_type: None,
5222 category: FunctionCategory::Scalar,
5223 }),
5224 "vector_search" => Some(FunctionSignature {
5225 name: "vector_search",
5226 display_name: "VECTOR_SEARCH",
5227 params: PARAMS_VECTOR_SEARCH,
5228 return_type: None,
5229 category: FunctionCategory::Scalar,
5230 }),
5231 "week" => Some(FunctionSignature {
5232 name: "week",
5233 display_name: "WEEK",
5234 params: PARAMS_WEEK,
5235 return_type: None,
5236 category: FunctionCategory::Scalar,
5237 }),
5238 "week_of_year" => Some(FunctionSignature {
5239 name: "week_of_year",
5240 display_name: "WEEK_OF_YEAR",
5241 params: PARAMS_WEEK_OF_YEAR,
5242 return_type: None,
5243 category: FunctionCategory::Scalar,
5244 }),
5245 "width_bucket" => Some(FunctionSignature {
5246 name: "width_bucket",
5247 display_name: "WIDTH_BUCKET",
5248 params: PARAMS_WIDTH_BUCKET,
5249 return_type: None,
5250 category: FunctionCategory::Scalar,
5251 }),
5252 "xml_element" => Some(FunctionSignature {
5253 name: "xml_element",
5254 display_name: "XML_ELEMENT",
5255 params: PARAMS_XML_ELEMENT,
5256 return_type: None,
5257 category: FunctionCategory::Scalar,
5258 }),
5259 "xor" => Some(FunctionSignature {
5260 name: "xor",
5261 display_name: "XOR",
5262 params: PARAMS_XOR,
5263 return_type: None,
5264 category: FunctionCategory::Scalar,
5265 }),
5266 "xml_table" => Some(FunctionSignature {
5267 name: "xml_table",
5268 display_name: "XML_TABLE",
5269 params: PARAMS_XML_TABLE,
5270 return_type: None,
5271 category: FunctionCategory::Scalar,
5272 }),
5273 "year" => Some(FunctionSignature {
5274 name: "year",
5275 display_name: "YEAR",
5276 params: PARAMS_YEAR,
5277 return_type: None,
5278 category: FunctionCategory::Scalar,
5279 }),
5280 "year_of_week" => Some(FunctionSignature {
5281 name: "year_of_week",
5282 display_name: "YEAR_OF_WEEK",
5283 params: PARAMS_YEAR_OF_WEEK,
5284 return_type: None,
5285 category: FunctionCategory::Scalar,
5286 }),
5287 "year_of_week_iso" => Some(FunctionSignature {
5288 name: "year_of_week_iso",
5289 display_name: "YEAR_OF_WEEK_ISO",
5290 params: PARAMS_YEAR_OF_WEEK_ISO,
5291 return_type: None,
5292 category: FunctionCategory::Scalar,
5293 }),
5294 _ => None,
5295 }
5296}
5297
5298pub fn all_function_signatures() -> impl Iterator<Item = FunctionSignature> {
5303 static NAMES: &[&str] = &[
5304 "abs",
5305 "acos",
5306 "acosh",
5307 "add_months",
5308 "agg_func",
5309 "ai_agg",
5310 "ai_classify",
5311 "ai_summarize_agg",
5312 "and",
5313 "any_value",
5314 "apply",
5315 "approximate_similarity",
5316 "approx_distinct",
5317 "approx_quantile",
5318 "approx_quantiles",
5319 "approx_top_k",
5320 "approx_top_k_accumulate",
5321 "approx_top_k_combine",
5322 "approx_top_sum",
5323 "arg_max",
5324 "arg_min",
5325 "array",
5326 "array_agg",
5327 "array_all",
5328 "array_any",
5329 "array_concat",
5330 "array_concat_agg",
5331 "array_construct_compact",
5332 "array_contains",
5333 "array_contains_all",
5334 "array_filter",
5335 "array_first",
5336 "array_intersect",
5337 "array_to_string",
5338 "array_last",
5339 "array_size",
5340 "array_overlaps",
5341 "array_remove",
5342 "array_reverse",
5343 "array_slice",
5344 "array_sort",
5345 "array_sum",
5346 "array_union_agg",
5347 "array_unique_agg",
5348 "ascii",
5349 "asin",
5350 "asinh",
5351 "atan",
5352 "atan2",
5353 "atanh",
5354 "avg",
5355 "base64decode_binary",
5356 "base64decode_string",
5357 "base64encode",
5358 "bitmap_bit_position",
5359 "bitmap_bucket_number",
5360 "bitmap_construct_agg",
5361 "bitmap_count",
5362 "bitmap_or_agg",
5363 "bitwise_and_agg",
5364 "bitwise_count",
5365 "bitwise_or_agg",
5366 "bitwise_xor_agg",
5367 "bit_length",
5368 "booland",
5369 "logical_and",
5370 "boolnot",
5371 "boolor",
5372 "logical_or",
5373 "boolxor_agg",
5374 "byte_length",
5375 "case",
5376 "cast",
5377 "cast_to_str_type",
5378 "cbrt",
5379 "ceil",
5380 "chr",
5381 "length",
5382 "coalesce",
5383 "code_points_to_bytes",
5384 "code_points_to_string",
5385 "collate",
5386 "collation",
5387 "columns",
5388 "combined_agg_func",
5389 "combined_parameterized_agg",
5390 "compress",
5391 "concat",
5392 "concat_ws",
5393 "connect_by_root",
5394 "contains",
5395 "convert",
5396 "convert_timezone",
5397 "convert_to_charset",
5398 "corr",
5399 "cos",
5400 "cosh",
5401 "cosine_distance",
5402 "cot",
5403 "coth",
5404 "count",
5405 "count_if",
5406 "covar_pop",
5407 "covar_samp",
5408 "csc",
5409 "csch",
5410 "cume_dist",
5411 "current_date",
5412 "current_datetime",
5413 "current_schema",
5414 "current_time",
5415 "current_timestamp",
5416 "current_timestamp_ltz",
5417 "current_user",
5418 "date",
5419 "date_diff",
5420 "date_from_parts",
5421 "datetime",
5422 "datetime_add",
5423 "datetime_diff",
5424 "datetime_sub",
5425 "datetime_trunc",
5426 "date_add",
5427 "date_bin",
5428 "date_from_unix_date",
5429 "date_str_to_date",
5430 "date_sub",
5431 "date_to_date_str",
5432 "date_to_di",
5433 "date_trunc",
5434 "day",
5435 "day_of_month",
5436 "day_of_week",
5437 "day_of_week_iso",
5438 "day_of_year",
5439 "decode",
5440 "decode_case",
5441 "decompress_binary",
5442 "decompress_string",
5443 "degrees",
5444 "dense_rank",
5445 "di_to_date",
5446 "encode",
5447 "ends_with",
5448 "equal_null",
5449 "euclidean_distance",
5450 "exists",
5451 "exp",
5452 "explode",
5453 "explode_outer",
5454 "exploding_generate_series",
5455 "extract",
5456 "factorial",
5457 "farm_fingerprint",
5458 "features_at_time",
5459 "first",
5460 "first_value",
5461 "flatten",
5462 "float64",
5463 "floor",
5464 "format",
5465 "from_base",
5466 "from_base32",
5467 "from_base64",
5468 "from_iso8601timestamp",
5469 "gap_fill",
5470 "generate_date_array",
5471 "generate_embedding",
5472 "generate_series",
5473 "generate_timestamp_array",
5474 "uuid",
5475 "getbit",
5476 "get_extract",
5477 "greatest",
5478 "greatest_ignore_nulls",
5479 "grouping",
5480 "grouping_id",
5481 "group_concat",
5482 "hex",
5483 "hex_decode_string",
5484 "hex_encode",
5485 "hll",
5486 "hour",
5487 "if",
5488 "initcap",
5489 "inline",
5490 "stuff",
5491 "int64",
5492 "is_inf",
5493 "is_nan",
5494 "is_ascii",
5495 "is_null_value",
5496 "jarowinkler_similarity",
5497 "jsonb_contains",
5498 "jsonb_exists",
5499 "jsonb_extract",
5500 "jsonb_extract_scalar",
5501 "json_array_append",
5502 "json_array_contains",
5503 "json_array_insert",
5504 "json_extract",
5505 "json_extract_array",
5506 "json_extract_scalar",
5507 "json_format",
5508 "parse_json",
5509 "json_remove",
5510 "json_set",
5511 "json_strip_nulls",
5512 "json_type",
5513 "justify_days",
5514 "justify_hours",
5515 "justify_interval",
5516 "json_array",
5517 "json_array_agg",
5518 "json_bool",
5519 "jsonb_contains_all_top_keys",
5520 "jsonb_contains_any_top_keys",
5521 "jsonb_delete_at_path",
5522 "jsonb_object_agg",
5523 "json_cast",
5524 "json_exists",
5525 "json_keys_at_depth",
5526 "json_object",
5527 "json_object_agg",
5528 "json_table",
5529 "json_value_array",
5530 "lag",
5531 "last",
5532 "last_day",
5533 "last_value",
5534 "lax_bool",
5535 "lax_float64",
5536 "lax_int64",
5537 "lax_string",
5538 "lower",
5539 "lead",
5540 "least",
5541 "least_ignore_nulls",
5542 "left",
5543 "levenshtein",
5544 "list",
5545 "ln",
5546 "log",
5547 "lower_hex",
5548 "make_interval",
5549 "map",
5550 "map_from_entries",
5551 "match_against",
5552 "max",
5553 "md5",
5554 "md5digest",
5555 "median",
5556 "min",
5557 "minhash",
5558 "minhash_combine",
5559 "minute",
5560 "month",
5561 "monthname",
5562 "months_between",
5563 "md5number_lower64",
5564 "md5number_upper64",
5565 "ml_forecast",
5566 "ml_translate",
5567 "next_day",
5568 "next_value_for",
5569 "normalize",
5570 "now",
5571 "nth_value",
5572 "ntile",
5573 "nullif",
5574 "number_to_str",
5575 "nvl2",
5576 "object_agg",
5577 "object_insert",
5578 "open_json",
5579 "or",
5580 "overlay",
5581 "pad",
5582 "parameterized_agg",
5583 "parse_bignumeric",
5584 "parse_datetime",
5585 "parse_ip",
5586 "parse_numeric",
5587 "parse_time",
5588 "parse_url",
5589 "percentile_cont",
5590 "percentile_disc",
5591 "percent_rank",
5592 "pi",
5593 "posexplode",
5594 "posexplode_outer",
5595 "pow",
5596 "predict",
5597 "previous_day",
5598 "quantile",
5599 "quarter",
5600 "radians",
5601 "rand",
5602 "randn",
5603 "range_bucket",
5604 "range_n",
5605 "rank",
5606 "read_csv",
5607 "read_parquet",
5608 "reduce",
5609 "regexp_count",
5610 "regexp_extract",
5611 "regexp_extract_all",
5612 "regexp_full_match",
5613 "regexp_instr",
5614 "regexp_i_like",
5615 "regexp_like",
5616 "regexp_replace",
5617 "regexp_split",
5618 "regr_avgx",
5619 "regr_avgy",
5620 "regr_valx",
5621 "regr_valy",
5622 "repeat",
5623 "replace",
5624 "reverse",
5625 "right",
5626 "round",
5627 "row_number",
5628 "rtrimmed_length",
5629 "safe_add",
5630 "safe_convert_bytes_to_string",
5631 "safe_divide",
5632 "safe_multiply",
5633 "safe_negate",
5634 "safe_subtract",
5635 "search",
5636 "sec",
5637 "sech",
5638 "second",
5639 "sha",
5640 "sha2",
5641 "sign",
5642 "sin",
5643 "sinh",
5644 "skewness",
5645 "sort_array",
5646 "soundex",
5647 "soundex_p123",
5648 "space",
5649 "split",
5650 "string_to_array",
5651 "split_part",
5652 "sqrt",
5653 "standard_hash",
5654 "starts_with",
5655 "star_map",
5656 "stddev",
5657 "stddev_pop",
5658 "stddev_samp",
5659 "string",
5660 "struct",
5661 "struct_extract",
5662 "str_position",
5663 "str_to_date",
5664 "str_to_map",
5665 "str_to_time",
5666 "str_to_unix",
5667 "st_distance",
5668 "st_point",
5669 "substring",
5670 "substring_index",
5671 "sum",
5672 "sha1digest",
5673 "sha2digest",
5674 "tan",
5675 "tanh",
5676 "time",
5677 "time_from_parts",
5678 "timestamp",
5679 "timestamp_diff",
5680 "timestamp_from_parts",
5681 "timestamp_ltz_from_parts",
5682 "timestamp_tz_from_parts",
5683 "timestamp_add",
5684 "timestamp_sub",
5685 "timestamp_trunc",
5686 "time_add",
5687 "time_diff",
5688 "time_slice",
5689 "time_str_to_date",
5690 "time_str_to_time",
5691 "time_str_to_unix",
5692 "time_sub",
5693 "time_to_str",
5694 "time_to_time_str",
5695 "time_to_unix",
5696 "time_trunc",
5697 "to_array",
5698 "to_base32",
5699 "to_base64",
5700 "to_char",
5701 "to_code_points",
5702 "to_days",
5703 "to_double",
5704 "to_map",
5705 "to_number",
5706 "transform",
5707 "translate",
5708 "trim",
5709 "try",
5710 "try_base64decode_binary",
5711 "try_base64decode_string",
5712 "try_cast",
5713 "try_hex_decode_binary",
5714 "try_hex_decode_string",
5715 "ts_or_di_to_di",
5716 "ts_or_ds_add",
5717 "ts_or_ds_diff",
5718 "ts_or_ds_to_date",
5719 "ts_or_ds_to_datetime",
5720 "ts_or_ds_to_date_str",
5721 "ts_or_ds_to_time",
5722 "ts_or_ds_to_timestamp",
5723 "typeof",
5724 "upper",
5725 "unhex",
5726 "unicode",
5727 "unix_date",
5728 "unix_micros",
5729 "unix_millis",
5730 "unix_seconds",
5731 "unix_to_str",
5732 "unix_to_time",
5733 "unix_to_time_str",
5734 "unnest",
5735 "utc_date",
5736 "utc_time",
5737 "utc_timestamp",
5738 "variance",
5739 "variance_pop",
5740 "var_map",
5741 "vector_search",
5742 "week",
5743 "week_of_year",
5744 "width_bucket",
5745 "xml_element",
5746 "xor",
5747 "xml_table",
5748 "year",
5749 "year_of_week",
5750 "year_of_week_iso",
5751 ];
5752 NAMES.iter().filter_map(|name| get_function_signature(name))
5753}