polyglot-sql-function-catalogs 0.3.5

Optional dialect function catalogs for polyglot-sql semantic validation
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
use crate::{CatalogSink, FunctionNameCase, FunctionSignature};

/// Register the DuckDB function catalog.
///
/// This file is generated from duckdb_functions() metadata via
/// tools/duckdb/extract_functions.py.
pub(crate) fn register<S: CatalogSink>(catalog: &mut S) {
    let d = "duckdb";
    catalog.set_dialect_name_case(d, FunctionNameCase::Insensitive);
    catalog.register(d, "!__postfix", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "!~~", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "!~~*", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "%", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "&", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "&&", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "*", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "**", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "+",
        vec![
            FunctionSignature::variadic(0),
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
        ],
    );
    catalog.register(
        d,
        "-",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "->>", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "/", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "//", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "<->", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "<<", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "<=>", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "<@", vec![FunctionSignature::exact(2)]);
    catalog.register(d, ">>", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "@", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "@>", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "^", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "^@", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "__internal_compress_integral_ubigint",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_compress_integral_uinteger",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_compress_integral_usmallint",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_compress_integral_utinyint",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_compress_string_hugeint",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "__internal_compress_string_ubigint",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "__internal_compress_string_uhugeint",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "__internal_compress_string_uinteger",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "__internal_compress_string_usmallint",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "__internal_compress_string_utinyint",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "__internal_decompress_integral_bigint",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_decompress_integral_hugeint",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_decompress_integral_integer",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_decompress_integral_smallint",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_decompress_integral_ubigint",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_decompress_integral_uhugeint",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_decompress_integral_uinteger",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_decompress_integral_usmallint",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "__internal_decompress_string",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(d, "abs", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "acos", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "acosh", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "add",
        vec![
            FunctionSignature::variadic(0),
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
        ],
    );
    catalog.register(d, "add_parquet_key", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "age",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "aggregate", vec![FunctionSignature::variadic(2)]);
    catalog.register(d, "alias", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "all_profiling_output", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "any_value", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "apply", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "approx_count_distinct",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(d, "approx_quantile", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "approx_top_k", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "arbitrary", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "arg_max",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "arg_max_null", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "arg_min",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "arg_min_null", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "argmax",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "argmin",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "array_agg", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "array_aggr", vec![FunctionSignature::variadic(2)]);
    catalog.register(d, "array_aggregate", vec![FunctionSignature::variadic(2)]);
    catalog.register(d, "array_append", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_apply", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_cat", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "array_concat", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "array_contains", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "array_cosine_distance",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "array_cosine_similarity",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(d, "array_cross_product", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_distance", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_distinct", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "array_dot_product", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_extract", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_filter", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "array_grade_up",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
        ],
    );
    catalog.register(d, "array_has", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_has_all", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_has_any", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_indexof", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_inner_product", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_intersect", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "array_length",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "array_negative_dot_product",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "array_negative_inner_product",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(d, "array_pop_back", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "array_pop_front", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "array_position", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_prepend", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_push_back", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_push_front", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "array_reduce",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "array_resize",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "array_reverse", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "array_reverse_sort",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "array_select", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "array_slice",
        vec![FunctionSignature::exact(3), FunctionSignature::exact(4)],
    );
    catalog.register(
        d,
        "array_sort",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
        ],
    );
    catalog.register(d, "array_to_json", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "array_to_string", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "array_to_string_comma_default",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(d, "array_transform", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_unique", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "array_value", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "array_where", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "array_zip", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "arrow_scan", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "arrow_scan_dumb", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "ascii", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "asin", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "asinh", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "atan", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "atan2", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "atanh", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "avg", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "bar",
        vec![FunctionSignature::exact(3), FunctionSignature::exact(4)],
    );
    catalog.register(d, "base64", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "bin", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "bit_and", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "bit_count", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "bit_length", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "bit_or", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "bit_position", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "bit_xor", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "bitstring", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "bitstring_agg",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(3)],
    );
    catalog.register(d, "bool_and", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "bool_or", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "can_cast_implicitly", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "cardinality", vec![FunctionSignature::variadic(1)]);
    catalog.register(d, "cast_to_type", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "cbrt", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "ceil", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "ceiling", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "century", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "char_length", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "character_length", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "checkpoint",
        vec![FunctionSignature::exact(0), FunctionSignature::exact(1)],
    );
    catalog.register(d, "chr", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "col_description", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "collations", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "combine", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "concat", vec![FunctionSignature::variadic(1)]);
    catalog.register(d, "concat_ws", vec![FunctionSignature::variadic(2)]);
    catalog.register(d, "constant_or_null", vec![FunctionSignature::variadic(2)]);
    catalog.register(d, "contains", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "copy_database", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "corr", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "cos", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "cosh", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "cot", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "count",
        vec![FunctionSignature::exact(0), FunctionSignature::exact(1)],
    );
    catalog.register(d, "count_if", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "count_star", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "countif", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "covar_pop", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "covar_samp", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "create_sort_key", vec![FunctionSignature::variadic(1)]);
    catalog.register(d, "current_catalog", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "current_connection_id",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "current_database", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "current_date", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "current_localtime", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "current_localtimestamp",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "current_query", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "current_query_id", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "current_role", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "current_schema", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "current_schemas", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "current_setting", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "current_transaction_id",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "current_user", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "currval", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "damerau_levenshtein", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "database_list", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "database_size", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "date_add", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "date_diff", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "date_part", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "date_sub", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "date_trunc", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "datediff", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "datepart", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "datesub", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "datetrunc", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "day", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "dayname", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "dayofmonth", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "dayofweek", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "dayofyear", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "decade", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "decode", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "degrees", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "disable_checkpoint_on_shutdown",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "disable_logging", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "disable_object_cache", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "disable_optimizer", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "disable_print_progress_bar",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "disable_profile", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "disable_profiling", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "disable_progress_bar", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "disable_verification", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "disable_verify_external",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(
        d,
        "disable_verify_fetch_row",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(
        d,
        "disable_verify_parallelism",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(
        d,
        "disable_verify_serializer",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "divide", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "duckdb_approx_database_count",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "duckdb_columns", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "duckdb_connection_count",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "duckdb_constraints", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_databases", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_dependencies", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_extensions", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "duckdb_external_file_cache",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "duckdb_functions", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_indexes", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_keywords", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_log_contexts", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_logs", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "duckdb_logs_parsed", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "duckdb_memory", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_optimizers", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "duckdb_prepared_statements",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "duckdb_schemas", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_secret_types", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_secrets", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "duckdb_sequences", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_settings", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_table_sample", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "duckdb_tables", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "duckdb_temporary_files",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "duckdb_types", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_variables", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "duckdb_views", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "editdist3", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "element_at", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "enable_checkpoint_on_shutdown",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "enable_logging", vec![FunctionSignature::variadic(6)]);
    catalog.register(d, "enable_object_cache", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "enable_optimizer", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "enable_print_progress_bar",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "enable_profile", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "enable_profiling", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "enable_progress_bar", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "enable_verification", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "encode", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "ends_with", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "entropy", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "enum_code", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "enum_first", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "enum_last", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "enum_range", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "enum_range_boundary", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "epoch", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "epoch_ms", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "epoch_ns", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "epoch_us", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "equi_width_bins", vec![FunctionSignature::exact(4)]);
    catalog.register(d, "era", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "error", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "even", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "exp", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "extension_versions", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "factorial", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "favg", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "fdiv", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "filter", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "finalize", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "first", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "flatten", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "floor", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "fmod", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "force_checkpoint",
        vec![FunctionSignature::exact(0), FunctionSignature::exact(1)],
    );
    catalog.register(d, "format", vec![FunctionSignature::variadic(1)]);
    catalog.register(d, "format_bytes", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "format_pg_type", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "format_type", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "formatReadableDecimalSize",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(d, "formatReadableSize", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "from_base64", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "from_binary", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "from_hex", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "from_json", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "from_json_strict", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "fsum", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "functions", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "gamma", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "gcd", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "gen_random_uuid", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "generate_series",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
        ],
    );
    catalog.register(d, "generate_subscripts", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "geomean", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "geometric_mean", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "get_bit", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "get_block_size", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "get_current_time", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "get_current_timestamp",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "getvariable", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "glob", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "grade_up",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
        ],
    );
    catalog.register(d, "greatest", vec![FunctionSignature::variadic(1)]);
    catalog.register(
        d,
        "greatest_common_divisor",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "group_concat",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "hamming", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "has_any_column_privilege",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "has_column_privilege",
        vec![FunctionSignature::exact(3), FunctionSignature::exact(4)],
    );
    catalog.register(
        d,
        "has_database_privilege",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "has_foreign_data_wrapper_privilege",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "has_function_privilege",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "has_language_privilege",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "has_schema_privilege",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "has_sequence_privilege",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "has_server_privilege",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "has_table_privilege",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "has_tablespace_privilege",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "hash", vec![FunctionSignature::variadic(1)]);
    catalog.register(d, "hex", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "histogram",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
            FunctionSignature::exact(4),
        ],
    );
    catalog.register(d, "histogram_exact", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "histogram_values", vec![FunctionSignature::exact(4)]);
    catalog.register(d, "hour", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_calendar_names", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "icu_collate_af", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_am", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ar", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ar_sa", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_as", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_az", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_be", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_bg", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_bn", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_bo", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_br", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_bs", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ca", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ceb", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_chr", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_cs", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_cy", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_da", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_de", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_de_at", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_dsb", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_dz", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ee", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_el", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_en", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_en_us", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_eo", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_es", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_et", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_fa", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_fa_af", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ff", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_fi", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_fil", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_fo", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_fr", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_fr_ca", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_fy", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ga", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_gl", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_gu", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ha", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_haw", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_he", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_he_il", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_hi", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_hr", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_hsb", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_hu", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_hy", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_id", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_id_id", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ig", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_is", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_it", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ja", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ka", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_kk", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_kl", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_km", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_kn", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ko", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_kok", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ku", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ky", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_lb", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_lkt", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ln", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_lo", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_lt", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_lv", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_mk", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ml", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_mn", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_mr", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ms", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_mt", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_my", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_nb", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_nb_no", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ne", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_nl", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_nn", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_noaccent", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_om", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_or", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_pa", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_pa_in", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_pl", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ps", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_pt", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ro", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ru", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_sa", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_se", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_si", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_sk", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_sl", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_smn", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_sq", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_sr", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_sr_ba", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_sr_me", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_sr_rs", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_sv", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_sw", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ta", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_te", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_th", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_tk", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_to", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_tr", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ug", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_uk", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_ur", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_uz", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_vi", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_wae", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_wo", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_xh", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_yi", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_yo", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_yue", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_yue_cn", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_zh", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_zh_cn", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_zh_hk", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_zh_mo", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_zh_sg", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_zh_tw", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_collate_zu", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "icu_sort_key", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "ilike_escape", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "import_database", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "in_search_path", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "inet_client_addr", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "inet_client_port", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "inet_server_addr", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "inet_server_port", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "instr", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "is_histogram_other_bin",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(d, "isfinite", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "isinf", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "isnan", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "isodow", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "isoyear", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "jaccard", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "jaro_similarity",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "jaro_winkler_similarity",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "json", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "json_array", vec![FunctionSignature::variadic(0)]);
    catalog.register(
        d,
        "json_array_length",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "json_contains", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "json_deserialize_sql", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "json_each",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "json_execute_serialized_sql",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(d, "json_exists", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "json_extract", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "json_extract_path", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "json_extract_path_text",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(d, "json_extract_string", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "json_group_array", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "json_group_object", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "json_group_structure", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "json_keys",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "json_merge_patch", vec![FunctionSignature::variadic(2)]);
    catalog.register(d, "json_object", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "json_pretty", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "json_quote", vec![FunctionSignature::variadic(0)]);
    catalog.register(
        d,
        "json_serialize_plan",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
            FunctionSignature::exact(4),
            FunctionSignature::exact(5),
        ],
    );
    catalog.register(
        d,
        "json_serialize_sql",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
            FunctionSignature::exact(4),
            FunctionSignature::exact(5),
        ],
    );
    catalog.register(d, "json_structure", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "json_transform", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "json_transform_strict",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "json_tree",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "json_type",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "json_valid", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "json_value", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "julian", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "kahan_sum", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "kurtosis", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "kurtosis_pop", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "last", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "last_day", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "lcase", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "lcm", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "least", vec![FunctionSignature::variadic(1)]);
    catalog.register(
        d,
        "least_common_multiple",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(d, "left", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "left_grapheme", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "len", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "length", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "length_grapheme", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "levenshtein", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "lgamma", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "like_escape", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "list", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_aggr", vec![FunctionSignature::variadic(2)]);
    catalog.register(d, "list_aggregate", vec![FunctionSignature::variadic(2)]);
    catalog.register(d, "list_any_value", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_append", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_apply", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "list_approx_count_distinct",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(d, "list_avg", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_bit_and", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_bit_or", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_bit_xor", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_bool_and", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_bool_or", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_cat", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "list_concat", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "list_contains", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_cosine_distance", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "list_cosine_similarity",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(d, "list_count", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_distance", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_distinct", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_dot_product", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_element", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_entropy", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_extract", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_filter", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_first", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "list_grade_up",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
        ],
    );
    catalog.register(d, "list_has", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_has_all", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_has_any", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_histogram", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_indexof", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_inner_product", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_intersect", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_kurtosis", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_kurtosis_pop", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_last", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_mad", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_max", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_median", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_min", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_mode", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "list_negative_dot_product",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "list_negative_inner_product",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "list_pack",
        vec![FunctionSignature::exact(0), FunctionSignature::variadic(1)],
    );
    catalog.register(d, "list_position", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_prepend", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_product", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "list_reduce",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "list_resize",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "list_reverse", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "list_reverse_sort",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "list_select", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_sem", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_skewness", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "list_slice",
        vec![FunctionSignature::exact(3), FunctionSignature::exact(4)],
    );
    catalog.register(
        d,
        "list_sort",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
        ],
    );
    catalog.register(d, "list_stddev_pop", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_stddev_samp", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_string_agg", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_sum", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_transform", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_unique", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "list_value",
        vec![FunctionSignature::exact(0), FunctionSignature::variadic(1)],
    );
    catalog.register(d, "list_var_pop", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_var_samp", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "list_where", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "list_zip", vec![FunctionSignature::variadic(0)]);
    catalog.register(
        d,
        "listagg",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "ln", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "log",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "log10", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "log2", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "lower", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "lpad", vec![FunctionSignature::exact(3)]);
    catalog.register(
        d,
        "ltrim",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "mad", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "make_date",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(3)],
    );
    catalog.register(d, "make_time", vec![FunctionSignature::exact(3)]);
    catalog.register(
        d,
        "make_timestamp",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(6)],
    );
    catalog.register(d, "make_timestamp_ms", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "make_timestamp_ns", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "make_timestamptz",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(6),
            FunctionSignature::exact(7),
        ],
    );
    catalog.register(
        d,
        "map",
        vec![FunctionSignature::exact(0), FunctionSignature::exact(2)],
    );
    catalog.register(d, "map_concat", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "map_contains", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "map_contains_entry", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "map_contains_value", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "map_entries", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "map_extract", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "map_extract_value", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "map_from_entries", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "map_keys", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "map_to_pg_oid", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "map_values", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "max",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "max_by",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "md5", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "md5_number", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "md5_number_lower", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "md5_number_upper", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "mean", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "median", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "metadata_info", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "microsecond", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "millennium", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "millisecond", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "min",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "min_by",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "minute", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "mismatches", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "mod", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "mode", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "month", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "monthname", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "multiply", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "nanosecond", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "nextafter", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "nextval", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "nfc_normalize", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "normalized_interval", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "not_ilike_escape", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "not_like_escape", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "now", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "nullif", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "obj_description", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "octet_length", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "ord", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "pandas_scan", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "parquet_bloom_probe", vec![FunctionSignature::exact(3)]);
    catalog.register(
        d,
        "parquet_file_metadata",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(d, "parquet_kv_metadata", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "parquet_metadata", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "parquet_scan", vec![FunctionSignature::exact(15)]);
    catalog.register(d, "parquet_schema", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "parse_dirname",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "parse_dirpath",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "parse_duckdb_log_message",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "parse_filename",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
        ],
    );
    catalog.register(
        d,
        "parse_path",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "pg_collation_is_visible",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(d, "pg_conf_load_time", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "pg_conversion_is_visible",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "pg_function_is_visible",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "pg_get_constraintdef",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "pg_get_expr", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "pg_get_viewdef", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "pg_has_role",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "pg_is_other_temp_schema",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(d, "pg_my_temp_schema", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "pg_opclass_is_visible",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "pg_operator_is_visible",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "pg_opfamily_is_visible",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "pg_postmaster_start_time",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "pg_size_pretty", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "pg_table_is_visible", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "pg_timezone_names", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "pg_ts_config_is_visible",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "pg_ts_dict_is_visible",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "pg_ts_parser_is_visible",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "pg_ts_template_is_visible",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(d, "pg_type_is_visible", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "pg_typeof", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "pi", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "platform", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "position", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "pow", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "power", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "pragma_collations", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "pragma_database_size", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "pragma_metadata_info",
        vec![FunctionSignature::exact(0), FunctionSignature::exact(1)],
    );
    catalog.register(d, "pragma_platform", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "pragma_show", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "pragma_storage_info", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "pragma_table_info", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "pragma_user_agent", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "pragma_version", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "prefix", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "printf", vec![FunctionSignature::variadic(1)]);
    catalog.register(d, "product", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "python_map_function", vec![FunctionSignature::exact(3)]);
    catalog.register(
        d,
        "quantile",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "quantile_cont", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "quantile_disc",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "quarter", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "query", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "query_table",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "radians", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "random", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "range",
        vec![
            FunctionSignature::exact(1),
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
        ],
    );
    catalog.register(d, "read_blob", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "read_csv", vec![FunctionSignature::exact(46)]);
    catalog.register(d, "read_csv_auto", vec![FunctionSignature::exact(46)]);
    catalog.register(d, "read_json", vec![FunctionSignature::exact(23)]);
    catalog.register(d, "read_json_auto", vec![FunctionSignature::exact(23)]);
    catalog.register(d, "read_json_objects", vec![FunctionSignature::exact(10)]);
    catalog.register(
        d,
        "read_json_objects_auto",
        vec![FunctionSignature::exact(10)],
    );
    catalog.register(d, "read_ndjson", vec![FunctionSignature::exact(23)]);
    catalog.register(d, "read_ndjson_auto", vec![FunctionSignature::exact(23)]);
    catalog.register(d, "read_ndjson_objects", vec![FunctionSignature::exact(10)]);
    catalog.register(d, "read_parquet", vec![FunctionSignature::exact(15)]);
    catalog.register(d, "read_text", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "reduce",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "regexp_escape", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "regexp_extract",
        vec![
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
            FunctionSignature::exact(4),
        ],
    );
    catalog.register(
        d,
        "regexp_extract_all",
        vec![
            FunctionSignature::exact(2),
            FunctionSignature::exact(3),
            FunctionSignature::exact(4),
        ],
    );
    catalog.register(
        d,
        "regexp_full_match",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "regexp_matches",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "regexp_replace",
        vec![FunctionSignature::exact(3), FunctionSignature::exact(4)],
    );
    catalog.register(
        d,
        "regexp_split_to_array",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "regexp_split_to_table",
        vec![FunctionSignature::exact(2)],
    );
    catalog.register(d, "regr_avgx", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "regr_avgy", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "regr_count", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "regr_intercept", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "regr_r2", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "regr_slope", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "regr_sxx", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "regr_sxy", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "regr_syy", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "remap_struct", vec![FunctionSignature::exact(4)]);
    catalog.register(d, "repeat", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "repeat_row", vec![FunctionSignature::variadic(1)]);
    catalog.register(d, "replace", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "replace_type", vec![FunctionSignature::exact(3)]);
    catalog.register(
        d,
        "reservoir_quantile",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "reverse", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "right", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "right_grapheme", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "round",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "round_even", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "roundbankers", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "row", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "row_to_json", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "rpad", vec![FunctionSignature::exact(3)]);
    catalog.register(
        d,
        "rtrim",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "second", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "sem", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "seq_scan", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "session_user", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "set_bit", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "setseed", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "sha1", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "sha256", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "shobj_description", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "show", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "show_databases", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "show_tables", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "show_tables_expanded", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "sign", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "signbit", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "sin", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "sinh", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "skewness", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "sniff_csv", vec![FunctionSignature::exact(47)]);
    catalog.register(d, "split", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "split_part", vec![FunctionSignature::exact(3)]);
    catalog.register(d, "sqrt", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "starts_with", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "stats", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "stddev", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "stddev_pop", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "stddev_samp", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "storage_info", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "str_split", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "str_split_regex",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "strftime", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "string_agg",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "string_split", vec![FunctionSignature::exact(2)]);
    catalog.register(
        d,
        "string_split_regex",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "string_to_array", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "strip_accents", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "strlen", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "strpos", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "strptime", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "struct_concat", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "struct_contains", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "struct_extract", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "struct_extract_at", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "struct_has", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "struct_indexof", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "struct_insert", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "struct_pack", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "struct_position", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "struct_update", vec![FunctionSignature::variadic(0)]);
    catalog.register(
        d,
        "substr",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "substring",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "substring_grapheme",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "subtract",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "suffix", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "sum", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "sum_no_overflow", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "sumkahan", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "summary", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "table_info", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "tan", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "tanh", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "test_all_types", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "test_vector_types", vec![FunctionSignature::variadic(2)]);
    catalog.register(
        d,
        "time_bucket",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(
        d,
        "timetz_byte_comparable",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(
        d,
        "timezone",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "timezone_hour", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "timezone_minute", vec![FunctionSignature::exact(1)]);
    catalog.register(
        d,
        "to_base",
        vec![FunctionSignature::exact(2), FunctionSignature::exact(3)],
    );
    catalog.register(d, "to_base64", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_binary", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_centuries", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_days", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_decades", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_hex", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_hours", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_json", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "to_microseconds", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_millennia", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_milliseconds", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_minutes", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_months", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_quarters", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_seconds", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_timestamp", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_weeks", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "to_years", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "today", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "transaction_timestamp",
        vec![FunctionSignature::exact(0)],
    );
    catalog.register(d, "translate", vec![FunctionSignature::exact(3)]);
    catalog.register(
        d,
        "trim",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(
        d,
        "trunc",
        vec![FunctionSignature::exact(1), FunctionSignature::exact(2)],
    );
    catalog.register(d, "truncate_duckdb_logs", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "try_strptime", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "txid_current", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "typeof", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "ucase", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "unbin", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "unhex", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "unicode", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "union_extract", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "union_tag", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "union_value", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "unnest", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "unpivot_list", vec![FunctionSignature::variadic(0)]);
    catalog.register(d, "upper", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "url_decode", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "url_encode", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "user", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "user_agent", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "uuid", vec![FunctionSignature::exact(0)]);
    catalog.register(
        d,
        "uuid_extract_timestamp",
        vec![FunctionSignature::exact(1)],
    );
    catalog.register(d, "uuid_extract_version", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "uuidv4", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "uuidv7", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "var_pop", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "var_samp", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "variance", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "variant_extract", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "variant_typeof", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "vector_type", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "verify_external", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "verify_fetch_row", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "verify_parallelism", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "verify_serializer", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "version", vec![FunctionSignature::exact(0)]);
    catalog.register(d, "wavg", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "week", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "weekday", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "weekofyear", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "weighted_avg", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "which_secret", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "write_log", vec![FunctionSignature::variadic(1)]);
    catalog.register(d, "xor", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "year", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "yearweek", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "|", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "||", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "~", vec![FunctionSignature::exact(1)]);
    catalog.register(d, "~~", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "~~*", vec![FunctionSignature::exact(2)]);
    catalog.register(d, "~~~", vec![FunctionSignature::exact(2)]);
}