duckdb 0.7.2-dev2740.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 (260) 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/src/catalog/catalog_entry/pragma_function_catalog_entry.cpp +1 -2
  25. package/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp +1 -1
  26. package/src/duckdb/src/catalog/catalog_entry/scalar_macro_catalog_entry.cpp +2 -2
  27. package/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp +1 -2
  28. package/src/duckdb/src/catalog/catalog_transaction.cpp +4 -0
  29. package/src/duckdb/src/catalog/duck_catalog.cpp +8 -1
  30. package/src/duckdb/src/common/enums/date_part_specifier.cpp +82 -0
  31. package/src/duckdb/src/common/types/vector.cpp +136 -3
  32. package/src/duckdb/src/{function → core_functions}/aggregate/algebraic/avg.cpp +9 -12
  33. package/src/duckdb/src/core_functions/aggregate/algebraic/corr.cpp +13 -0
  34. package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +21 -0
  35. package/src/duckdb/src/core_functions/aggregate/algebraic/stddev.cpp +34 -0
  36. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/approx_count.cpp +3 -3
  37. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/arg_min_max.cpp +7 -23
  38. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bitagg.cpp +10 -10
  39. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bitstring_agg.cpp +4 -4
  40. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bool.cpp +1 -17
  41. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/entropy.cpp +5 -4
  42. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/kurtosis.cpp +5 -6
  43. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/minmax.cpp +5 -5
  44. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/product.cpp +2 -11
  45. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/skew.cpp +5 -6
  46. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/string_agg.cpp +4 -6
  47. package/src/duckdb/src/{function → core_functions}/aggregate/distributive/sum.cpp +38 -46
  48. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/approximate_quantile.cpp +4 -5
  49. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/mode.cpp +4 -5
  50. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/quantile.cpp +31 -23
  51. package/src/duckdb/src/{function → core_functions}/aggregate/holistic/reservoir_quantile.cpp +4 -5
  52. package/src/duckdb/src/{function → core_functions}/aggregate/nested/histogram.cpp +4 -4
  53. package/src/duckdb/src/{function → core_functions}/aggregate/nested/list.cpp +6 -10
  54. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_avg.cpp +7 -11
  55. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_count.cpp +4 -4
  56. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_intercept.cpp +5 -8
  57. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_r2.cpp +5 -7
  58. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_slope.cpp +5 -7
  59. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_sxx_syy.cpp +8 -12
  60. package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_sxy.cpp +6 -8
  61. package/src/duckdb/src/core_functions/core_functions.cpp +50 -0
  62. package/src/duckdb/src/core_functions/function_list.cpp +352 -0
  63. package/src/duckdb/src/{function → core_functions}/scalar/bit/bitstring.cpp +12 -15
  64. package/src/duckdb/src/{function → core_functions}/scalar/blob/base64.cpp +6 -6
  65. package/src/duckdb/src/{function → core_functions}/scalar/blob/encode.cpp +7 -6
  66. package/src/duckdb/src/{function → core_functions}/scalar/date/age.cpp +3 -3
  67. package/src/duckdb/src/{function → core_functions}/scalar/date/current.cpp +8 -8
  68. package/src/duckdb/src/{function → core_functions}/scalar/date/date_diff.cpp +3 -6
  69. package/src/duckdb/src/{function → core_functions}/scalar/date/date_part.cpp +144 -148
  70. package/src/duckdb/src/{function → core_functions}/scalar/date/date_sub.cpp +3 -6
  71. package/src/duckdb/src/{function → core_functions}/scalar/date/date_trunc.cpp +3 -6
  72. package/src/duckdb/src/{function → core_functions}/scalar/date/epoch.cpp +7 -8
  73. package/src/duckdb/src/{function → core_functions}/scalar/date/make_date.cpp +14 -14
  74. package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +251 -0
  75. package/src/duckdb/src/{function → core_functions}/scalar/date/time_bucket.cpp +4 -5
  76. package/src/duckdb/src/{function → core_functions}/scalar/date/to_interval.cpp +39 -19
  77. package/src/duckdb/src/{function/scalar/enum/enum_functions_implementation.cpp → core_functions/scalar/enum/enum_functions.cpp} +18 -22
  78. package/src/duckdb/src/{function → core_functions}/scalar/generic/alias.cpp +4 -4
  79. package/src/duckdb/src/{function → core_functions}/scalar/generic/current_setting.cpp +4 -5
  80. package/src/duckdb/src/{function → core_functions}/scalar/generic/error.cpp +4 -4
  81. package/src/duckdb/src/{function → core_functions}/scalar/generic/hash.cpp +4 -4
  82. package/src/duckdb/src/{function → core_functions}/scalar/generic/least.cpp +8 -9
  83. package/src/duckdb/src/{function → core_functions}/scalar/generic/stats.cpp +4 -4
  84. package/src/duckdb/src/{function/scalar/system → core_functions/scalar/generic}/system_functions.cpp +24 -13
  85. package/src/duckdb/src/{function → core_functions}/scalar/generic/typeof.cpp +4 -4
  86. package/src/duckdb/src/{function → core_functions}/scalar/list/array_slice.cpp +3 -13
  87. package/src/duckdb/src/{function → core_functions}/scalar/list/flatten.cpp +5 -5
  88. package/src/duckdb/src/{function → core_functions}/scalar/list/list_aggregates.cpp +2 -13
  89. package/src/duckdb/src/{function → core_functions}/scalar/list/list_lambdas.cpp +9 -24
  90. package/src/duckdb/src/{function → core_functions}/scalar/list/list_sort.cpp +8 -22
  91. package/src/duckdb/src/{function → core_functions}/scalar/list/list_value.cpp +4 -5
  92. package/src/duckdb/src/{function → core_functions}/scalar/list/range.cpp +8 -6
  93. package/src/duckdb/src/{function → core_functions}/scalar/map/cardinality.cpp +5 -4
  94. package/src/duckdb/src/{function → core_functions}/scalar/map/map.cpp +6 -63
  95. package/src/duckdb/src/{function → core_functions}/scalar/map/map_entries.cpp +5 -4
  96. package/src/duckdb/src/{function → core_functions}/scalar/map/map_extract.cpp +22 -7
  97. package/src/duckdb/src/{function → core_functions}/scalar/map/map_from_entries.cpp +6 -5
  98. package/src/duckdb/src/{function → core_functions}/scalar/map/map_keys_values.cpp +8 -7
  99. package/src/duckdb/src/{function → core_functions}/scalar/math/numeric.cpp +110 -138
  100. package/src/duckdb/src/{function → core_functions}/scalar/operators/bitwise.cpp +19 -20
  101. package/src/duckdb/src/{function/scalar/math → core_functions/scalar/random}/random.cpp +5 -6
  102. package/src/duckdb/src/{function/scalar/math → core_functions/scalar/random}/setseed.cpp +3 -3
  103. package/src/duckdb/src/{function → core_functions}/scalar/string/ascii.cpp +4 -5
  104. package/src/duckdb/src/{function → core_functions}/scalar/string/bar.cpp +4 -4
  105. package/src/duckdb/src/{function → core_functions}/scalar/string/chr.cpp +5 -6
  106. package/src/duckdb/src/{function → core_functions}/scalar/string/damerau_levenshtein.cpp +4 -6
  107. package/src/duckdb/src/{function/scalar/string/mismatches.cpp → core_functions/scalar/string/hamming.cpp} +3 -12
  108. package/src/duckdb/src/{function → core_functions}/scalar/string/hex.cpp +15 -25
  109. package/src/duckdb/src/{function → core_functions}/scalar/string/instr.cpp +6 -13
  110. package/src/duckdb/src/{function → core_functions}/scalar/string/jaccard.cpp +3 -6
  111. package/src/duckdb/src/{function → core_functions}/scalar/string/jaro_winkler.cpp +7 -6
  112. package/src/duckdb/src/{function → core_functions}/scalar/string/left_right.cpp +18 -11
  113. package/src/duckdb/src/{function → core_functions}/scalar/string/levenshtein.cpp +3 -12
  114. package/src/duckdb/src/{function → core_functions}/scalar/string/md5.cpp +15 -21
  115. package/src/duckdb/src/{function → core_functions}/scalar/string/pad.cpp +7 -13
  116. package/src/duckdb/src/{function → core_functions}/scalar/string/printf.cpp +10 -10
  117. package/src/duckdb/src/{function → core_functions}/scalar/string/repeat.cpp +3 -6
  118. package/src/duckdb/src/{function → core_functions}/scalar/string/replace.cpp +4 -7
  119. package/src/duckdb/src/{function → core_functions}/scalar/string/reverse.cpp +3 -3
  120. package/src/duckdb/src/{function → core_functions}/scalar/string/starts_with.cpp +4 -8
  121. package/src/duckdb/src/{function → core_functions}/scalar/string/string_split.cpp +11 -11
  122. package/src/duckdb/src/{function → core_functions}/scalar/string/translate.cpp +4 -7
  123. package/src/duckdb/src/{function → core_functions}/scalar/string/trim.cpp +19 -14
  124. package/src/duckdb/src/core_functions/scalar/string/unicode.cpp +28 -0
  125. package/src/duckdb/src/{function → core_functions}/scalar/struct/struct_insert.cpp +4 -4
  126. package/src/duckdb/src/{function → core_functions}/scalar/struct/struct_pack.cpp +3 -4
  127. package/src/duckdb/src/{function → core_functions}/scalar/union/union_extract.cpp +4 -8
  128. package/src/duckdb/src/{function → core_functions}/scalar/union/union_tag.cpp +4 -8
  129. package/src/duckdb/src/{function → core_functions}/scalar/union/union_value.cpp +4 -59
  130. package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +1 -1
  131. package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +1 -1
  132. package/src/duckdb/src/execution/operator/persistent/parallel_csv_reader.cpp +1 -1
  133. package/src/duckdb/src/function/aggregate/distributive_functions.cpp +0 -17
  134. package/src/duckdb/src/function/cast/string_cast.cpp +1 -1
  135. package/src/duckdb/src/function/function.cpp +0 -8
  136. package/src/duckdb/src/function/function_set.cpp +25 -0
  137. package/src/duckdb/src/function/scalar/generic_functions.cpp +1 -9
  138. package/src/duckdb/src/function/scalar/nested_functions.cpp +0 -22
  139. package/src/duckdb/src/function/scalar/operators.cpp +0 -6
  140. package/src/duckdb/src/function/scalar/{date/strftime.cpp → strftime_format.cpp} +1 -249
  141. package/src/duckdb/src/function/scalar/string/length.cpp +0 -19
  142. package/src/duckdb/src/function/scalar/string_functions.cpp +0 -40
  143. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +5 -0
  144. package/src/duckdb/src/function/table/arrow_conversion.cpp +1 -1
  145. package/src/duckdb/src/function/table/system/duckdb_functions.cpp +27 -40
  146. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  147. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp +3 -3
  148. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/function_entry.hpp +33 -0
  149. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/macro_catalog_entry.hpp +2 -2
  150. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp +2 -2
  151. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp +2 -2
  152. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +2 -2
  153. package/src/duckdb/src/include/duckdb/catalog/catalog_transaction.hpp +2 -0
  154. package/src/duckdb/src/include/duckdb/common/algorithm.hpp +1 -0
  155. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +11 -1
  156. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/corr.hpp +3 -4
  157. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/covar.hpp +1 -1
  158. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/stddev.hpp +1 -1
  159. package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic_functions.hpp +124 -0
  160. package/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp +229 -0
  161. package/src/duckdb/src/include/duckdb/core_functions/aggregate/holistic_functions.hpp +85 -0
  162. package/src/duckdb/src/include/duckdb/core_functions/aggregate/nested_functions.hpp +41 -0
  163. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/regression/regr_count.hpp +3 -4
  164. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/regression/regr_slope.hpp +2 -2
  165. package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression_functions.hpp +97 -0
  166. package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/sum_helpers.hpp +1 -1
  167. package/src/duckdb/src/include/duckdb/{function/scalar/uuid_functions.hpp → core_functions/core_functions.hpp} +7 -5
  168. package/src/duckdb/src/include/duckdb/core_functions/function_list.hpp +33 -0
  169. package/src/duckdb/src/include/duckdb/core_functions/scalar/bit_functions.hpp +52 -0
  170. package/src/duckdb/src/include/duckdb/core_functions/scalar/blob_functions.hpp +58 -0
  171. package/src/duckdb/src/include/duckdb/core_functions/scalar/date_functions.hpp +544 -0
  172. package/src/duckdb/src/include/duckdb/core_functions/scalar/enum_functions.hpp +61 -0
  173. package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +142 -0
  174. package/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp +220 -0
  175. package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +85 -0
  176. package/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp +394 -0
  177. package/src/duckdb/src/include/duckdb/core_functions/scalar/operators_functions.hpp +70 -0
  178. package/src/duckdb/src/include/duckdb/core_functions/scalar/random_functions.hpp +49 -0
  179. package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +439 -0
  180. package/src/duckdb/src/include/duckdb/core_functions/scalar/struct_functions.hpp +40 -0
  181. package/src/duckdb/src/include/duckdb/core_functions/scalar/union_functions.hpp +43 -0
  182. package/src/duckdb/src/include/duckdb/execution/operator/persistent/base_csv_reader.hpp +1 -1
  183. package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_reader_options.hpp +1 -1
  184. package/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp +0 -85
  185. package/src/duckdb/src/include/duckdb/function/built_in_functions.hpp +0 -8
  186. package/src/duckdb/src/include/duckdb/function/function_set.hpp +7 -2
  187. package/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp +1 -36
  188. package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +0 -120
  189. package/src/duckdb/src/include/duckdb/function/scalar/operators.hpp +0 -24
  190. package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +1 -97
  191. package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +1 -1
  192. package/src/duckdb/src/include/duckdb/main/extension_util.hpp +48 -0
  193. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +6 -0
  194. package/src/duckdb/src/main/extension/extension_helper.cpp +1 -0
  195. package/src/duckdb/src/main/extension/extension_load.cpp +48 -4
  196. package/src/duckdb/src/main/extension/extension_util.cpp +90 -0
  197. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +6 -7
  198. package/src/duckdb/ub_src_common_enums.cpp +2 -0
  199. package/src/duckdb/ub_src_core_functions.cpp +4 -0
  200. package/src/duckdb/ub_src_core_functions_aggregate_algebraic.cpp +8 -0
  201. package/src/duckdb/ub_src_core_functions_aggregate_distributive.cpp +24 -0
  202. package/src/duckdb/ub_src_core_functions_aggregate_holistic.cpp +8 -0
  203. package/src/duckdb/ub_src_core_functions_aggregate_nested.cpp +4 -0
  204. package/src/duckdb/ub_src_core_functions_aggregate_regression.cpp +14 -0
  205. package/src/duckdb/ub_src_core_functions_scalar_bit.cpp +2 -0
  206. package/src/duckdb/ub_src_core_functions_scalar_blob.cpp +4 -0
  207. package/src/duckdb/ub_src_core_functions_scalar_date.cpp +22 -0
  208. package/src/duckdb/ub_src_core_functions_scalar_enum.cpp +2 -0
  209. package/src/duckdb/ub_src_core_functions_scalar_generic.cpp +16 -0
  210. package/src/duckdb/ub_src_core_functions_scalar_list.cpp +14 -0
  211. package/src/duckdb/ub_src_core_functions_scalar_map.cpp +12 -0
  212. package/src/duckdb/ub_src_core_functions_scalar_math.cpp +2 -0
  213. package/src/duckdb/ub_src_core_functions_scalar_operators.cpp +2 -0
  214. package/src/duckdb/ub_src_core_functions_scalar_random.cpp +4 -0
  215. package/src/duckdb/ub_src_core_functions_scalar_string.cpp +44 -0
  216. package/src/duckdb/ub_src_core_functions_scalar_struct.cpp +4 -0
  217. package/src/duckdb/ub_src_core_functions_scalar_union.cpp +6 -0
  218. package/src/duckdb/ub_src_function_aggregate.cpp +0 -8
  219. package/src/duckdb/ub_src_function_aggregate_distributive.cpp +0 -24
  220. package/src/duckdb/ub_src_function_scalar.cpp +2 -8
  221. package/src/duckdb/ub_src_function_scalar_generic.cpp +0 -14
  222. package/src/duckdb/ub_src_function_scalar_list.cpp +0 -14
  223. package/src/duckdb/ub_src_function_scalar_operators.cpp +0 -2
  224. package/src/duckdb/ub_src_function_scalar_string.cpp +0 -42
  225. package/src/duckdb/ub_src_function_scalar_struct.cpp +0 -4
  226. package/src/duckdb/ub_src_function_scalar_system.cpp +0 -2
  227. package/src/duckdb/ub_src_main_extension.cpp +2 -0
  228. package/src/duckdb/src/function/aggregate/algebraic/corr.cpp +0 -14
  229. package/src/duckdb/src/function/aggregate/algebraic/covar.cpp +0 -25
  230. package/src/duckdb/src/function/aggregate/algebraic/stddev.cpp +0 -54
  231. package/src/duckdb/src/function/aggregate/algebraic_functions.cpp +0 -21
  232. package/src/duckdb/src/function/aggregate/holistic_functions.cpp +0 -12
  233. package/src/duckdb/src/function/aggregate/nested_functions.cpp +0 -10
  234. package/src/duckdb/src/function/aggregate/regression_functions.cpp +0 -21
  235. package/src/duckdb/src/function/scalar/date_functions.cpp +0 -22
  236. package/src/duckdb/src/function/scalar/enum_functions.cpp +0 -13
  237. package/src/duckdb/src/function/scalar/math_functions.cpp +0 -50
  238. package/src/duckdb/src/function/scalar/trigonometrics_functions.cpp +0 -18
  239. package/src/duckdb/src/include/duckdb/function/aggregate/algebraic_functions.hpp +0 -56
  240. package/src/duckdb/src/include/duckdb/function/aggregate/holistic_functions.hpp +0 -33
  241. package/src/duckdb/src/include/duckdb/function/aggregate/nested_functions.hpp +0 -26
  242. package/src/duckdb/src/include/duckdb/function/aggregate/regression_functions.hpp +0 -53
  243. package/src/duckdb/src/include/duckdb/function/scalar/bit_functions.hpp +0 -32
  244. package/src/duckdb/src/include/duckdb/function/scalar/blob_functions.hpp +0 -24
  245. package/src/duckdb/src/include/duckdb/function/scalar/date_functions.hpp +0 -73
  246. package/src/duckdb/src/include/duckdb/function/scalar/enum_functions.hpp +0 -37
  247. package/src/duckdb/src/include/duckdb/function/scalar/math_functions.hpp +0 -137
  248. package/src/duckdb/src/include/duckdb/function/scalar/trigonometric_functions.hpp +0 -49
  249. package/src/duckdb/ub_src_function_aggregate_algebraic.cpp +0 -8
  250. package/src/duckdb/ub_src_function_aggregate_holistic.cpp +0 -8
  251. package/src/duckdb/ub_src_function_aggregate_nested.cpp +0 -4
  252. package/src/duckdb/ub_src_function_aggregate_regression.cpp +0 -14
  253. package/src/duckdb/ub_src_function_scalar_bit.cpp +0 -2
  254. package/src/duckdb/ub_src_function_scalar_blob.cpp +0 -4
  255. package/src/duckdb/ub_src_function_scalar_date.cpp +0 -22
  256. package/src/duckdb/ub_src_function_scalar_enum.cpp +0 -2
  257. package/src/duckdb/ub_src_function_scalar_map.cpp +0 -12
  258. package/src/duckdb/ub_src_function_scalar_math.cpp +0 -6
  259. package/src/duckdb/ub_src_function_scalar_union.cpp +0 -6
  260. /package/src/duckdb/src/include/duckdb/function/scalar/{strftime.hpp → strftime_format.hpp} +0 -0
@@ -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