duckdb 0.7.2-dev2740.0 → 0.7.2-dev2867.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/binding.gyp +21 -13
  2. package/package.json +1 -1
  3. package/src/duckdb/extension/icu/icu-datepart.cpp +51 -1
  4. package/src/duckdb/extension/icu/icu-strptime.cpp +1 -1
  5. package/src/duckdb/extension/json/include/json_functions.hpp +35 -37
  6. package/src/duckdb/extension/json/include/json_scan.hpp +1 -1
  7. package/src/duckdb/extension/json/include/json_transform.hpp +1 -1
  8. package/src/duckdb/extension/json/json-extension.cpp +10 -20
  9. package/src/duckdb/extension/json/json_functions/copy_json.cpp +2 -2
  10. package/src/duckdb/extension/json/json_functions/json_array_length.cpp +2 -3
  11. package/src/duckdb/extension/json/json_functions/json_contains.cpp +2 -2
  12. package/src/duckdb/extension/json/json_functions/json_create.cpp +20 -20
  13. package/src/duckdb/extension/json/json_functions/json_extract.cpp +4 -6
  14. package/src/duckdb/extension/json/json_functions/json_keys.cpp +2 -3
  15. package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +2 -2
  16. package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +8 -8
  17. package/src/duckdb/extension/json/json_functions/json_structure.cpp +2 -2
  18. package/src/duckdb/extension/json/json_functions/json_transform.cpp +4 -4
  19. package/src/duckdb/extension/json/json_functions/json_type.cpp +2 -3
  20. package/src/duckdb/extension/json/json_functions/json_valid.cpp +2 -2
  21. package/src/duckdb/extension/json/json_functions/read_json.cpp +6 -6
  22. package/src/duckdb/extension/json/json_functions/read_json_objects.cpp +4 -4
  23. package/src/duckdb/extension/json/json_functions.cpp +6 -6
  24. package/src/duckdb/extension/parquet/parquet-extension.cpp +16 -28
  25. package/src/duckdb/src/catalog/catalog_entry/pragma_function_catalog_entry.cpp +1 -2
  26. package/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp +1 -1
  27. package/src/duckdb/src/catalog/catalog_entry/scalar_macro_catalog_entry.cpp +2 -2
  28. package/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp +1 -2
  29. package/src/duckdb/src/catalog/catalog_transaction.cpp +4 -0
  30. package/src/duckdb/src/catalog/duck_catalog.cpp +8 -1
  31. package/src/duckdb/src/common/enums/date_part_specifier.cpp +82 -0
  32. package/src/duckdb/src/common/local_file_system.cpp +1 -3
  33. package/src/duckdb/src/common/multi_file_reader.cpp +11 -8
  34. package/src/duckdb/src/common/types/vector.cpp +136 -3
  35. package/src/duckdb/src/{function → core_functions}/aggregate/algebraic/avg.cpp +9 -12
  36. package/src/duckdb/src/core_functions/aggregate/algebraic/corr.cpp +13 -0
  37. package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +21 -0
  38. package/src/duckdb/src/core_functions/aggregate/algebraic/stddev.cpp +34 -0
  39. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/approx_count.cpp +3 -3
  40. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/arg_min_max.cpp +7 -23
  41. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bitagg.cpp +10 -10
  42. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bitstring_agg.cpp +4 -4
  43. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bool.cpp +1 -17
  44. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/entropy.cpp +5 -4
  45. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/kurtosis.cpp +5 -6
  46. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/minmax.cpp +5 -5
  47. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/product.cpp +2 -11
  48. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/skew.cpp +5 -6
  49. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/string_agg.cpp +4 -6
  50. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/sum.cpp +38 -46
  51. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/approximate_quantile.cpp +4 -5
  52. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/mode.cpp +4 -5
  53. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/quantile.cpp +31 -23
  54. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/reservoir_quantile.cpp +4 -5
  55. package/src/duckdb/src/{function → core_functions}/aggregate/nested/histogram.cpp +4 -4
  56. package/src/duckdb/src/{function → core_functions}/aggregate/nested/list.cpp +6 -10
  57. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_avg.cpp +7 -11
  58. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_count.cpp +4 -4
  59. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_intercept.cpp +5 -8
  60. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_r2.cpp +5 -7
  61. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_slope.cpp +5 -7
  62. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_sxx_syy.cpp +8 -12
  63. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_sxy.cpp +6 -8
  64. package/src/duckdb/src/core_functions/core_functions.cpp +50 -0
  65. package/src/duckdb/src/core_functions/function_list.cpp +352 -0
  66. package/src/duckdb/src/{function → core_functions}/scalar/bit/bitstring.cpp +12 -15
  67. package/src/duckdb/src/{function → core_functions}/scalar/blob/base64.cpp +6 -6
  68. package/src/duckdb/src/{function → core_functions}/scalar/blob/encode.cpp +7 -6
  69. package/src/duckdb/src/{function → core_functions}/scalar/date/age.cpp +3 -3
  70. package/src/duckdb/src/{function → core_functions}/scalar/date/current.cpp +8 -8
  71. package/src/duckdb/src/{function → core_functions}/scalar/date/date_diff.cpp +3 -6
  72. package/src/duckdb/src/{function → core_functions}/scalar/date/date_part.cpp +144 -148
  73. package/src/duckdb/src/{function → core_functions}/scalar/date/date_sub.cpp +3 -6
  74. package/src/duckdb/src/{function → core_functions}/scalar/date/date_trunc.cpp +3 -6
  75. package/src/duckdb/src/{function → core_functions}/scalar/date/epoch.cpp +7 -8
  76. package/src/duckdb/src/{function → core_functions}/scalar/date/make_date.cpp +14 -14
  77. package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +251 -0
  78. package/src/duckdb/src/{function → core_functions}/scalar/date/time_bucket.cpp +4 -5
  79. package/src/duckdb/src/{function → core_functions}/scalar/date/to_interval.cpp +39 -19
  80. package/src/duckdb/src/{function/scalar/enum/enum_functions_implementation.cpp → core_functions/scalar/enum/enum_functions.cpp} +18 -22
  81. package/src/duckdb/src/{function → core_functions}/scalar/generic/alias.cpp +4 -4
  82. package/src/duckdb/src/{function → core_functions}/scalar/generic/current_setting.cpp +4 -5
  83. package/src/duckdb/src/{function → core_functions}/scalar/generic/error.cpp +4 -4
  84. package/src/duckdb/src/{function → core_functions}/scalar/generic/hash.cpp +4 -4
  85. package/src/duckdb/src/{function → core_functions}/scalar/generic/least.cpp +8 -9
  86. package/src/duckdb/src/{function → core_functions}/scalar/generic/stats.cpp +4 -4
  87. package/src/duckdb/src/{function/scalar/system → core_functions/scalar/generic}/system_functions.cpp +24 -13
  88. package/src/duckdb/src/{function → core_functions}/scalar/generic/typeof.cpp +4 -4
  89. package/src/duckdb/src/{function → core_functions}/scalar/list/array_slice.cpp +3 -13
  90. package/src/duckdb/src/{function → core_functions}/scalar/list/flatten.cpp +5 -5
  91. package/src/duckdb/src/{function → core_functions}/scalar/list/list_aggregates.cpp +2 -13
  92. package/src/duckdb/src/{function → core_functions}/scalar/list/list_lambdas.cpp +9 -24
  93. package/src/duckdb/src/{function → core_functions}/scalar/list/list_sort.cpp +8 -22
  94. package/src/duckdb/src/{function → core_functions}/scalar/list/list_value.cpp +4 -5
  95. package/src/duckdb/src/{function → core_functions}/scalar/list/range.cpp +8 -6
  96. package/src/duckdb/src/{function → core_functions}/scalar/map/cardinality.cpp +5 -4
  97. package/src/duckdb/src/{function → core_functions}/scalar/map/map.cpp +6 -63
  98. package/src/duckdb/src/{function → core_functions}/scalar/map/map_entries.cpp +5 -4
  99. package/src/duckdb/src/{function → core_functions}/scalar/map/map_extract.cpp +22 -7
  100. package/src/duckdb/src/{function → core_functions}/scalar/map/map_from_entries.cpp +6 -5
  101. package/src/duckdb/src/{function → core_functions}/scalar/map/map_keys_values.cpp +8 -7
  102. package/src/duckdb/src/{function → core_functions}/scalar/math/numeric.cpp +110 -138
  103. package/src/duckdb/src/{function → core_functions}/scalar/operators/bitwise.cpp +19 -20
  104. package/src/duckdb/src/{function/scalar/math → core_functions/scalar/random}/random.cpp +5 -6
  105. package/src/duckdb/src/{function/scalar/math → core_functions/scalar/random}/setseed.cpp +3 -3
  106. package/src/duckdb/src/{function → core_functions}/scalar/string/ascii.cpp +4 -5
  107. package/src/duckdb/src/{function → core_functions}/scalar/string/bar.cpp +4 -4
  108. package/src/duckdb/src/{function → core_functions}/scalar/string/chr.cpp +5 -6
  109. package/src/duckdb/src/{function → core_functions}/scalar/string/damerau_levenshtein.cpp +4 -6
  110. package/src/duckdb/src/{function/scalar/string/mismatches.cpp → core_functions/scalar/string/hamming.cpp} +3 -12
  111. package/src/duckdb/src/{function → core_functions}/scalar/string/hex.cpp +15 -25
  112. package/src/duckdb/src/{function → core_functions}/scalar/string/instr.cpp +6 -13
  113. package/src/duckdb/src/{function → core_functions}/scalar/string/jaccard.cpp +3 -6
  114. package/src/duckdb/src/{function → core_functions}/scalar/string/jaro_winkler.cpp +7 -6
  115. package/src/duckdb/src/{function → core_functions}/scalar/string/left_right.cpp +18 -11
  116. package/src/duckdb/src/{function → core_functions}/scalar/string/levenshtein.cpp +3 -12
  117. package/src/duckdb/src/{function → core_functions}/scalar/string/md5.cpp +15 -21
  118. package/src/duckdb/src/{function → core_functions}/scalar/string/pad.cpp +7 -13
  119. package/src/duckdb/src/{function → core_functions}/scalar/string/printf.cpp +10 -10
  120. package/src/duckdb/src/{function → core_functions}/scalar/string/repeat.cpp +3 -6
  121. package/src/duckdb/src/{function → core_functions}/scalar/string/replace.cpp +4 -7
  122. package/src/duckdb/src/{function → core_functions}/scalar/string/reverse.cpp +3 -3
  123. package/src/duckdb/src/{function → core_functions}/scalar/string/starts_with.cpp +4 -8
  124. package/src/duckdb/src/{function → core_functions}/scalar/string/string_split.cpp +11 -11
  125. package/src/duckdb/src/{function → core_functions}/scalar/string/translate.cpp +4 -7
  126. package/src/duckdb/src/{function → core_functions}/scalar/string/trim.cpp +19 -14
  127. package/src/duckdb/src/core_functions/scalar/string/unicode.cpp +28 -0
  128. package/src/duckdb/src/{function → core_functions}/scalar/struct/struct_insert.cpp +4 -4
  129. package/src/duckdb/src/{function → core_functions}/scalar/struct/struct_pack.cpp +3 -4
  130. package/src/duckdb/src/{function → core_functions}/scalar/union/union_extract.cpp +4 -8
  131. package/src/duckdb/src/{function → core_functions}/scalar/union/union_tag.cpp +4 -8
  132. package/src/duckdb/src/{function → core_functions}/scalar/union/union_value.cpp +4 -59
  133. package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +1 -1
  134. package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +1 -1
  135. package/src/duckdb/src/execution/operator/persistent/parallel_csv_reader.cpp +1 -1
  136. package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +11 -2
  137. package/src/duckdb/src/function/aggregate/distributive_functions.cpp +0 -17
  138. package/src/duckdb/src/function/cast/string_cast.cpp +1 -1
  139. package/src/duckdb/src/function/function.cpp +0 -8
  140. package/src/duckdb/src/function/function_set.cpp +25 -0
  141. package/src/duckdb/src/function/scalar/generic_functions.cpp +1 -9
  142. package/src/duckdb/src/function/scalar/nested_functions.cpp +0 -22
  143. package/src/duckdb/src/function/scalar/operators.cpp +0 -6
  144. package/src/duckdb/src/function/scalar/{date/strftime.cpp → strftime_format.cpp} +1 -249
  145. package/src/duckdb/src/function/scalar/string/length.cpp +0 -19
  146. package/src/duckdb/src/function/scalar/string_functions.cpp +0 -40
  147. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +5 -0
  148. package/src/duckdb/src/function/table/arrow_conversion.cpp +1 -1
  149. package/src/duckdb/src/function/table/read_csv.cpp +7 -4
  150. package/src/duckdb/src/function/table/system/duckdb_functions.cpp +27 -40
  151. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  152. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp +3 -3
  153. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/function_entry.hpp +33 -0
  154. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/macro_catalog_entry.hpp +2 -2
  155. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp +2 -2
  156. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp +2 -2
  157. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +2 -2
  158. package/src/duckdb/src/include/duckdb/catalog/catalog_transaction.hpp +2 -0
  159. package/src/duckdb/src/include/duckdb/common/algorithm.hpp +1 -0
  160. package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +5 -4
  161. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +11 -1
  162. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/corr.hpp +3 -4
  163. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/covar.hpp +1 -1
  164. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/stddev.hpp +1 -1
  165. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic_functions.hpp +124 -0
  166. package/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp +229 -0
  167. package/src/duckdb/src/include/duckdb/core_functions/aggregate/holistic_functions.hpp +85 -0
  168. package/src/duckdb/src/include/duckdb/core_functions/aggregate/nested_functions.hpp +41 -0
  169. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/regression/regr_count.hpp +3 -4
  170. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/regression/regr_slope.hpp +2 -2
  171. package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression_functions.hpp +97 -0
  172. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/sum_helpers.hpp +1 -1
  173. package/src/duckdb/src/include/duckdb/{function/scalar/uuid_functions.hpp → core_functions/core_functions.hpp} +7 -5
  174. package/src/duckdb/src/include/duckdb/core_functions/function_list.hpp +33 -0
  175. package/src/duckdb/src/include/duckdb/core_functions/scalar/bit_functions.hpp +52 -0
  176. package/src/duckdb/src/include/duckdb/core_functions/scalar/blob_functions.hpp +58 -0
  177. package/src/duckdb/src/include/duckdb/core_functions/scalar/date_functions.hpp +544 -0
  178. package/src/duckdb/src/include/duckdb/core_functions/scalar/enum_functions.hpp +61 -0
  179. package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +142 -0
  180. package/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp +220 -0
  181. package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +85 -0
  182. package/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp +394 -0
  183. package/src/duckdb/src/include/duckdb/core_functions/scalar/operators_functions.hpp +70 -0
  184. package/src/duckdb/src/include/duckdb/core_functions/scalar/random_functions.hpp +49 -0
  185. package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +439 -0
  186. package/src/duckdb/src/include/duckdb/core_functions/scalar/struct_functions.hpp +40 -0
  187. package/src/duckdb/src/include/duckdb/core_functions/scalar/union_functions.hpp +43 -0
  188. package/src/duckdb/src/include/duckdb/execution/operator/persistent/base_csv_reader.hpp +1 -1
  189. package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_reader_options.hpp +1 -1
  190. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_type.hpp +4 -0
  191. package/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp +0 -85
  192. package/src/duckdb/src/include/duckdb/function/built_in_functions.hpp +0 -8
  193. package/src/duckdb/src/include/duckdb/function/function_set.hpp +7 -2
  194. package/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp +1 -36
  195. package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +0 -120
  196. package/src/duckdb/src/include/duckdb/function/scalar/operators.hpp +0 -24
  197. package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +1 -97
  198. package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +1 -1
  199. package/src/duckdb/src/include/duckdb/main/database.hpp +1 -0
  200. package/src/duckdb/src/include/duckdb/main/database_manager.hpp +3 -0
  201. package/src/duckdb/src/include/duckdb/main/extension_helper.hpp +0 -2
  202. package/src/duckdb/src/include/duckdb/main/extension_util.hpp +48 -0
  203. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +6 -0
  204. package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +3 -0
  205. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +5 -1
  206. package/src/duckdb/src/main/attached_database.cpp +5 -3
  207. package/src/duckdb/src/main/database.cpp +34 -37
  208. package/src/duckdb/src/main/extension/extension_helper.cpp +1 -0
  209. package/src/duckdb/src/main/extension/extension_load.cpp +61 -38
  210. package/src/duckdb/src/main/extension/extension_util.cpp +90 -0
  211. package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +1 -4
  212. package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +2 -4
  213. package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +43 -24
  214. package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +3 -0
  215. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +17 -28
  216. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +6 -7
  217. package/src/duckdb/third_party/fmt/format.cc +0 -5
  218. package/src/duckdb/third_party/fmt/include/fmt/core.h +10 -12
  219. package/src/duckdb/third_party/fmt/include/fmt/format-inl.h +2 -33
  220. package/src/duckdb/third_party/fmt/include/fmt/format.h +61 -24
  221. package/src/duckdb/third_party/fmt/include/fmt/printf.h +15 -1
  222. package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +1 -0
  223. package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +10735 -10674
  224. package/src/duckdb/ub_src_common_enums.cpp +2 -0
  225. package/src/duckdb/ub_src_core_functions.cpp +4 -0
  226. package/src/duckdb/ub_src_core_functions_aggregate_algebraic.cpp +8 -0
  227. package/src/duckdb/ub_src_core_functions_aggregate_distributive.cpp +24 -0
  228. package/src/duckdb/ub_src_core_functions_aggregate_holistic.cpp +8 -0
  229. package/src/duckdb/ub_src_core_functions_aggregate_nested.cpp +4 -0
  230. package/src/duckdb/ub_src_core_functions_aggregate_regression.cpp +14 -0
  231. package/src/duckdb/ub_src_core_functions_scalar_bit.cpp +2 -0
  232. package/src/duckdb/ub_src_core_functions_scalar_blob.cpp +4 -0
  233. package/src/duckdb/ub_src_core_functions_scalar_date.cpp +22 -0
  234. package/src/duckdb/ub_src_core_functions_scalar_enum.cpp +2 -0
  235. package/src/duckdb/ub_src_core_functions_scalar_generic.cpp +16 -0
  236. package/src/duckdb/ub_src_core_functions_scalar_list.cpp +14 -0
  237. package/src/duckdb/ub_src_core_functions_scalar_map.cpp +12 -0
  238. package/src/duckdb/ub_src_core_functions_scalar_math.cpp +2 -0
  239. package/src/duckdb/ub_src_core_functions_scalar_operators.cpp +2 -0
  240. package/src/duckdb/ub_src_core_functions_scalar_random.cpp +4 -0
  241. package/src/duckdb/ub_src_core_functions_scalar_string.cpp +44 -0
  242. package/src/duckdb/ub_src_core_functions_scalar_struct.cpp +4 -0
  243. package/src/duckdb/ub_src_core_functions_scalar_union.cpp +6 -0
  244. package/src/duckdb/ub_src_function_aggregate.cpp +0 -8
  245. package/src/duckdb/ub_src_function_aggregate_distributive.cpp +0 -24
  246. package/src/duckdb/ub_src_function_scalar.cpp +2 -8
  247. package/src/duckdb/ub_src_function_scalar_generic.cpp +0 -14
  248. package/src/duckdb/ub_src_function_scalar_list.cpp +0 -14
  249. package/src/duckdb/ub_src_function_scalar_operators.cpp +0 -2
  250. package/src/duckdb/ub_src_function_scalar_string.cpp +0 -42
  251. package/src/duckdb/ub_src_function_scalar_struct.cpp +0 -4
  252. package/src/duckdb/ub_src_function_scalar_system.cpp +0 -2
  253. package/src/duckdb/ub_src_main_extension.cpp +2 -0
  254. package/src/duckdb/src/function/aggregate/algebraic/corr.cpp +0 -14
  255. package/src/duckdb/src/function/aggregate/algebraic/covar.cpp +0 -25
  256. package/src/duckdb/src/function/aggregate/algebraic/stddev.cpp +0 -54
  257. package/src/duckdb/src/function/aggregate/algebraic_functions.cpp +0 -21
  258. package/src/duckdb/src/function/aggregate/holistic_functions.cpp +0 -12
  259. package/src/duckdb/src/function/aggregate/nested_functions.cpp +0 -10
  260. package/src/duckdb/src/function/aggregate/regression_functions.cpp +0 -21
  261. package/src/duckdb/src/function/scalar/date_functions.cpp +0 -22
  262. package/src/duckdb/src/function/scalar/enum_functions.cpp +0 -13
  263. package/src/duckdb/src/function/scalar/math_functions.cpp +0 -50
  264. package/src/duckdb/src/function/scalar/trigonometrics_functions.cpp +0 -18
  265. package/src/duckdb/src/include/duckdb/function/aggregate/algebraic_functions.hpp +0 -56
  266. package/src/duckdb/src/include/duckdb/function/aggregate/holistic_functions.hpp +0 -33
  267. package/src/duckdb/src/include/duckdb/function/aggregate/nested_functions.hpp +0 -26
  268. package/src/duckdb/src/include/duckdb/function/aggregate/regression_functions.hpp +0 -53
  269. package/src/duckdb/src/include/duckdb/function/scalar/bit_functions.hpp +0 -32
  270. package/src/duckdb/src/include/duckdb/function/scalar/blob_functions.hpp +0 -24
  271. package/src/duckdb/src/include/duckdb/function/scalar/date_functions.hpp +0 -73
  272. package/src/duckdb/src/include/duckdb/function/scalar/enum_functions.hpp +0 -37
  273. package/src/duckdb/src/include/duckdb/function/scalar/math_functions.hpp +0 -137
  274. package/src/duckdb/src/include/duckdb/function/scalar/trigonometric_functions.hpp +0 -49
  275. package/src/duckdb/ub_src_function_aggregate_algebraic.cpp +0 -8
  276. package/src/duckdb/ub_src_function_aggregate_holistic.cpp +0 -8
  277. package/src/duckdb/ub_src_function_aggregate_nested.cpp +0 -4
  278. package/src/duckdb/ub_src_function_aggregate_regression.cpp +0 -14
  279. package/src/duckdb/ub_src_function_scalar_bit.cpp +0 -2
  280. package/src/duckdb/ub_src_function_scalar_blob.cpp +0 -4
  281. package/src/duckdb/ub_src_function_scalar_date.cpp +0 -22
  282. package/src/duckdb/ub_src_function_scalar_enum.cpp +0 -2
  283. package/src/duckdb/ub_src_function_scalar_map.cpp +0 -12
  284. package/src/duckdb/ub_src_function_scalar_math.cpp +0 -6
  285. package/src/duckdb/ub_src_function_scalar_union.cpp +0 -6
  286. /package/src/duckdb/src/include/duckdb/function/scalar/{strftime.hpp → strftime_format.hpp} +0 -0
