duckdb 0.7.2-dev2706.0 → 0.7.2-dev2820.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 (268) hide show
  1. package/binding.gyp +21 -13
  2. package/package.json +1 -1
  3. package/src/duckdb/extension/icu/icu-strptime.cpp +1 -1
  4. package/src/duckdb/extension/json/include/json_functions.hpp +35 -37
  5. package/src/duckdb/extension/json/include/json_scan.hpp +1 -1
  6. package/src/duckdb/extension/json/include/json_transform.hpp +1 -1
  7. package/src/duckdb/extension/json/json-extension.cpp +10 -20
  8. package/src/duckdb/extension/json/json_functions/copy_json.cpp +2 -2
  9. package/src/duckdb/extension/json/json_functions/json_array_length.cpp +2 -3
  10. package/src/duckdb/extension/json/json_functions/json_contains.cpp +2 -2
  11. package/src/duckdb/extension/json/json_functions/json_create.cpp +20 -20
  12. package/src/duckdb/extension/json/json_functions/json_extract.cpp +4 -6
  13. package/src/duckdb/extension/json/json_functions/json_keys.cpp +2 -3
  14. package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +2 -2
  15. package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +8 -8
  16. package/src/duckdb/extension/json/json_functions/json_structure.cpp +2 -2
  17. package/src/duckdb/extension/json/json_functions/json_transform.cpp +4 -4
  18. package/src/duckdb/extension/json/json_functions/json_type.cpp +2 -3
  19. package/src/duckdb/extension/json/json_functions/json_valid.cpp +2 -2
  20. package/src/duckdb/extension/json/json_functions/read_json.cpp +6 -6
  21. package/src/duckdb/extension/json/json_functions/read_json_objects.cpp +4 -4
  22. package/src/duckdb/extension/json/json_functions.cpp +6 -6
  23. package/src/duckdb/extension/parquet/parquet-extension.cpp +11 -24
  24. package/src/duckdb/extension/parquet/parquet_metadata.cpp +46 -20
  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/types/vector.cpp +136 -3
  33. package/src/duckdb/src/{function → core_functions}/aggregate/algebraic/avg.cpp +9 -12
  34. package/src/duckdb/src/core_functions/aggregate/algebraic/corr.cpp +13 -0
  35. package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +21 -0
  36. package/src/duckdb/src/core_functions/aggregate/algebraic/stddev.cpp +34 -0
  37. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/approx_count.cpp +3 -3
  38. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/arg_min_max.cpp +7 -23
  39. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bitagg.cpp +10 -10
  40. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bitstring_agg.cpp +4 -4
  41. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bool.cpp +1 -17
  42. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/entropy.cpp +5 -4
  43. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/kurtosis.cpp +5 -6
  44. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/minmax.cpp +5 -5
  45. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/product.cpp +2 -11
  46. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/skew.cpp +5 -6
  47. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/string_agg.cpp +4 -6
  48. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/sum.cpp +38 -46
  49. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/approximate_quantile.cpp +4 -5
  50. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/mode.cpp +4 -5
  51. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/quantile.cpp +31 -23
  52. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/reservoir_quantile.cpp +4 -5
  53. package/src/duckdb/src/{function → core_functions}/aggregate/nested/histogram.cpp +4 -4
  54. package/src/duckdb/src/{function → core_functions}/aggregate/nested/list.cpp +6 -10
  55. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_avg.cpp +7 -11
  56. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_count.cpp +4 -4
  57. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_intercept.cpp +5 -8
  58. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_r2.cpp +5 -7
  59. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_slope.cpp +5 -7
  60. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_sxx_syy.cpp +8 -12
  61. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_sxy.cpp +6 -8
  62. package/src/duckdb/src/core_functions/core_functions.cpp +50 -0
  63. package/src/duckdb/src/core_functions/function_list.cpp +352 -0
  64. package/src/duckdb/src/{function → core_functions}/scalar/bit/bitstring.cpp +12 -15
  65. package/src/duckdb/src/{function → core_functions}/scalar/blob/base64.cpp +6 -6
  66. package/src/duckdb/src/{function → core_functions}/scalar/blob/encode.cpp +7 -6
  67. package/src/duckdb/src/{function → core_functions}/scalar/date/age.cpp +3 -3
  68. package/src/duckdb/src/{function → core_functions}/scalar/date/current.cpp +8 -8
  69. package/src/duckdb/src/{function → core_functions}/scalar/date/date_diff.cpp +3 -6
  70. package/src/duckdb/src/{function → core_functions}/scalar/date/date_part.cpp +144 -148
  71. package/src/duckdb/src/{function → core_functions}/scalar/date/date_sub.cpp +3 -6
  72. package/src/duckdb/src/{function → core_functions}/scalar/date/date_trunc.cpp +3 -6
  73. package/src/duckdb/src/{function → core_functions}/scalar/date/epoch.cpp +7 -8
  74. package/src/duckdb/src/{function → core_functions}/scalar/date/make_date.cpp +14 -14
  75. package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +251 -0
  76. package/src/duckdb/src/{function → core_functions}/scalar/date/time_bucket.cpp +4 -5
  77. package/src/duckdb/src/{function → core_functions}/scalar/date/to_interval.cpp +39 -19
  78. package/src/duckdb/src/{function/scalar/enum/enum_functions_implementation.cpp → core_functions/scalar/enum/enum_functions.cpp} +18 -22
  79. package/src/duckdb/src/{function → core_functions}/scalar/generic/alias.cpp +4 -4
  80. package/src/duckdb/src/{function → core_functions}/scalar/generic/current_setting.cpp +4 -5
  81. package/src/duckdb/src/{function → core_functions}/scalar/generic/error.cpp +4 -4
  82. package/src/duckdb/src/{function → core_functions}/scalar/generic/hash.cpp +4 -4
  83. package/src/duckdb/src/{function → core_functions}/scalar/generic/least.cpp +8 -9
  84. package/src/duckdb/src/{function → core_functions}/scalar/generic/stats.cpp +4 -4
  85. package/src/duckdb/src/{function/scalar/system → core_functions/scalar/generic}/system_functions.cpp +24 -13
  86. package/src/duckdb/src/{function → core_functions}/scalar/generic/typeof.cpp +4 -4
  87. package/src/duckdb/src/{function → core_functions}/scalar/list/array_slice.cpp +3 -13
  88. package/src/duckdb/src/{function → core_functions}/scalar/list/flatten.cpp +5 -5
  89. package/src/duckdb/src/{function → core_functions}/scalar/list/list_aggregates.cpp +2 -13
  90. package/src/duckdb/src/{function → core_functions}/scalar/list/list_lambdas.cpp +9 -24
  91. package/src/duckdb/src/{function → core_functions}/scalar/list/list_sort.cpp +8 -22
  92. package/src/duckdb/src/{function → core_functions}/scalar/list/list_value.cpp +4 -5
  93. package/src/duckdb/src/{function → core_functions}/scalar/list/range.cpp +8 -6
  94. package/src/duckdb/src/{function → core_functions}/scalar/map/cardinality.cpp +5 -4
  95. package/src/duckdb/src/{function → core_functions}/scalar/map/map.cpp +6 -63
  96. package/src/duckdb/src/{function → core_functions}/scalar/map/map_entries.cpp +5 -4
  97. package/src/duckdb/src/{function → core_functions}/scalar/map/map_extract.cpp +22 -7
  98. package/src/duckdb/src/{function → core_functions}/scalar/map/map_from_entries.cpp +6 -5
  99. package/src/duckdb/src/{function → core_functions}/scalar/map/map_keys_values.cpp +8 -7
  100. package/src/duckdb/src/{function → core_functions}/scalar/math/numeric.cpp +110 -138
  101. package/src/duckdb/src/{function → core_functions}/scalar/operators/bitwise.cpp +19 -20
  102. package/src/duckdb/src/{function/scalar/math → core_functions/scalar/random}/random.cpp +5 -6
  103. package/src/duckdb/src/{function/scalar/math → core_functions/scalar/random}/setseed.cpp +3 -3
  104. package/src/duckdb/src/{function → core_functions}/scalar/string/ascii.cpp +4 -5
  105. package/src/duckdb/src/{function → core_functions}/scalar/string/bar.cpp +4 -4
  106. package/src/duckdb/src/{function → core_functions}/scalar/string/chr.cpp +5 -6
  107. package/src/duckdb/src/{function → core_functions}/scalar/string/damerau_levenshtein.cpp +4 -6
  108. package/src/duckdb/src/{function/scalar/string/mismatches.cpp → core_functions/scalar/string/hamming.cpp} +3 -12
  109. package/src/duckdb/src/{function → core_functions}/scalar/string/hex.cpp +15 -25
  110. package/src/duckdb/src/{function → core_functions}/scalar/string/instr.cpp +6 -13
  111. package/src/duckdb/src/{function → core_functions}/scalar/string/jaccard.cpp +3 -6
  112. package/src/duckdb/src/{function → core_functions}/scalar/string/jaro_winkler.cpp +7 -6
  113. package/src/duckdb/src/{function → core_functions}/scalar/string/left_right.cpp +18 -11
  114. package/src/duckdb/src/{function → core_functions}/scalar/string/levenshtein.cpp +3 -12
  115. package/src/duckdb/src/{function → core_functions}/scalar/string/md5.cpp +15 -21
  116. package/src/duckdb/src/{function → core_functions}/scalar/string/pad.cpp +7 -13
  117. package/src/duckdb/src/{function → core_functions}/scalar/string/printf.cpp +10 -10
  118. package/src/duckdb/src/{function → core_functions}/scalar/string/repeat.cpp +3 -6
  119. package/src/duckdb/src/{function → core_functions}/scalar/string/replace.cpp +4 -7
  120. package/src/duckdb/src/{function → core_functions}/scalar/string/reverse.cpp +3 -3
  121. package/src/duckdb/src/{function → core_functions}/scalar/string/starts_with.cpp +4 -8
  122. package/src/duckdb/src/{function → core_functions}/scalar/string/string_split.cpp +11 -11
  123. package/src/duckdb/src/{function → core_functions}/scalar/string/translate.cpp +4 -7
  124. package/src/duckdb/src/{function → core_functions}/scalar/string/trim.cpp +19 -14
  125. package/src/duckdb/src/core_functions/scalar/string/unicode.cpp +28 -0
  126. package/src/duckdb/src/{function → core_functions}/scalar/struct/struct_insert.cpp +4 -4
  127. package/src/duckdb/src/{function → core_functions}/scalar/struct/struct_pack.cpp +3 -4
  128. package/src/duckdb/src/{function → core_functions}/scalar/union/union_extract.cpp +4 -8
  129. package/src/duckdb/src/{function → core_functions}/scalar/union/union_tag.cpp +4 -8
  130. package/src/duckdb/src/{function → core_functions}/scalar/union/union_value.cpp +4 -59
  131. package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +1 -1
  132. package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +1 -1
  133. package/src/duckdb/src/execution/operator/persistent/parallel_csv_reader.cpp +1 -1
  134. package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +19 -12
  135. package/src/duckdb/src/function/aggregate/distributive_functions.cpp +0 -17
  136. package/src/duckdb/src/function/cast/string_cast.cpp +1 -1
  137. package/src/duckdb/src/function/function.cpp +0 -8
  138. package/src/duckdb/src/function/function_set.cpp +25 -0
  139. package/src/duckdb/src/function/scalar/generic_functions.cpp +1 -9
  140. package/src/duckdb/src/function/scalar/nested_functions.cpp +0 -22
  141. package/src/duckdb/src/function/scalar/operators.cpp +0 -6
  142. package/src/duckdb/src/function/scalar/{date/strftime.cpp → strftime_format.cpp} +1 -249
  143. package/src/duckdb/src/function/scalar/string/length.cpp +0 -19
  144. package/src/duckdb/src/function/scalar/string_functions.cpp +0 -40
  145. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +5 -0
  146. package/src/duckdb/src/function/table/arrow_conversion.cpp +1 -1
  147. package/src/duckdb/src/function/table/range.cpp +1 -0
  148. package/src/duckdb/src/function/table/repeat_row.cpp +60 -0
  149. package/src/duckdb/src/function/table/system/duckdb_functions.cpp +27 -40
  150. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  151. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp +3 -3
  152. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/function_entry.hpp +33 -0
  153. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/macro_catalog_entry.hpp +2 -2
  154. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp +2 -2
  155. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp +2 -2
  156. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +2 -2
  157. package/src/duckdb/src/include/duckdb/catalog/catalog_transaction.hpp +2 -0
  158. package/src/duckdb/src/include/duckdb/common/algorithm.hpp +1 -0
  159. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +11 -1
  160. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/corr.hpp +3 -4
  161. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/covar.hpp +1 -1
  162. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/stddev.hpp +1 -1
  163. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic_functions.hpp +124 -0
  164. package/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp +229 -0
  165. package/src/duckdb/src/include/duckdb/core_functions/aggregate/holistic_functions.hpp +85 -0
  166. package/src/duckdb/src/include/duckdb/core_functions/aggregate/nested_functions.hpp +41 -0
  167. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/regression/regr_count.hpp +3 -4
  168. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/regression/regr_slope.hpp +2 -2
  169. package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression_functions.hpp +97 -0
  170. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/sum_helpers.hpp +1 -1
  171. package/src/duckdb/src/include/duckdb/{function/scalar/uuid_functions.hpp → core_functions/core_functions.hpp} +7 -5
  172. package/src/duckdb/src/include/duckdb/core_functions/function_list.hpp +33 -0
  173. package/src/duckdb/src/include/duckdb/core_functions/scalar/bit_functions.hpp +52 -0
  174. package/src/duckdb/src/include/duckdb/core_functions/scalar/blob_functions.hpp +58 -0
  175. package/src/duckdb/src/include/duckdb/core_functions/scalar/date_functions.hpp +544 -0
  176. package/src/duckdb/src/include/duckdb/core_functions/scalar/enum_functions.hpp +61 -0
  177. package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +142 -0
  178. package/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp +220 -0
  179. package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +85 -0
  180. package/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp +394 -0
  181. package/src/duckdb/src/include/duckdb/core_functions/scalar/operators_functions.hpp +70 -0
  182. package/src/duckdb/src/include/duckdb/core_functions/scalar/random_functions.hpp +49 -0
  183. package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +439 -0
  184. package/src/duckdb/src/include/duckdb/core_functions/scalar/struct_functions.hpp +40 -0
  185. package/src/duckdb/src/include/duckdb/core_functions/scalar/union_functions.hpp +43 -0
  186. package/src/duckdb/src/include/duckdb/execution/operator/persistent/base_csv_reader.hpp +1 -1
  187. package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_reader_options.hpp +1 -1
  188. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_insert.hpp +4 -3
  189. package/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp +0 -85
  190. package/src/duckdb/src/include/duckdb/function/built_in_functions.hpp +0 -8
  191. package/src/duckdb/src/include/duckdb/function/function_set.hpp +7 -2
  192. package/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp +1 -36
  193. package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +0 -120
  194. package/src/duckdb/src/include/duckdb/function/scalar/operators.hpp +0 -24
  195. package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +1 -97
  196. package/src/duckdb/src/include/duckdb/function/table/range.hpp +4 -0
  197. package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +1 -1
  198. package/src/duckdb/src/include/duckdb/main/extension_util.hpp +48 -0
  199. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +6 -0
  200. package/src/duckdb/src/main/extension/extension_helper.cpp +1 -0
  201. package/src/duckdb/src/main/extension/extension_load.cpp +48 -4
  202. package/src/duckdb/src/main/extension/extension_util.cpp +90 -0
  203. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +6 -7
  204. package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +5 -4
  205. package/src/duckdb/ub_src_common_enums.cpp +2 -0
  206. package/src/duckdb/ub_src_core_functions.cpp +4 -0
  207. package/src/duckdb/ub_src_core_functions_aggregate_algebraic.cpp +8 -0
  208. package/src/duckdb/ub_src_core_functions_aggregate_distributive.cpp +24 -0
  209. package/src/duckdb/ub_src_core_functions_aggregate_holistic.cpp +8 -0
  210. package/src/duckdb/ub_src_core_functions_aggregate_nested.cpp +4 -0
  211. package/src/duckdb/ub_src_core_functions_aggregate_regression.cpp +14 -0
  212. package/src/duckdb/ub_src_core_functions_scalar_bit.cpp +2 -0
  213. package/src/duckdb/ub_src_core_functions_scalar_blob.cpp +4 -0
  214. package/src/duckdb/ub_src_core_functions_scalar_date.cpp +22 -0
  215. package/src/duckdb/ub_src_core_functions_scalar_enum.cpp +2 -0
  216. package/src/duckdb/ub_src_core_functions_scalar_generic.cpp +16 -0
  217. package/src/duckdb/ub_src_core_functions_scalar_list.cpp +14 -0
  218. package/src/duckdb/ub_src_core_functions_scalar_map.cpp +12 -0
  219. package/src/duckdb/ub_src_core_functions_scalar_math.cpp +2 -0
  220. package/src/duckdb/ub_src_core_functions_scalar_operators.cpp +2 -0
  221. package/src/duckdb/ub_src_core_functions_scalar_random.cpp +4 -0
  222. package/src/duckdb/ub_src_core_functions_scalar_string.cpp +44 -0
  223. package/src/duckdb/ub_src_core_functions_scalar_struct.cpp +4 -0
  224. package/src/duckdb/ub_src_core_functions_scalar_union.cpp +6 -0
  225. package/src/duckdb/ub_src_function_aggregate.cpp +0 -8
  226. package/src/duckdb/ub_src_function_aggregate_distributive.cpp +0 -24
  227. package/src/duckdb/ub_src_function_scalar.cpp +2 -8
  228. package/src/duckdb/ub_src_function_scalar_generic.cpp +0 -14
  229. package/src/duckdb/ub_src_function_scalar_list.cpp +0 -14
  230. package/src/duckdb/ub_src_function_scalar_operators.cpp +0 -2
  231. package/src/duckdb/ub_src_function_scalar_string.cpp +0 -42
  232. package/src/duckdb/ub_src_function_scalar_struct.cpp +0 -4
  233. package/src/duckdb/ub_src_function_scalar_system.cpp +0 -2
  234. package/src/duckdb/ub_src_function_table.cpp +2 -0
  235. package/src/duckdb/ub_src_main_extension.cpp +2 -0
  236. package/src/duckdb/src/function/aggregate/algebraic/corr.cpp +0 -14
  237. package/src/duckdb/src/function/aggregate/algebraic/covar.cpp +0 -25
  238. package/src/duckdb/src/function/aggregate/algebraic/stddev.cpp +0 -54
  239. package/src/duckdb/src/function/aggregate/algebraic_functions.cpp +0 -21
  240. package/src/duckdb/src/function/aggregate/holistic_functions.cpp +0 -12
  241. package/src/duckdb/src/function/aggregate/nested_functions.cpp +0 -10
  242. package/src/duckdb/src/function/aggregate/regression_functions.cpp +0 -21
  243. package/src/duckdb/src/function/scalar/date_functions.cpp +0 -22
  244. package/src/duckdb/src/function/scalar/enum_functions.cpp +0 -13
  245. package/src/duckdb/src/function/scalar/math_functions.cpp +0 -50
  246. package/src/duckdb/src/function/scalar/trigonometrics_functions.cpp +0 -18
  247. package/src/duckdb/src/include/duckdb/function/aggregate/algebraic_functions.hpp +0 -56
  248. package/src/duckdb/src/include/duckdb/function/aggregate/holistic_functions.hpp +0 -33
  249. package/src/duckdb/src/include/duckdb/function/aggregate/nested_functions.hpp +0 -26
  250. package/src/duckdb/src/include/duckdb/function/aggregate/regression_functions.hpp +0 -53
  251. package/src/duckdb/src/include/duckdb/function/scalar/bit_functions.hpp +0 -32
  252. package/src/duckdb/src/include/duckdb/function/scalar/blob_functions.hpp +0 -24
  253. package/src/duckdb/src/include/duckdb/function/scalar/date_functions.hpp +0 -73
  254. package/src/duckdb/src/include/duckdb/function/scalar/enum_functions.hpp +0 -37
  255. package/src/duckdb/src/include/duckdb/function/scalar/math_functions.hpp +0 -137
  256. package/src/duckdb/src/include/duckdb/function/scalar/trigonometric_functions.hpp +0 -49
  257. package/src/duckdb/ub_src_function_aggregate_algebraic.cpp +0 -8
  258. package/src/duckdb/ub_src_function_aggregate_holistic.cpp +0 -8
  259. package/src/duckdb/ub_src_function_aggregate_nested.cpp +0 -4
  260. package/src/duckdb/ub_src_function_aggregate_regression.cpp +0 -14
  261. package/src/duckdb/ub_src_function_scalar_bit.cpp +0 -2
  262. package/src/duckdb/ub_src_function_scalar_blob.cpp +0 -4
  263. package/src/duckdb/ub_src_function_scalar_date.cpp +0 -22
  264. package/src/duckdb/ub_src_function_scalar_enum.cpp +0 -2
  265. package/src/duckdb/ub_src_function_scalar_map.cpp +0 -12
  266. package/src/duckdb/ub_src_function_scalar_math.cpp +0 -6
  267. package/src/duckdb/ub_src_function_scalar_union.cpp +0 -6
  268. /package/src/duckdb/src/include/duckdb/function/scalar/{strftime.hpp → strftime_format.hpp} +0 -0