@@ -1,6 +1,5 @@
1
- #include "duckdb/function/scalar/math_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/math_functions.hpp"
2
2
  #include "duckdb/common/vector_operations/vector_operations.hpp"
3
- #include "duckdb/function/scalar/trigonometric_functions.hpp"
4
3
  #include "duckdb/common/operator/abs.hpp"
5
4
  #include "duckdb/common/operator/multiply.hpp"
6
5
  #include "duckdb/common/types/hugeint.hpp"
@@ -59,14 +58,14 @@ struct NextAfterOperator {
59
58
  }
60
59
  };
61
60
 
62
- void NextAfterFun::RegisterFunction(BuiltinFunctions &set) {
63
- ScalarFunctionSet next_after_fun("nextafter");
61
+ ScalarFunctionSet NextAfterFun::GetFunctions() {
62
+ ScalarFunctionSet next_after_fun;
64
63
  next_after_fun.AddFunction(
65
- ScalarFunction("nextafter", {LogicalType::DOUBLE, LogicalType::DOUBLE}, LogicalType::DOUBLE,
64
+ ScalarFunction({LogicalType::DOUBLE, LogicalType::DOUBLE}, LogicalType::DOUBLE,
66
65
  ScalarFunction::BinaryFunction<double, double, double, NextAfterOperator>));
67
- next_after_fun.AddFunction(ScalarFunction("nextafter", {LogicalType::FLOAT, LogicalType::FLOAT}, LogicalType::FLOAT,
66
+ next_after_fun.AddFunction(ScalarFunction({LogicalType::FLOAT, LogicalType::FLOAT}, LogicalType::FLOAT,
68
67
  ScalarFunction::BinaryFunction<float, float, float, NextAfterOperator>));
69
- set.AddFunction(next_after_fun);
68
+ return next_after_fun;
70
69
  }
71
70
 
72
71
  //===--------------------------------------------------------------------===//
@@ -158,8 +157,8 @@ unique_ptr<FunctionData> DecimalUnaryOpBind(ClientContext &context, ScalarFuncti
158
157
  return nullptr;
159
158
  }
160
159
 
161
- void AbsFun::RegisterFunction(BuiltinFunctions &set) {
162
- ScalarFunctionSet abs("abs");
160
+ ScalarFunctionSet AbsOperatorFun::GetFunctions() {
161
+ ScalarFunctionSet abs;
163
162
  for (auto &type : LogicalType::Numeric()) {
164
163
  switch (type.id()) {
165
164
  case LogicalTypeId::DECIMAL:
@@ -185,9 +184,7 @@ void AbsFun::RegisterFunction(BuiltinFunctions &set) {
185
184
  break;
186
185
  }
187
186
  }
188
- set.AddFunction(abs);
189
- abs.name = "@";
190
- set.AddFunction(abs);
187
+ return abs;
191
188
  }
192
189
 
193
190
  //===--------------------------------------------------------------------===//
@@ -229,8 +226,8 @@ struct BitStringBitCntOperator {
229
226
  }
230
227
  };
231
228
 
232
- void BitCountFun::RegisterFunction(BuiltinFunctions &set) {
233
- ScalarFunctionSet functions("bit_count");
229
+ ScalarFunctionSet BitCountFun::GetFunctions() {
230
+ ScalarFunctionSet functions;
234
231
  functions.AddFunction(ScalarFunction({LogicalType::TINYINT}, LogicalType::TINYINT,
235
232
  ScalarFunction::UnaryFunction<int8_t, int8_t, BitCntOperator>));
236
233
  functions.AddFunction(ScalarFunction({LogicalType::SMALLINT}, LogicalType::TINYINT,
@@ -243,7 +240,7 @@ void BitCountFun::RegisterFunction(BuiltinFunctions &set) {
243
240
  ScalarFunction::UnaryFunction<hugeint_t, int8_t, HugeIntBitCntOperator>));
244
241
  functions.AddFunction(ScalarFunction({LogicalType::BIT}, LogicalType::BIGINT,
245
242
  ScalarFunction::UnaryFunction<string_t, idx_t, BitStringBitCntOperator>));
246
- set.AddFunction(functions);
243
+ return functions;
247
244
  }
248
245
 
249
246
  //===--------------------------------------------------------------------===//
@@ -284,8 +281,8 @@ int8_t SignOperator::Operation(double input) {
284
281
  }
285
282
  }
286
283
 
287
- void SignFun::RegisterFunction(BuiltinFunctions &set) {
288
- ScalarFunctionSet sign("sign");
284
+ ScalarFunctionSet SignFun::GetFunctions() {
285
+ ScalarFunctionSet sign;
289
286
  for (auto &type : LogicalType::Numeric()) {
290
287
  if (type.id() == LogicalTypeId::DECIMAL) {
291
288
  continue;
@@ -295,7 +292,7 @@ void SignFun::RegisterFunction(BuiltinFunctions &set) {
295
292
  ScalarFunction::GetScalarUnaryFunctionFixedReturn<int8_t, SignOperator>(type)));
296
293
  }
297
294
  }
298
- set.AddFunction(sign);
295
+ return sign;
299
296
  }
300
297
 
301
298
  //===--------------------------------------------------------------------===//
@@ -360,8 +357,8 @@ struct CeilDecimalOperator {
360
357
  }
361
358
  };
362
359
 
363
- void CeilFun::RegisterFunction(BuiltinFunctions &set) {
364
- ScalarFunctionSet ceil("ceil");
360
+ ScalarFunctionSet CeilFun::GetFunctions() {
361
+ ScalarFunctionSet ceil;
365
362
  for (auto &type : LogicalType::Numeric()) {
366
363
  scalar_function_t func = nullptr;
367
364
  bind_scalar_function_t bind_func = nullptr;
@@ -384,10 +381,7 @@ void CeilFun::RegisterFunction(BuiltinFunctions &set) {
384
381
  }
385
382
  ceil.AddFunction(ScalarFunction({type}, type, func, bind_func));
386
383
  }
387
-
388
- set.AddFunction(ceil);
389
- ceil.name = "ceiling";
390
- set.AddFunction(ceil);
384
+ return ceil;
391
385
  }
392
386
 
393
387
  //===--------------------------------------------------------------------===//
@@ -416,8 +410,8 @@ struct FloorDecimalOperator {
416
410
  }
417
411
  };
418
412
 
419
- void FloorFun::RegisterFunction(BuiltinFunctions &set) {
420
- ScalarFunctionSet floor("floor");
413
+ ScalarFunctionSet FloorFun::GetFunctions() {
414
+ ScalarFunctionSet floor;
421
415
  for (auto &type : LogicalType::Numeric()) {
422
416
  scalar_function_t func = nullptr;
423
417
  bind_scalar_function_t bind_func = nullptr;
@@ -440,7 +434,7 @@ void FloorFun::RegisterFunction(BuiltinFunctions &set) {
440
434
  }
441
435
  floor.AddFunction(ScalarFunction({type}, type, func, bind_func));
442
436
  }
443
- set.AddFunction(floor);
437
+ return floor;
444
438
  }
445
439
 
446
440
  //===--------------------------------------------------------------------===//
@@ -465,8 +459,8 @@ struct TruncDecimalOperator {
465
459
  }
466
460
  };
467
461
 
468
- void TruncFun::RegisterFunction(BuiltinFunctions &set) {
469
- ScalarFunctionSet floor("trunc");
462
+ ScalarFunctionSet TruncFun::GetFunctions() {
463
+ ScalarFunctionSet trunc;
470
464
  for (auto &type : LogicalType::Numeric()) {
471
465
  scalar_function_t func = nullptr;
472
466
  bind_scalar_function_t bind_func = nullptr;
@@ -495,9 +489,9 @@ void TruncFun::RegisterFunction(BuiltinFunctions &set) {
495
489
  default:
496
490
  throw InternalException("Unimplemented numeric type for function \"trunc\"");
497
491
  }
498
- floor.AddFunction(ScalarFunction({type}, type, func, bind_func));
492
+ trunc.AddFunction(ScalarFunction({type}, type, func, bind_func));
499
493
  }
500
- set.AddFunction(floor);
494
+ return trunc;
501
495
  }
502
496
 
503
497
  //===--------------------------------------------------------------------===//
@@ -683,8 +677,8 @@ unique_ptr<FunctionData> BindDecimalRoundPrecision(ClientContext &context, Scala
683
677
  return make_uniq<RoundPrecisionFunctionData>(round_value);
684
678
  }
685
679
 
686
- void RoundFun::RegisterFunction(BuiltinFunctions &set) {
687
- ScalarFunctionSet round("round");
680
+ ScalarFunctionSet RoundFun::GetFunctions() {
681
+ ScalarFunctionSet round;
688
682
  for (auto &type : LogicalType::Numeric()) {
689
683
  scalar_function_t round_prec_func = nullptr;
690
684
  scalar_function_t round_func = nullptr;
@@ -713,7 +707,7 @@ void RoundFun::RegisterFunction(BuiltinFunctions &set) {
713
707
  round.AddFunction(ScalarFunction({type}, type, round_func, bind_func));
714
708
  round.AddFunction(ScalarFunction({type, LogicalType::INTEGER}, type, round_prec_func, bind_prec_func));
715
709
  }
716
- set.AddFunction(round);
710
+ return round;
717
711
  }
718
712
 
719
713
  //===--------------------------------------------------------------------===//
@@ -726,9 +720,9 @@ struct ExpOperator {
726
720
  }
727
721
  };
728
722
 
729
- void ExpFun::RegisterFunction(BuiltinFunctions &set) {
730
- set.AddFunction(ScalarFunction("exp", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
731
- ScalarFunction::UnaryFunction<double, double, ExpOperator>));
723
+ ScalarFunction ExpFun::GetFunction() {
724
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
725
+ ScalarFunction::UnaryFunction<double, double, ExpOperator>);
732
726
  }
733
727
 
734
728
  //===--------------------------------------------------------------------===//
@@ -741,16 +735,9 @@ struct PowOperator {
741
735
  }
742
736
  };
743
737
 
744
- void PowFun::RegisterFunction(BuiltinFunctions &set) {
745
- ScalarFunction power_function("pow", {LogicalType::DOUBLE, LogicalType::DOUBLE}, LogicalType::DOUBLE,
746
- ScalarFunction::BinaryFunction<double, double, double, PowOperator>);
747
- set.AddFunction(power_function);
748
- power_function.name = "power";
749
- set.AddFunction(power_function);
750
- power_function.name = "**";
751
- set.AddFunction(power_function);
752
- power_function.name = "^";
753
- set.AddFunction(power_function);
738
+ ScalarFunction PowOperatorFun::GetFunction() {
739
+ return ScalarFunction({LogicalType::DOUBLE, LogicalType::DOUBLE}, LogicalType::DOUBLE,
740
+ ScalarFunction::BinaryFunction<double, double, double, PowOperator>);
754
741
  }
755
742
 
756
743
  //===--------------------------------------------------------------------===//
@@ -766,9 +753,9 @@ struct SqrtOperator {
766
753
  }
767
754
  };
768
755
 
769
- void SqrtFun::RegisterFunction(BuiltinFunctions &set) {
770
- set.AddFunction(ScalarFunction("sqrt", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
771
- ScalarFunction::UnaryFunction<double, double, SqrtOperator>));
756
+ ScalarFunction SqrtFun::GetFunction() {
757
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
758
+ ScalarFunction::UnaryFunction<double, double, SqrtOperator>);
772
759
  }
773
760
 
774
761
  //===--------------------------------------------------------------------===//
@@ -781,9 +768,9 @@ struct CbRtOperator {
781
768
  }
782
769
  };
783
770
 
784
- void CbrtFun::RegisterFunction(BuiltinFunctions &set) {
785
- set.AddFunction(ScalarFunction("cbrt", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
786
- ScalarFunction::UnaryFunction<double, double, CbRtOperator>));
771
+ ScalarFunction CbrtFun::GetFunction() {
772
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
773
+ ScalarFunction::UnaryFunction<double, double, CbRtOperator>);
787
774
  }
788
775
 
789
776
  //===--------------------------------------------------------------------===//
@@ -803,9 +790,9 @@ struct LnOperator {
803
790
  }
804
791
  };
805
792
 
806
- void LnFun::RegisterFunction(BuiltinFunctions &set) {
807
- set.AddFunction(ScalarFunction("ln", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
808
- ScalarFunction::UnaryFunction<double, double, LnOperator>));
793
+ ScalarFunction LnFun::GetFunction() {
794
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
795
+ ScalarFunction::UnaryFunction<double, double, LnOperator>);
809
796
  }
810
797
 
811
798
  //===--------------------------------------------------------------------===//
@@ -824,9 +811,9 @@ struct Log10Operator {
824
811
  }
825
812
  };
826
813
 
827
- void Log10Fun::RegisterFunction(BuiltinFunctions &set) {
828
- set.AddFunction({"log10", "log"}, ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
829
- ScalarFunction::UnaryFunction<double, double, Log10Operator>));
814
+ ScalarFunction Log10Fun::GetFunction() {
815
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
816
+ ScalarFunction::UnaryFunction<double, double, Log10Operator>);
830
817
  }
831
818
 
832
819
  //===--------------------------------------------------------------------===//
@@ -845,9 +832,9 @@ struct Log2Operator {
845
832
  }
846
833
  };
847
834
 
848
- void Log2Fun::RegisterFunction(BuiltinFunctions &set) {
849
- set.AddFunction(ScalarFunction("log2", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
850
- ScalarFunction::UnaryFunction<double, double, Log2Operator>));
835
+ ScalarFunction Log2Fun::GetFunction() {
836
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
837
+ ScalarFunction::UnaryFunction<double, double, Log2Operator>);
851
838
  }
852
839
 
853
840
  //===--------------------------------------------------------------------===//
@@ -859,8 +846,8 @@ static void PiFunction(DataChunk &args, ExpressionState &state, Vector &result)
859
846
  result.Reference(pi_value);
860
847
  }
861
848
 
862
- void PiFun::RegisterFunction(BuiltinFunctions &set) {
863
- set.AddFunction(ScalarFunction("pi", {}, LogicalType::DOUBLE, PiFunction));
849
+ ScalarFunction PiFun::GetFunction() {
850
+ return ScalarFunction({}, LogicalType::DOUBLE, PiFunction);
864
851
  }
865
852
 
866
853
  //===--------------------------------------------------------------------===//
@@ -873,9 +860,9 @@ struct DegreesOperator {
873
860
  }
874
861
  };
875
862
 
876
- void DegreesFun::RegisterFunction(BuiltinFunctions &set) {
877
- set.AddFunction(ScalarFunction("degrees", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
878
- ScalarFunction::UnaryFunction<double, double, DegreesOperator>));
863
+ ScalarFunction DegreesFun::GetFunction() {
864
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
865
+ ScalarFunction::UnaryFunction<double, double, DegreesOperator>);
879
866
  }
880
867
 
881
868
  //===--------------------------------------------------------------------===//
@@ -888,9 +875,9 @@ struct RadiansOperator {
888
875
  }
889
876
  };
890
877
 
891
- void RadiansFun::RegisterFunction(BuiltinFunctions &set) {
892
- set.AddFunction(ScalarFunction("radians", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
893
- ScalarFunction::UnaryFunction<double, double, RadiansOperator>));
878
+ ScalarFunction RadiansFun::GetFunction() {
879
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
880
+ ScalarFunction::UnaryFunction<double, double, RadiansOperator>);
894
881
  }