@@ -5,7 +5,7 @@
5
5
  #include "duckdb/common/exception.hpp"
6
6
  #include "duckdb/common/vector_operations/vector_operations.hpp"
7
7
  #include "duckdb/common/operator/comparison_operators.hpp"
8
- #include "duckdb/function/aggregate/holistic_functions.hpp"
8
+ #include "duckdb/core_functions/aggregate/holistic_functions.hpp"
9
9
  #include "duckdb/planner/expression/bound_aggregate_expression.hpp"
10
10
  #include "duckdb/common/unordered_map.hpp"
11
11
 
@@ -318,11 +318,11 @@ unique_ptr<FunctionData> BindModeDecimal(ClientContext &context, AggregateFuncti
318
318
  return nullptr;
319
319
  }
320
320
 
321
- void ModeFun::RegisterFunction(BuiltinFunctions &set) {
321
+ AggregateFunctionSet ModeFun::GetFunctions() {
322
322
  const vector<LogicalType> TEMPORAL = {LogicalType::DATE, LogicalType::TIMESTAMP, LogicalType::TIME,
323
323
  LogicalType::TIMESTAMP_TZ, LogicalType::TIME_TZ, LogicalType::INTERVAL};
324
324
 
325
- AggregateFunctionSet mode("mode");
325
+ AggregateFunctionSet mode;
326
326
  mode.AddFunction(AggregateFunction({LogicalTypeId::DECIMAL}, LogicalTypeId::DECIMAL, nullptr, nullptr, nullptr,
327
327
  nullptr, nullptr, nullptr, BindModeDecimal));
328
328
 
@@ -337,7 +337,6 @@ void ModeFun::RegisterFunction(BuiltinFunctions &set) {
337
337
  }
338
338
 
339
339
  mode.AddFunction(GetModeAggregate(LogicalType::VARCHAR));
340
-
341
- set.AddFunction(mode);
340
+ return mode;
342
341
  }
343
342
  } // namespace duckdb