895
882
 
896
883
  //===--------------------------------------------------------------------===//
@@ -903,13 +890,13 @@ struct IsNanOperator {
903
890
  }
904
891
  };
905
892
 
906
- void IsNanFun::RegisterFunction(BuiltinFunctions &set) {
907
- ScalarFunctionSet funcs("isnan");
893
+ ScalarFunctionSet IsNanFun::GetFunctions() {
894
+ ScalarFunctionSet funcs;
908
895
  funcs.AddFunction(ScalarFunction({LogicalType::FLOAT}, LogicalType::BOOLEAN,
909
896
  ScalarFunction::UnaryFunction<float, bool, IsNanOperator>));
910
897
  funcs.AddFunction(ScalarFunction({LogicalType::DOUBLE}, LogicalType::BOOLEAN,
911
898
  ScalarFunction::UnaryFunction<double, bool, IsNanOperator>));
912
- set.AddFunction(funcs);
899
+ return funcs;
913
900
  }
914
901
 
915
902
  //===--------------------------------------------------------------------===//
@@ -922,13 +909,13 @@ struct SignBitOperator {
922
909
  }
923
910
  };
924
911
 
925
- void SignBitFun::RegisterFunction(BuiltinFunctions &set) {
926
- ScalarFunctionSet funcs("signbit");
912
+ ScalarFunctionSet SignBitFun::GetFunctions() {
913
+ ScalarFunctionSet funcs;
927
914
  funcs.AddFunction(ScalarFunction({LogicalType::FLOAT}, LogicalType::BOOLEAN,
928
915
  ScalarFunction::UnaryFunction<float, bool, SignBitOperator>));
929
916
  funcs.AddFunction(ScalarFunction({LogicalType::DOUBLE}, LogicalType::BOOLEAN,
930
917
  ScalarFunction::UnaryFunction<double, bool, SignBitOperator>));
931
- set.AddFunction(funcs);
918
+ return funcs;
932
919
  }
933
920
 
934
921
  //===--------------------------------------------------------------------===//
@@ -951,7 +938,7 @@ bool IsInfiniteOperator::Operation(timestamp_t input) {
951
938
  return !Value::IsFinite(input);
952
939
  }
953
940
 
954
- void IsInfiniteFun::RegisterFunction(BuiltinFunctions &set) {
941
+ ScalarFunctionSet IsInfiniteFun::GetFunctions() {
955
942
  ScalarFunctionSet funcs("isinf");
956
943
  funcs.AddFunction(ScalarFunction({LogicalType::FLOAT}, LogicalType::BOOLEAN,
957
944
  ScalarFunction::UnaryFunction<float, bool, IsInfiniteOperator>));
@@ -963,7 +950,7 @@ void IsInfiniteFun::RegisterFunction(BuiltinFunctions &set) {
963
950
  ScalarFunction::UnaryFunction<timestamp_t, bool, IsInfiniteOperator>));
964
951
  funcs.AddFunction(ScalarFunction({LogicalType::TIMESTAMP_TZ}, LogicalType::BOOLEAN,
965
952
  ScalarFunction::UnaryFunction<timestamp_t, bool, IsInfiniteOperator>));
966
- set.AddFunction(funcs);
953
+ return funcs;
967
954
  }
968
955
 
969
956
  //===--------------------------------------------------------------------===//
@@ -976,8 +963,8 @@ struct IsFiniteOperator {
976
963
  }
977
964
  };
978
965
 
979
- void IsFiniteFun::RegisterFunction(BuiltinFunctions &set) {
980
- ScalarFunctionSet funcs("isfinite");
966
+ ScalarFunctionSet IsFiniteFun::GetFunctions() {
967
+ ScalarFunctionSet funcs;
981
968
  funcs.AddFunction(ScalarFunction({LogicalType::FLOAT}, LogicalType::BOOLEAN,
982
969
  ScalarFunction::UnaryFunction<float, bool, IsFiniteOperator>));
983
970
  funcs.AddFunction(ScalarFunction({LogicalType::DOUBLE}, LogicalType::BOOLEAN,
@@ -988,7 +975,7 @@ void IsFiniteFun::RegisterFunction(BuiltinFunctions &set) {
988
975
  ScalarFunction::UnaryFunction<timestamp_t, bool, IsFiniteOperator>));
989
976
  funcs.AddFunction(ScalarFunction({LogicalType::TIMESTAMP_TZ}, LogicalType::BOOLEAN,
990
977
  ScalarFunction::UnaryFunction<timestamp_t, bool, IsFiniteOperator>));
991
- set.AddFunction(funcs);
978
+ return funcs;
992
979
  }
993
980
 
994
981
  //===--------------------------------------------------------------------===//
@@ -1015,10 +1002,9 @@ struct SinOperator {
1015
1002
  }
1016
1003
  };
1017
1004
 
1018
- void SinFun::RegisterFunction(BuiltinFunctions &set) {
1019
- set.AddFunction(
1020
- ScalarFunction("sin", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
1021
- ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<SinOperator>>));
1005
+ ScalarFunction SinFun::GetFunction() {
1006
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
1007
+ ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<SinOperator>>);
1022
1008
  }
1023
1009
 
1024
1010
  //===--------------------------------------------------------------------===//
@@ -1031,10 +1017,9 @@ struct CosOperator {
1031
1017
  }
1032
1018
  };