@@ -1,5 +1,5 @@
1
1
  #include "duckdb/execution/expression_executor.hpp"
2
- #include "duckdb/function/aggregate/holistic_functions.hpp"
2
+ #include "duckdb/core_functions/aggregate/holistic_functions.hpp"
3
3
  #include "duckdb/planner/expression.hpp"
4
4
  #include "duckdb/common/operator/cast_operators.hpp"
5
5
  #include "duckdb/common/operator/abs.hpp"
@@ -1375,24 +1375,39 @@ AggregateFunction GetQuantileDecimalAggregate(const vector<LogicalType> &argumen
1375
1375
  return fun;
1376
1376
  }
1377
1377
 
1378
- void QuantileFun::RegisterFunction(BuiltinFunctions &set) {
1379
- const vector<LogicalType> QUANTILES = {LogicalType::TINYINT, LogicalType::SMALLINT, LogicalType::INTEGER,
1380
- LogicalType::BIGINT, LogicalType::HUGEINT, LogicalType::FLOAT,
1381
- LogicalType::DOUBLE, LogicalType::DATE, LogicalType::TIMESTAMP,
1382
- LogicalType::TIME, LogicalType::TIMESTAMP_TZ, LogicalType::TIME_TZ,
1383
- LogicalType::INTERVAL, LogicalType::VARCHAR};
1378
+ vector<LogicalType> GetQuantileTypes() {
1379
+ return {LogicalType::TINYINT, LogicalType::SMALLINT, LogicalType::INTEGER, LogicalType::BIGINT,
1380
+ LogicalType::HUGEINT, LogicalType::FLOAT, LogicalType::DOUBLE, LogicalType::DATE,
1381
+ LogicalType::TIMESTAMP, LogicalType::TIME, LogicalType::TIMESTAMP_TZ, LogicalType::TIME_TZ,
1382
+ LogicalType::INTERVAL, LogicalType::VARCHAR};
1383
+ }
1384
1384
 
1385
+ AggregateFunctionSet MedianFun::GetFunctions() {
1385
1386
  AggregateFunctionSet median("median");
1386
1387
  median.AddFunction(
1387
1388
  GetQuantileDecimalAggregate({LogicalTypeId::DECIMAL}, LogicalTypeId::DECIMAL, BindMedianDecimal));
1389
+ for (const auto &type : GetQuantileTypes()) {
1390
+ median.AddFunction(GetMedianAggregate(type));
1391
+ }
1392
+ return median;
1393
+ }
1388
1394
 
1395
+ AggregateFunctionSet QuantileDiscFun::GetFunctions() {
1389
1396
  AggregateFunctionSet quantile_disc("quantile_disc");
1390
1397
  quantile_disc.AddFunction(GetQuantileDecimalAggregate({LogicalTypeId::DECIMAL, LogicalType::DOUBLE},
1391
1398
  LogicalTypeId::DECIMAL, BindDiscreteQuantileDecimal));
1392
1399
  quantile_disc.AddFunction(
1393
1400
  GetQuantileDecimalAggregate({LogicalTypeId::DECIMAL, LogicalType::LIST(LogicalType::DOUBLE)},
1394
1401
  LogicalType::LIST(LogicalTypeId::DECIMAL), BindDiscreteQuantileDecimalList));
1402
+ for (const auto &type : GetQuantileTypes()) {
1403
+ quantile_disc.AddFunction(GetDiscreteQuantileAggregate(type));
1404
+ quantile_disc.AddFunction(GetDiscreteQuantileListAggregate(type));
1405
+ }
1406
+ return quantile_disc;
1407
+ // quantile
1408
+ }
1395
1409
 
1410
+ AggregateFunctionSet QuantileContFun::GetFunctions() {
1396
1411
  AggregateFunctionSet quantile_cont("quantile_cont");
1397
1412
  quantile_cont.AddFunction(GetQuantileDecimalAggregate({LogicalTypeId::DECIMAL, LogicalType::DOUBLE},
1398
1413
  LogicalTypeId::DECIMAL, BindContinuousQuantileDecimal));
@@ -1400,34 +1415,27 @@ void QuantileFun::RegisterFunction(BuiltinFunctions &set) {
1400
1415
  GetQuantileDecimalAggregate({LogicalTypeId::DECIMAL, LogicalType::LIST(LogicalType::DOUBLE)},
1401
1416
  LogicalType::LIST(LogicalTypeId::DECIMAL), BindContinuousQuantileDecimalList));
1402
1417
 
1403
- for (const auto &type : QUANTILES) {
1404
- median.AddFunction(GetMedianAggregate(type));
1405
- quantile_disc.AddFunction(GetDiscreteQuantileAggregate(type));
1406
- quantile_disc.AddFunction(GetDiscreteQuantileListAggregate(type));
1418
+ for (const auto &type : GetQuantileTypes()) {
1407
1419
  if (CanInterpolate(type)) {
1408
1420
  quantile_cont.AddFunction(GetContinuousQuantileAggregate(type));
1409
1421
  quantile_cont.AddFunction(GetContinuousQuantileListAggregate(type));
1410
1422
  }
1411
1423
  }
1424
+ return quantile_cont;
1425
+ }
1412
1426
 
1413
- set.AddFunction(median);
1414
- set.AddFunction(quantile_disc);
1415
- set.AddFunction(quantile_cont);
1416
-
1417
- quantile_disc.name = "quantile";
1418
- set.AddFunction(quantile_disc);
1419
-
1427
+ AggregateFunctionSet MadFun::GetFunctions() {
1420
1428
  AggregateFunctionSet mad("mad");
1421
1429
  mad.AddFunction(AggregateFunction({LogicalTypeId::DECIMAL}, LogicalTypeId::DECIMAL, nullptr, nullptr, nullptr,
1422
1430
  nullptr, nullptr, nullptr, BindMedianAbsoluteDeviationDecimal));
1423
1431
 
1424
- const vector<LogicalType> MADS = {LogicalType::FLOAT, LogicalType::DOUBLE, LogicalType::DATE,
1425
- LogicalType::TIMESTAMP, LogicalType::TIME, LogicalType::TIMESTAMP_TZ,
1426
- LogicalType::TIME_TZ};
1427
- for (const auto &type : MADS) {
1432
+ const vector<LogicalType> MAD_TYPES = {LogicalType::FLOAT, LogicalType::DOUBLE, LogicalType::DATE,
1433
+ LogicalType::TIMESTAMP, LogicalType::TIME, LogicalType::TIMESTAMP_TZ,
1434
+ LogicalType::TIME_TZ};
1435
+ for (const auto &type : MAD_TYPES) {
1428
1436
  mad.AddFunction(GetMedianAbsoluteDeviationAggregateFunction(type));
1429
1437
  }
1430
- set.AddFunction(mad);
1438
+ return mad;
1431
1439
  }
1432
1440
 
1433
1441
  } // namespace duckdb
@@ -1,6 +1,6 @@
1
1
  #include "duckdb/execution/expression_executor.hpp"
2
2
  #include "duckdb/execution/reservoir_sample.hpp"
3
- #include "duckdb/function/aggregate/holistic_functions.hpp"
3
+ #include "duckdb/core_functions/aggregate/holistic_functions.hpp"
4
4
  #include "duckdb/planner/expression.hpp"
5
5
  #include "duckdb/common/queue.hpp"
6
6
  #include "duckdb/common/field_writer.hpp"
@@ -452,8 +452,8 @@ static void GetReservoirQuantileDecimalFunction(AggregateFunctionSet &set, const
452
452
  set.AddFunction(fun);
453
453
  }
454
454
 
455
- void ReservoirQuantileFun::RegisterFunction(BuiltinFunctions &set) {
456
- AggregateFunctionSet reservoir_quantile("reservoir_quantile");
455
+ AggregateFunctionSet ReservoirQuantileFun::GetFunctions() {
456
+ AggregateFunctionSet reservoir_quantile;
457
457
 
458
458
  // DECIMAL
459
459
  GetReservoirQuantileDecimalFunction(reservoir_quantile, {LogicalTypeId::DECIMAL, LogicalType::DOUBLE},
@@ -469,8 +469,7 @@ void ReservoirQuantileFun::RegisterFunction(BuiltinFunctions &set) {
469
469
  DefineReservoirQuantile(reservoir_quantile, LogicalTypeId::HUGEINT);
470
470
  DefineReservoirQuantile(reservoir_quantile, LogicalTypeId::FLOAT);
471
471
  DefineReservoirQuantile(reservoir_quantile, LogicalTypeId::DOUBLE);
472
-
473
- set.AddFunction(reservoir_quantile);
472
+ return reservoir_quantile;
474
473
  }
475
474
 
476
475
  } // namespace duckdb
@@ -1,5 +1,5 @@
1
1
  #include "duckdb/function/scalar/nested_functions.hpp"
2
- #include "duckdb/function/aggregate/nested_functions.hpp"
2
+ #include "duckdb/core_functions/aggregate/nested_functions.hpp"
3
3
  #include "duckdb/planner/expression/bound_aggregate_expression.hpp"
4
4
  #include "duckdb/common/pair.hpp"
5
5
  #include "duckdb/planner/expression/bound_function_expression.hpp"
@@ -233,8 +233,8 @@ AggregateFunction GetHistogramFunction(const LogicalType &type) {
233
233
  }
234
234
  }
235
235
 
236
- void HistogramFun::RegisterFunction(BuiltinFunctions &set) {
237
- AggregateFunctionSet fun("histogram");
236
+ AggregateFunctionSet HistogramFun::GetFunctions() {
237
+ AggregateFunctionSet fun;
238
238
  fun.AddFunction(GetHistogramFunction<>(LogicalType::BOOLEAN));
239
239
  fun.AddFunction(GetHistogramFunction<>(LogicalType::UTINYINT));
240
240
  fun.AddFunction(GetHistogramFunction<>(LogicalType::USMALLINT));
@@ -255,7 +255,7 @@ void HistogramFun::RegisterFunction(BuiltinFunctions &set) {
255
255
  fun.AddFunction(GetHistogramFunction<>(LogicalType::TIME));
256
256
  fun.AddFunction(GetHistogramFunction<>(LogicalType::TIME_TZ));
257
257
  fun.AddFunction(GetHistogramFunction<>(LogicalType::DATE));
258
- set.AddFunction(fun);
258
+ return fun;
259
259
  }
260
260
 
261
261
  AggregateFunction HistogramFun::GetHistogramUnorderedMap(LogicalType &type) {
@@ -1,6 +1,6 @@
1
1
  #include "duckdb/common/pair.hpp"
2
2
  #include "duckdb/common/types/list_segment.hpp"
3
- #include "duckdb/function/aggregate/nested_functions.hpp"
3
+ #include "duckdb/core_functions/aggregate/nested_functions.hpp"
4
4
  #include "duckdb/planner/expression/bound_aggregate_expression.hpp"
5
5
 
6
6
  namespace duckdb {
@@ -180,15 +180,11 @@ unique_ptr<FunctionData> ListBindFunction(ClientContext &context, AggregateFunct
180
180
  return make_uniq<ListBindData>(function.return_type);
181
181
  }
182
182
 
183
- void ListFun::RegisterFunction(BuiltinFunctions &set) {
184
- auto agg =
185
- AggregateFunction("list", {LogicalType::ANY}, LogicalTypeId::LIST, AggregateFunction::StateSize<ListAggState>,
186
- AggregateFunction::StateInitialize<ListAggState, ListFunction>, ListUpdateFunction,
187
- ListCombineFunction, ListFinalize, nullptr, ListBindFunction,
188
- AggregateFunction::StateDestroy<ListAggState, ListFunction>, nullptr, nullptr);
189
- set.AddFunction(agg);
190
- agg.name = "array_agg";
191
- set.AddFunction(agg);
183
+ AggregateFunction ListFun::GetFunction() {
184
+ return AggregateFunction({LogicalType::ANY}, LogicalTypeId::LIST, AggregateFunction::StateSize<ListAggState>,
185
+ AggregateFunction::StateInitialize<ListAggState, ListFunction>, ListUpdateFunction,
186
+ ListCombineFunction, ListFinalize, nullptr, ListBindFunction,
187
+ AggregateFunction::StateDestroy<ListAggState, ListFunction>, nullptr, nullptr);
192
188
  }
193
189
 
194
190
  } // namespace duckdb
@@ -1,6 +1,6 @@
1
1
  #include "duckdb/common/exception.hpp"
2
2
  #include "duckdb/common/vector_operations/vector_operations.hpp"
3
- #include "duckdb/function/aggregate/regression_functions.hpp"
3
+ #include "duckdb/core_functions/aggregate/regression_functions.hpp"
4
4
  #include "duckdb/planner/expression/bound_aggregate_expression.hpp"
5
5
  #include "duckdb/function/function_set.hpp"
6
6
 
@@ -53,18 +53,14 @@ struct RegrAvgYFunction : RegrAvgFunction {
53
53
  }
54
54
  };
55
55
 
56
- void RegrAvgxFun::RegisterFunction(BuiltinFunctions &set) {
57
- AggregateFunctionSet corr("regr_avgx");
58
- corr.AddFunction(AggregateFunction::BinaryAggregate<RegrState, double, double, double, RegrAvgXFunction>(
59
- LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
60
- set.AddFunction(corr);
56
+ AggregateFunction RegrAvgxFun::GetFunction() {
57
+ return AggregateFunction::BinaryAggregate<RegrState, double, double, double, RegrAvgXFunction>(
58
+ LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
61
59
  }
62
60
 
63
- void RegrAvgyFun::RegisterFunction(BuiltinFunctions &set) {
64
- AggregateFunctionSet corr("regr_avgy");
65
- corr.AddFunction(AggregateFunction::BinaryAggregate<RegrState, double, double, double, RegrAvgYFunction>(
66
- LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
67
- set.AddFunction(corr);
61
+ AggregateFunction RegrAvgyFun::GetFunction() {
62
+ return AggregateFunction::BinaryAggregate<RegrState, double, double, double, RegrAvgYFunction>(
63
+ LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
68
64
  }
69
65
 
70
66
  } // namespace duckdb
@@ -1,18 +1,18 @@
1
1
  #include "duckdb/common/exception.hpp"
2
2
  #include "duckdb/common/vector_operations/vector_operations.hpp"
3
- #include "duckdb/function/aggregate/regression_functions.hpp"
3
+ #include "duckdb/core_functions/aggregate/regression_functions.hpp"
4
4
  #include "duckdb/planner/expression/bound_aggregate_expression.hpp"
5
- #include "duckdb/function/aggregate/regression/regr_count.hpp"
5
+ #include "duckdb/core_functions/aggregate/regression/regr_count.hpp"
6
6
  #include "duckdb/function/function_set.hpp"
7
7
 
8
8
  namespace duckdb {
9
9
 
10
- void RegrCountFun::RegisterFunction(BuiltinFunctions &set) {
10
+ AggregateFunction RegrCountFun::GetFunction() {
11
11
  auto regr_count = AggregateFunction::BinaryAggregate<size_t, double, double, uint32_t, RegrCountFunction>(
12
12
  LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::UINTEGER);
13
13
  regr_count.name = "regr_count";
14
14
  regr_count.null_handling = FunctionNullHandling::SPECIAL_HANDLING;
15
- set.AddFunction(regr_count);
15
+ return regr_count;
16
16
  }
17
17
 
18
18
  } // namespace duckdb
@@ -1,7 +1,7 @@
1
1
  //! AVG(y)-REGR_SLOPE(y,x)*AVG(x)
2
2
 
3
- #include "duckdb/function/aggregate/regression_functions.hpp"
4
- #include "duckdb/function/aggregate/regression/regr_slope.hpp"
3
+ #include "duckdb/core_functions/aggregate/regression_functions.hpp"
4
+ #include "duckdb/core_functions/aggregate/regression/regr_slope.hpp"
5
5
  #include "duckdb/function/function_set.hpp"
6
6
 
7
7
  namespace duckdb {
@@ -58,12 +58,9 @@ struct RegrInterceptOperation {
58
58
  }
59
59
  };
60
60
 
61
- void RegrInterceptFun::RegisterFunction(BuiltinFunctions &set) {
62
- AggregateFunctionSet fun("regr_intercept");
63
- fun.AddFunction(
64
- AggregateFunction::BinaryAggregate<RegrInterceptState, double, double, double, RegrInterceptOperation>(
65
- LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
66
- set.AddFunction(fun);
61
+ AggregateFunction RegrInterceptFun::GetFunction() {
62
+ return AggregateFunction::BinaryAggregate<RegrInterceptState, double, double, double, RegrInterceptOperation>(
63
+ LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
67
64
  }
68
65
 
69
66
  } // namespace duckdb
@@ -4,9 +4,9 @@
4
4
  // 1 if var_pop(y) = 0 and var_pop(x) <> 0, else
5
5
  // power(corr(y,x), 2)
6
6
 
7
- #include "duckdb/function/aggregate/algebraic/corr.hpp"
7
+ #include "duckdb/core_functions/aggregate/algebraic/corr.hpp"
8
8
  #include "duckdb/function/function_set.hpp"
9
- #include "duckdb/function/aggregate/regression_functions.hpp"
9
+ #include "duckdb/core_functions/aggregate/regression_functions.hpp"
10
10
 
11
11
  namespace duckdb {
12
12
  struct RegrR2State {
@@ -69,10 +69,8 @@ struct RegrR2Operation {
69
69
  }
70
70
  };
71
71
 
72
- void RegrR2Fun::RegisterFunction(BuiltinFunctions &set) {
73
- AggregateFunctionSet fun("regr_r2");
74
- fun.AddFunction(AggregateFunction::BinaryAggregate<RegrR2State, double, double, double, RegrR2Operation>(
75
- LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
76
- set.AddFunction(fun);
72
+ AggregateFunction RegrR2Fun::GetFunction() {
73
+ return AggregateFunction::BinaryAggregate<RegrR2State, double, double, double, RegrR2Operation>(
74
+ LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
77
75
  }
78
76
  } // namespace duckdb
@@ -6,17 +6,15 @@
6
6
  //! Input : Any numeric type
7
7
  //! Output : Double
8
8
 
9
- #include "duckdb/function/aggregate/regression/regr_slope.hpp"
9
+ #include "duckdb/core_functions/aggregate/regression/regr_slope.hpp"
10
10
  #include "duckdb/function/function_set.hpp"
11
- #include "duckdb/function/aggregate/regression_functions.hpp"
11
+ #include "duckdb/core_functions/aggregate/regression_functions.hpp"
12
12
 
13
13
  namespace duckdb {
14
14
 
15
- void RegrSlopeFun::RegisterFunction(BuiltinFunctions &set) {
16
- AggregateFunctionSet fun("regr_slope");
17
- fun.AddFunction(AggregateFunction::BinaryAggregate<RegrSlopeState, double, double, double, RegrSlopeOperation>(
18
- LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
19
- set.AddFunction(fun);
15
+ AggregateFunction RegrSlopeFun::GetFunction() {
16
+ return AggregateFunction::BinaryAggregate<RegrSlopeState, double, double, double, RegrSlopeOperation>(
17
+ LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
20
18
  }
21
19
 
22
20
  } // namespace duckdb
@@ -3,9 +3,9 @@
3
3
  // regrsyy
4
4
  // Returns REGR_COUNT(y, x) * VAR_POP(y) for non-null pairs.
5
5
 
6
- #include "duckdb/function/aggregate/regression/regr_count.hpp"
6
+ #include "duckdb/core_functions/aggregate/regression/regr_count.hpp"
7
7
  #include "duckdb/function/function_set.hpp"
8
- #include "duckdb/function/aggregate/regression_functions.hpp"
8
+ #include "duckdb/core_functions/aggregate/regression_functions.hpp"
9
9
 
10
10
  namespace duckdb {
11
11
 
@@ -67,18 +67,14 @@ struct RegrSYYOperation : RegrBaseOperation {
67
67
  }
68
68
  };
69
69
 
70
- void RegrSXXFun::RegisterFunction(BuiltinFunctions &set) {
71
- AggregateFunctionSet fun("regr_sxx");
72
- fun.AddFunction(AggregateFunction::BinaryAggregate<RegrSState, double, double, double, RegrSXXOperation>(
73
- LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
74
- set.AddFunction(fun);
70
+ AggregateFunction RegrSXXFun::GetFunction() {
71
+ return AggregateFunction::BinaryAggregate<RegrSState, double, double, double, RegrSXXOperation>(
72
+ LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
75
73
  }
76
74
 
77
- void RegrSYYFun::RegisterFunction(BuiltinFunctions &set) {
78
- AggregateFunctionSet fun("regr_syy");
79
- fun.AddFunction(AggregateFunction::BinaryAggregate<RegrSState, double, double, double, RegrSYYOperation>(
80
- LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
81
- set.AddFunction(fun);
75
+ AggregateFunction RegrSYYFun::GetFunction() {
76
+ return AggregateFunction::BinaryAggregate<RegrSState, double, double, double, RegrSYYOperation>(
77
+ LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
82
78
  }
83
79
 
84
80
  } // namespace duckdb
@@ -1,8 +1,8 @@
1
1
  // Returns REGR_COUNT(expr1, expr2) * COVAR_POP(expr1, expr2) for non-null pairs.
2
2
 
3
- #include "duckdb/function/aggregate/regression/regr_count.hpp"
4
- #include "duckdb/function/aggregate/algebraic/covar.hpp"
5
- #include "duckdb/function/aggregate/regression_functions.hpp"
3
+ #include "duckdb/core_functions/aggregate/regression/regr_count.hpp"
4
+ #include "duckdb/core_functions/aggregate/algebraic/covar.hpp"
5
+ #include "duckdb/core_functions/aggregate/regression_functions.hpp"
6
6
  #include "duckdb/function/function_set.hpp"
7
7
 
8
8
  namespace duckdb {
@@ -48,11 +48,9 @@ struct RegrSXYOperation {
48
48
  }
49
49
  };
50
50
 
51
- void RegrSXYFun::RegisterFunction(BuiltinFunctions &set) {
52
- AggregateFunctionSet fun("regr_sxy");
53
- fun.AddFunction(AggregateFunction::BinaryAggregate<RegrSXyState, double, double, double, RegrSXYOperation>(
54
- LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
55
- set.AddFunction(fun);
51
+ AggregateFunction RegrSXYFun::GetFunction() {
52
+ return AggregateFunction::BinaryAggregate<RegrSXyState, double, double, double, RegrSXYOperation>(
53
+ LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
56
54
  }
57
55
 
58
56
  } // namespace duckdb
@@ -0,0 +1,50 @@
1
+ #include "duckdb/core_functions/core_functions.hpp"
2
+ #include "duckdb/core_functions/function_list.hpp"
3
+ #include "duckdb/parser/parsed_data/create_aggregate_function_info.hpp"
4
+ #include "duckdb/parser/parsed_data/create_scalar_function_info.hpp"
5
+
6
+ namespace duckdb {
7
+
8
+ template <class T>
9
+ void FillExtraInfo(StaticFunctionDefinition &function, T &info) {
10
+ info.internal = true;
11
+ info.description = function.description;
12
+ info.parameter_names = StringUtil::Split(function.parameters, ",");
13
+ info.example = function.example;
14
+ }
15
+
16
+ void CoreFunctions::RegisterFunctions(Catalog &catalog, CatalogTransaction transaction) {
17
+ auto functions = StaticFunctionDefinition::GetFunctionList();
18
+ for (idx_t i = 0; functions[i].name; i++) {
19
+ auto &function = functions[i];
20
+ if (function.get_function || function.get_function_set) {
21
+ // scalar function
22
+ ScalarFunctionSet result;
23
+ if (function.get_function) {
24
+ result.AddFunction(function.get_function());
25
+ } else {
26
+ result = function.get_function_set();
27
+ }
28
+ result.name = function.name;
29
+ CreateScalarFunctionInfo info(result);
30
+ FillExtraInfo(function, info);
31
+ catalog.CreateFunction(transaction, info);
32
+ } else if (function.get_aggregate_function || function.get_aggregate_function_set) {
33
+ // aggregate function
34
+ AggregateFunctionSet result;
35
+ if (function.get_aggregate_function) {
36
+ result.AddFunction(function.get_aggregate_function());
37
+ } else {
38
+ result = function.get_aggregate_function_set();
39
+ }
40
+ result.name = function.name;
41
+ CreateAggregateFunctionInfo info(result);
42
+ FillExtraInfo(function, info);
43
+ catalog.CreateFunction(transaction, info);
44
+ } else {
45
+ throw InternalException("Do not know how to register function of this type");
46
+ }
47
+ }
48
+ }
49
+
50
+ } // namespace duckdb