1033
1019
 
1034
- void CosFun::RegisterFunction(BuiltinFunctions &set) {
1035
- set.AddFunction(
1036
- ScalarFunction("cos", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
1037
- ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<CosOperator>>));
1020
+ ScalarFunction CosFun::GetFunction() {
1021
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
1022
+ ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<CosOperator>>);
1038
1023
  }
1039
1024
 
1040
1025
  //===--------------------------------------------------------------------===//
@@ -1047,10 +1032,9 @@ struct TanOperator {
1047
1032
  }
1048
1033
  };
1049
1034
 
1050
- void TanFun::RegisterFunction(BuiltinFunctions &set) {
1051
- set.AddFunction(
1052
- ScalarFunction("tan", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
1053
- ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<TanOperator>>));
1035
+ ScalarFunction TanFun::GetFunction() {
1036
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
1037
+ ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<TanOperator>>);
1054
1038
  }
1055
1039
 
1056
1040
  //===--------------------------------------------------------------------===//
@@ -1066,10 +1050,9 @@ struct ASinOperator {
1066
1050
  }
1067
1051
  };
1068
1052
 
1069
- void AsinFun::RegisterFunction(BuiltinFunctions &set) {
1070
- set.AddFunction(
1071
- ScalarFunction("asin", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
1072
- ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<ASinOperator>>));
1053
+ ScalarFunction AsinFun::GetFunction() {
1054
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
1055
+ ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<ASinOperator>>);
1073
1056
  }
1074
1057
 
1075
1058
  //===--------------------------------------------------------------------===//
@@ -1082,9 +1065,9 @@ struct ATanOperator {
1082
1065
  }
1083
1066
  };
1084
1067
 
1085
- void AtanFun::RegisterFunction(BuiltinFunctions &set) {
1086
- set.AddFunction(ScalarFunction("atan", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
1087
- ScalarFunction::UnaryFunction<double, double, ATanOperator>));
1068
+ ScalarFunction AtanFun::GetFunction() {
1069
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
1070
+ ScalarFunction::UnaryFunction<double, double, ATanOperator>);
1088
1071
  }
1089
1072
 
1090
1073
  //===--------------------------------------------------------------------===//
@@ -1097,9 +1080,9 @@ struct ATan2 {
1097
1080
  }
1098
1081
  };
1099
1082
 
1100
- void Atan2Fun::RegisterFunction(BuiltinFunctions &set) {
1101
- set.AddFunction(ScalarFunction("atan2", {LogicalType::DOUBLE, LogicalType::DOUBLE}, LogicalType::DOUBLE,
1102
- ScalarFunction::BinaryFunction<double, double, double, ATan2>));
1083
+ ScalarFunction Atan2Fun::GetFunction() {
1084
+ return ScalarFunction({LogicalType::DOUBLE, LogicalType::DOUBLE}, LogicalType::DOUBLE,
1085
+ ScalarFunction::BinaryFunction<double, double, double, ATan2>);
1103
1086
  }
1104
1087
 
1105
1088
  //===--------------------------------------------------------------------===//
@@ -1112,9 +1095,9 @@ struct ACos {
1112
1095
  }
1113
1096
  };
1114
1097
 
1115
- void AcosFun::RegisterFunction(BuiltinFunctions &set) {
1116
- set.AddFunction(ScalarFunction("acos", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
1117
- ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<ACos>>));
1098
+ ScalarFunction AcosFun::GetFunction() {
1099
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
1100
+ ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<ACos>>);
1118
1101
  }
1119
1102
 
1120
1103
  //===--------------------------------------------------------------------===//
@@ -1127,10 +1110,9 @@ struct CotOperator {
1127
1110
  }
1128
1111
  };
1129
1112
 
1130
- void CotFun::RegisterFunction(BuiltinFunctions &set) {
1131
- set.AddFunction(
1132
- ScalarFunction("cot", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
1133
- ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<CotOperator>>));
1113
+ ScalarFunction CotFun::GetFunction() {
1114
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
1115
+ ScalarFunction::UnaryFunction<double, double, NoInfiniteDoubleWrapper<CotOperator>>);
1134
1116
  }
1135
1117
 
1136
1118
  //===--------------------------------------------------------------------===//
@@ -1146,9 +1128,9 @@ struct GammaOperator {
1146
1128
  }
1147
1129
  };
1148
1130
 
1149
- void GammaFun::RegisterFunction(BuiltinFunctions &set) {
1150
- set.AddFunction(ScalarFunction("gamma", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
1151
- ScalarFunction::UnaryFunction<double, double, GammaOperator>));
1131
+ ScalarFunction GammaFun::GetFunction() {
1132
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
1133
+ ScalarFunction::UnaryFunction<double, double, GammaOperator>);
1152
1134
  }
1153
1135
 
1154
1136
  //===--------------------------------------------------------------------===//
@@ -1164,15 +1146,14 @@ struct LogGammaOperator {
1164
1146
  }
1165
1147
  };
1166
1148
 
1167
- void LogGammaFun::RegisterFunction(BuiltinFunctions &set) {
1168
- set.AddFunction(ScalarFunction("lgamma", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
1169
- ScalarFunction::UnaryFunction<double, double, LogGammaOperator>));
1149
+ ScalarFunction LogGammaFun::GetFunction() {
1150
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
1151
+ ScalarFunction::UnaryFunction<double, double, LogGammaOperator>);
1170
1152
  }
1171
1153
 
1172
1154
  //===--------------------------------------------------------------------===//
1173
1155
  // factorial(), !
1174
1156
  //===--------------------------------------------------------------------===//
1175
-
1176
1157
  struct FactorialOperator {
1177
1158
  template <class TA, class TR>
1178
1159
  static inline TR Operation(TA left) {
@@ -1184,11 +1165,9 @@ struct FactorialOperator {
1184
1165
  }
1185
1166
  };
1186
1167
 
1187
- void FactorialFun::RegisterFunction(BuiltinFunctions &set) {
1188
- auto fun = ScalarFunction({LogicalType::INTEGER}, LogicalType::HUGEINT,
1189
- ScalarFunction::UnaryFunction<int32_t, hugeint_t, FactorialOperator>);
1190
-
1191
- set.AddFunction({"factorial", "!__postfix"}, fun);
1168
+ ScalarFunction FactorialOperatorFun::GetFunction() {
1169
+ return ScalarFunction({LogicalType::INTEGER}, LogicalType::HUGEINT,
1170
+ ScalarFunction::UnaryFunction<int32_t, hugeint_t, FactorialOperator>);
1192
1171
  }
1193
1172
 
1194
1173
  //===--------------------------------------------------------------------===//
@@ -1214,9 +1193,9 @@ struct EvenOperator {
1214
1193
  }
1215
1194
  };
1216
1195
 
1217
- void EvenFun::RegisterFunction(BuiltinFunctions &set) {
1218
- set.AddFunction(ScalarFunction("even", {LogicalType::DOUBLE}, LogicalType::DOUBLE,
1219
- ScalarFunction::UnaryFunction<double, double, EvenOperator>));
1196
+ ScalarFunction EvenFun::GetFunction() {
1197
+ return ScalarFunction({LogicalType::DOUBLE}, LogicalType::DOUBLE,
1198
+ ScalarFunction::UnaryFunction<double, double, EvenOperator>);
1220
1199
  }
1221
1200
 
1222
1201
  //===--------------------------------------------------------------------===//
@@ -1256,19 +1235,15 @@ struct GreatestCommonDivisorOperator {
1256
1235
  }
1257
1236
  };
1258
1237
 
1259
- void GreatestCommonDivisorFun::RegisterFunction(BuiltinFunctions &set) {
1260
- ScalarFunctionSet funcs("gcd");
1261
-
1238
+ ScalarFunctionSet GreatestCommonDivisorFun::GetFunctions() {
1239
+ ScalarFunctionSet funcs;
1262
1240
  funcs.AddFunction(
1263
1241
  ScalarFunction({LogicalType::BIGINT, LogicalType::BIGINT}, LogicalType::BIGINT,
1264
1242
  ScalarFunction::BinaryFunction<int64_t, int64_t, int64_t, GreatestCommonDivisorOperator>));
1265
1243
  funcs.AddFunction(
1266
1244
  ScalarFunction({LogicalType::HUGEINT, LogicalType::HUGEINT}, LogicalType::HUGEINT,
1267
1245
  ScalarFunction::BinaryFunction<hugeint_t, hugeint_t, hugeint_t, GreatestCommonDivisorOperator>));
1268
-
1269
- set.AddFunction(funcs);
1270
- funcs.name = "greatest_common_divisor";
1271
- set.AddFunction(funcs);
1246
+ return funcs;
1272
1247
  }
1273
1248
 
1274
1249
  //===--------------------------------------------------------------------===//
@@ -1290,8 +1265,8 @@ struct LeastCommonMultipleOperator {
1290
1265
  }
1291
1266
  };
1292
1267
 
1293
- void LeastCommonMultipleFun::RegisterFunction(BuiltinFunctions &set) {
1294
- ScalarFunctionSet funcs("lcm");
1268
+ ScalarFunctionSet LeastCommonMultipleFun::GetFunctions() {
1269
+ ScalarFunctionSet funcs;
1295
1270
 
1296
1271
  funcs.AddFunction(
1297
1272
  ScalarFunction({LogicalType::BIGINT, LogicalType::BIGINT}, LogicalType::BIGINT,
@@ -1299,10 +1274,7 @@ void LeastCommonMultipleFun::RegisterFunction(BuiltinFunctions &set) {
1299
1274
  funcs.AddFunction(
1300
1275
  ScalarFunction({LogicalType::HUGEINT, LogicalType::HUGEINT}, LogicalType::HUGEINT,
1301
1276
  ScalarFunction::BinaryFunction<hugeint_t, hugeint_t, hugeint_t, LeastCommonMultipleOperator>));
1302
-
1303
- set.AddFunction(funcs);
1304
- funcs.name = "least_common_multiple";
1305
- set.AddFunction(funcs);
1277
+ return funcs;
1306
1278
  }
1307
1279
 
1308
1280
  } // namespace duckdb