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,7 +1,6 @@
1
- #include "duckdb/function/scalar/operators.hpp"
1
+ #include "duckdb/core_functions/scalar/operators_functions.hpp"
2
2
  #include "duckdb/common/vector_operations/vector_operations.hpp"
3
3
  #include "duckdb/common/types/cast_helpers.hpp"
4
- #include "duckdb/function/scalar/bit_functions.hpp"
5
4
  #include "duckdb/common/types/bit.hpp"
6
5
 
7
6
  namespace duckdb {
@@ -100,14 +99,14 @@ static void BitwiseANDOperation(DataChunk &args, ExpressionState &state, Vector
100
99
  });
101
100
  }
102
101
 
103
- void BitwiseAndFun::RegisterFunction(BuiltinFunctions &set) {
104
- ScalarFunctionSet functions("&");
102
+ ScalarFunctionSet BitwiseAndFun::GetFunctions() {
103
+ ScalarFunctionSet functions;
105
104
  for (auto &type : LogicalType::Integral()) {
106
105
  functions.AddFunction(
107
106
  ScalarFunction({type, type}, type, GetScalarIntegerBinaryFunction<BitwiseANDOperator>(type)));
108
107
  }
109
108
  functions.AddFunction(ScalarFunction({LogicalType::BIT, LogicalType::BIT}, LogicalType::BIT, BitwiseANDOperation));
110
- set.AddFunction(functions);
109
+ return functions;
111
110
  }
112
111
 
113
112
  //===--------------------------------------------------------------------===//
@@ -130,14 +129,14 @@ static void BitwiseOROperation(DataChunk &args, ExpressionState &state, Vector &
130
129
  });
131
130
  }
132
131
 
133
- void BitwiseOrFun::RegisterFunction(BuiltinFunctions &set) {
134
- ScalarFunctionSet functions("|");
132
+ ScalarFunctionSet BitwiseOrFun::GetFunctions() {
133
+ ScalarFunctionSet functions;
135
134
  for (auto &type : LogicalType::Integral()) {
136
135
  functions.AddFunction(
137
136
  ScalarFunction({type, type}, type, GetScalarIntegerBinaryFunction<BitwiseOROperator>(type)));
138
137
  }
139
138
  functions.AddFunction(ScalarFunction({LogicalType::BIT, LogicalType::BIT}, LogicalType::BIT, BitwiseOROperation));
140
- set.AddFunction(functions);
139
+ return functions;
141
140
  }
142
141
 
143
142
  //===--------------------------------------------------------------------===//
@@ -160,14 +159,14 @@ static void BitwiseXOROperation(DataChunk &args, ExpressionState &state, Vector
160
159
  });
161
160
  }
162
161
 
163
- void BitwiseXorFun::RegisterFunction(BuiltinFunctions &set) {
164
- ScalarFunctionSet functions("xor");
162
+ ScalarFunctionSet BitwiseXorFun::GetFunctions() {
163
+ ScalarFunctionSet functions;
165
164
  for (auto &type : LogicalType::Integral()) {
166
165
  functions.AddFunction(
167
166
  ScalarFunction({type, type}, type, GetScalarIntegerBinaryFunction<BitwiseXOROperator>(type)));
168
167
  }
169
168
  functions.AddFunction(ScalarFunction({LogicalType::BIT, LogicalType::BIT}, LogicalType::BIT, BitwiseXOROperation));
170
- set.AddFunction(functions);
169
+ return functions;
171
170
  }
172
171
 
173
172
  //===--------------------------------------------------------------------===//
@@ -189,13 +188,13 @@ static void BitwiseNOTOperation(DataChunk &args, ExpressionState &state, Vector
189
188
  });
190
189
  }
191
190
 
192
- void BitwiseNotFun::RegisterFunction(BuiltinFunctions &set) {
193
- ScalarFunctionSet functions("~");
191
+ ScalarFunctionSet BitwiseNotFun::GetFunctions() {
192
+ ScalarFunctionSet functions;
194
193
  for (auto &type : LogicalType::Integral()) {
195
194
  functions.AddFunction(ScalarFunction({type}, type, GetScalarIntegerUnaryFunction<BitwiseNotOperator>(type)));
196
195
  }
197
196
  functions.AddFunction(ScalarFunction({LogicalType::BIT}, LogicalType::BIT, BitwiseNOTOperation));
198
- set.AddFunction(functions);
197
+ return functions;
199
198
  }
200
199
 
201
200
  //===--------------------------------------------------------------------===//
@@ -251,15 +250,15 @@ static void BitwiseShiftLeftOperation(DataChunk &args, ExpressionState &state, V
251
250
  });
252
251
  }
253
252
 
254
- void LeftShiftFun::RegisterFunction(BuiltinFunctions &set) {
255
- ScalarFunctionSet functions("<<");
253
+ ScalarFunctionSet LeftShiftFun::GetFunctions() {
254
+ ScalarFunctionSet functions;
256
255
  for (auto &type : LogicalType::Integral()) {
257
256
  functions.AddFunction(
258
257
  ScalarFunction({type, type}, type, GetScalarIntegerBinaryFunction<BitwiseShiftLeftOperator>(type)));
259
258
  }
260
259
  functions.AddFunction(
261
260
  ScalarFunction({LogicalType::BIT, LogicalType::INTEGER}, LogicalType::BIT, BitwiseShiftLeftOperation));
262
- set.AddFunction(functions);
261
+ return functions;
263
262
  }
264
263
 
265
264
  //===--------------------------------------------------------------------===//
@@ -294,15 +293,15 @@ static void BitwiseShiftRightOperation(DataChunk &args, ExpressionState &state,
294
293
  });
295
294
  }
296
295
 
297
- void RightShiftFun::RegisterFunction(BuiltinFunctions &set) {
298
- ScalarFunctionSet functions(">>");
296
+ ScalarFunctionSet RightShiftFun::GetFunctions() {
297
+ ScalarFunctionSet functions;
299
298
  for (auto &type : LogicalType::Integral()) {
300
299
  functions.AddFunction(
301
300
  ScalarFunction({type, type}, type, GetScalarIntegerBinaryFunction<BitwiseShiftRightOperator>(type)));
302
301
  }
303
302
  functions.AddFunction(
304
303
  ScalarFunction({LogicalType::BIT, LogicalType::INTEGER}, LogicalType::BIT, BitwiseShiftRightOperation));
305
- set.AddFunction(functions);
304
+ return functions;
306
305
  }
307
306
 
308
307
  } // namespace duckdb
@@ -1,10 +1,9 @@
1
- #include "duckdb/function/scalar/math_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/random_functions.hpp"
2
2
  #include "duckdb/common/vector_operations/vector_operations.hpp"
3
3
  #include "duckdb/execution/expression_executor.hpp"
4
4
  #include "duckdb/main/client_context.hpp"
5
5
  #include "duckdb/planner/expression/bound_function_expression.hpp"
6
6
  #include "duckdb/common/random_engine.hpp"
7
- #include "duckdb/function/scalar/uuid_functions.hpp"
8
7
  #include "duckdb/common/types/uuid.hpp"
9
8
 
10
9
  namespace duckdb {
@@ -34,11 +33,11 @@ static unique_ptr<FunctionLocalState> RandomInitLocalState(ExpressionState &stat
34
33
  return make_uniq<RandomLocalState>(random_engine.NextRandomInteger());
35
34
  }
36
35
 
37
- void RandomFun::RegisterFunction(BuiltinFunctions &set) {
36
+ ScalarFunction RandomFun::GetFunction() {
38
37
  ScalarFunction random("random", {}, LogicalType::DOUBLE, RandomFunction, nullptr, nullptr, nullptr,
39
38
  RandomInitLocalState);
40
39
  random.side_effects = FunctionSideEffects::HAS_SIDE_EFFECTS;
41
- set.AddFunction(random);
40
+ return random;
42
41
  }
43
42
 
44
43
  static void GenerateUUIDFunction(DataChunk &args, ExpressionState &state, Vector &result) {
@@ -53,12 +52,12 @@ static void GenerateUUIDFunction(DataChunk &args, ExpressionState &state, Vector
53
52
  }
54
53
  }
55
54
 
56
- void UUIDFun::RegisterFunction(BuiltinFunctions &set) {
55
+ ScalarFunction UUIDFun::GetFunction() {
57
56
  ScalarFunction uuid_function({}, LogicalType::UUID, GenerateUUIDFunction, nullptr, nullptr, nullptr,
58
57
  RandomInitLocalState);
59
58
  // generate a random uuid
60
59
  uuid_function.side_effects = FunctionSideEffects::HAS_SIDE_EFFECTS;
61
- set.AddFunction({"uuid", "gen_random_uuid"}, uuid_function);
60
+ return uuid_function;
62
61
  }
63
62
 
64
63
  } // namespace duckdb
@@ -1,4 +1,4 @@
1
- #include "duckdb/function/scalar/math_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/random_functions.hpp"
2
2
  #include "duckdb/common/exception.hpp"
3
3
  #include "duckdb/common/vector_operations/vector_operations.hpp"
4
4
  #include "duckdb/execution/expression_executor.hpp"
@@ -52,10 +52,10 @@ unique_ptr<FunctionData> SetSeedBind(ClientContext &context, ScalarFunction &bou
52
52
  return make_uniq<SetseedBindData>(context);
53
53
  }
54
54
 
55
- void SetseedFun::RegisterFunction(BuiltinFunctions &set) {
55
+ ScalarFunction SetseedFun::GetFunction() {
56
56
  ScalarFunction setseed("setseed", {LogicalType::DOUBLE}, LogicalType::SQLNULL, SetSeedFunction, SetSeedBind);
57
57
  setseed.side_effects = FunctionSideEffects::HAS_SIDE_EFFECTS;
58
- set.AddFunction(setseed);
58
+ return setseed;
59
59
  }
60
60
 
61
61
  } // namespace duckdb
@@ -1,4 +1,4 @@
1
- #include "duckdb/function/scalar/string_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
2
2
  #include "utf8proc.hpp"
3
3
  #include "utf8proc_wrapper.hpp"
4
4
 
@@ -16,10 +16,9 @@ struct AsciiOperator {
16
16
  }
17
17
  };
18
18
 
19
- void ASCII::RegisterFunction(BuiltinFunctions &set) {
20
- ScalarFunction ascii("ascii", {LogicalType::VARCHAR}, LogicalType::INTEGER,
21
- ScalarFunction::UnaryFunction<string_t, int32_t, AsciiOperator>);
22
- set.AddFunction(ascii);
19
+ ScalarFunction ASCIIFun::GetFunction() {
20
+ return ScalarFunction({LogicalType::VARCHAR}, LogicalType::INTEGER,
21
+ ScalarFunction::UnaryFunction<string_t, int32_t, AsciiOperator>);
23
22
  }
24
23
 
25
24
  } // namespace duckdb
@@ -1,3 +1,4 @@
1
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
1
2
  #include "duckdb/common/exception.hpp"
2
3
  #include "duckdb/common/operator/cast_operators.hpp"
3
4
  #include "duckdb/common/types/string_type.hpp"
@@ -5,7 +6,6 @@
5
6
  #include "duckdb/common/types/vector.hpp"
6
7
  #include "duckdb/common/unicode_bar.hpp"
7
8
  #include "duckdb/common/vector_operations/generic_executor.hpp"
8
- #include "duckdb/function/scalar/string_functions.hpp"
9
9
 
10
10
  namespace duckdb {
11
11
 
@@ -81,13 +81,13 @@ static void BarFunction(DataChunk &args, ExpressionState &state, Vector &result)
81
81
  }
82
82
  }
83
83
 
84
- void BarFun::RegisterFunction(BuiltinFunctions &set) {
85
- ScalarFunctionSet bar("bar");
84
+ ScalarFunctionSet BarFun::GetFunctions() {
85
+ ScalarFunctionSet bar;
86
86
  bar.AddFunction(ScalarFunction({LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE},
87
87
  LogicalType::VARCHAR, BarFunction));
88
88
  bar.AddFunction(ScalarFunction({LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE},
89
89
  LogicalType::VARCHAR, BarFunction));
90
- set.AddFunction(bar);
90
+ return bar;
91
91
  }
92
92
 
93
93
  } // namespace duckdb
@@ -1,4 +1,4 @@
1
- #include "duckdb/function/scalar/string_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
2
2
  #include "utf8proc.hpp"
3
3
  #include "utf8proc_wrapper.hpp"
4
4
 
@@ -35,15 +35,14 @@ static void ChrFunction(DataChunk &args, ExpressionState &state, Vector &result)
35
35
  }
36
36
  #endif
37
37
 
38
- void CHR::RegisterFunction(BuiltinFunctions &set) {
39
- ScalarFunction chr("chr", {LogicalType::INTEGER}, LogicalType::VARCHAR,
38
+ ScalarFunction ChrFun::GetFunction() {
39
+ return ScalarFunction("chr", {LogicalType::INTEGER}, LogicalType::VARCHAR,
40
40
  #ifdef DUCKDB_DEBUG_NO_INLINE
41
- ChrFunction
41
+ ChrFunction
42
42
  #else
43
- ScalarFunction::UnaryFunction<int32_t, string_t, ChrOperator>
43
+ ScalarFunction::UnaryFunction<int32_t, string_t, ChrOperator>
44
44
  #endif
45
45
  );
46
- set.AddFunction(chr);
47
46
  }
48
47
 
49
48
  } // namespace duckdb
@@ -1,4 +1,4 @@
1
- #include "duckdb/function/scalar/string_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
2
2
  #include "duckdb/common/map.hpp"
3
3
  #include "duckdb/common/vector.hpp"
4
4
 
@@ -96,11 +96,9 @@ static void DamerauLevenshteinFunction(DataChunk &args, ExpressionState &state,
96
96
  [&](string_t source, string_t target) { return DamerauLevenshteinScalarFunction(result, source, target); });
97
97
  }
98
98
 
99
- void DamerauLevenshteinFun::RegisterFunction(BuiltinFunctions &set) {
100
- ScalarFunctionSet damerau_levenshtein("damerau_levenshtein");
101
- damerau_levenshtein.AddFunction(ScalarFunction("damerau_levenshtein", {LogicalType::VARCHAR, LogicalType::VARCHAR},
102
- LogicalType::BIGINT, DamerauLevenshteinFunction));
103
- set.AddFunction(damerau_levenshtein);
99
+ ScalarFunction DamerauLevenshteinFun::GetFunction() {
100
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BIGINT,
101
+ DamerauLevenshteinFunction);
104
102
  }
105
103
 
106
104
  } // namespace duckdb
@@ -1,4 +1,4 @@
1
- #include "duckdb/function/scalar/string_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
2
2
  #include "duckdb/common/vector_operations/vector_operations.hpp"
3
3
 
4
4
  #include <ctype.h>
@@ -38,17 +38,8 @@ static void MismatchesFunction(DataChunk &args, ExpressionState &state, Vector &
38
38
  [&](string_t str, string_t tgt) { return MismatchesScalarFunction(result, str, tgt); });
39
39
  }
40
40
 
41
- void MismatchesFun::RegisterFunction(BuiltinFunctions &set) {
42
- ScalarFunctionSet mismatches("mismatches");
43
- mismatches.AddFunction(ScalarFunction("mismatches", {LogicalType::VARCHAR, LogicalType::VARCHAR},
44
- LogicalType::BIGINT,
45
- MismatchesFunction)); // Pointer to function implementation
46
- set.AddFunction(mismatches);
47
-
48
- ScalarFunctionSet hamming("hamming");
49
- hamming.AddFunction(ScalarFunction("mismatches", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BIGINT,
50
- MismatchesFunction)); // Pointer to function implementation
51
- set.AddFunction(hamming);
41
+ ScalarFunction HammingFun::GetFunction() {
42
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BIGINT, MismatchesFunction);
52
43
  }
53
44
 
54
45
  } // namespace duckdb
@@ -4,7 +4,8 @@
4
4
  #include "duckdb/common/types/blob.hpp"
5
5
  #include "duckdb/common/vector_operations/unary_executor.hpp"
6
6
  #include "duckdb/common/vector_operations/vector_operations.hpp"
7
- #include "duckdb/function/scalar/string_functions.hpp"
7
+ #include "duckdb/planner/expression/bound_function_expression.hpp"
8
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
8
9
 
9
10
  namespace duckdb {
10
11
 
@@ -332,10 +333,8 @@ static void FromHexFunction(DataChunk &args, ExpressionState &state, Vector &res
332
333
  UnaryExecutor::ExecuteString<string_t, string_t, FromHexOperator>(input, result, count);
333
334
  }
334
335
 
335
- void HexFun::RegisterFunction(BuiltinFunctions &set) {
336
- ScalarFunctionSet to_hex("to_hex");
337
- ScalarFunctionSet from_hex("from_hex");
338
-
336
+ ScalarFunctionSet HexFun::GetFunctions() {
337
+ ScalarFunctionSet to_hex;
339
338
  to_hex.AddFunction(
340
339
  ScalarFunction({LogicalType::VARCHAR}, LogicalType::VARCHAR, ToHexFunction<string_t, HexStrOperator>));
341
340
 
@@ -347,20 +346,16 @@ void HexFun::RegisterFunction(BuiltinFunctions &set) {
347
346
 
348
347
  to_hex.AddFunction(
349
348
  ScalarFunction({LogicalType::HUGEINT}, LogicalType::VARCHAR, ToHexFunction<hugeint_t, HexHugeIntOperator>));
349
+ return to_hex;
350
+ }
350
351
 
351
- from_hex.AddFunction(ScalarFunction({LogicalType::VARCHAR}, LogicalType::BLOB, FromHexFunction));
352
-
353
- set.AddFunction(to_hex);
354
- set.AddFunction(from_hex);
352
+ ScalarFunction UnhexFun::GetFunction() {
353
+ return ScalarFunction({LogicalType::VARCHAR}, LogicalType::BLOB, FromHexFunction);
354
+ }
355
355
 
356
- // mysql
357
- to_hex.name = "hex";
358
- from_hex.name = "unhex";
359
- set.AddFunction(to_hex);
360
- set.AddFunction(from_hex);
356
+ ScalarFunctionSet BinFun::GetFunctions() {
357
+ ScalarFunctionSet to_binary;
361
358
 
362
- ScalarFunctionSet to_binary("to_binary");
363
- ScalarFunctionSet from_binary("from_binary");
364
359
  to_binary.AddFunction(
365
360
  ScalarFunction({LogicalType::VARCHAR}, LogicalType::VARCHAR, ToBinaryFunction<string_t, BinaryStrOperator>));
366
361
  to_binary.AddFunction(ScalarFunction({LogicalType::UBIGINT}, LogicalType::VARCHAR,
@@ -369,16 +364,11 @@ void HexFun::RegisterFunction(BuiltinFunctions &set) {
369
364
  ScalarFunction({LogicalType::BIGINT}, LogicalType::VARCHAR, ToBinaryFunction<int64_t, BinaryIntegralOperator>));
370
365
  to_binary.AddFunction(ScalarFunction({LogicalType::HUGEINT}, LogicalType::VARCHAR,
371
366
  ToBinaryFunction<hugeint_t, BinaryHugeIntOperator>));
367
+ return to_binary;
368
+ }
372
369
 
373
- from_binary.AddFunction(ScalarFunction({LogicalType::VARCHAR}, LogicalType::BLOB, FromBinaryFunction));
374
-
375
- set.AddFunction(to_binary);
376
- set.AddFunction(from_binary);
377
-
378
- to_binary.name = "bin";
379
- from_binary.name = "unbin";
380
- set.AddFunction(to_binary);
381
- set.AddFunction(from_binary);
370
+ ScalarFunction UnbinFun::GetFunction() {
371
+ return ScalarFunction({LogicalType::VARCHAR}, LogicalType::BLOB, FromBinaryFunction);
382
372
  }
383
373
 
384
374
  } // namespace duckdb
@@ -1,9 +1,9 @@
1
- #include "duckdb/function/scalar/string_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
2
2
 
3
3
  #include "duckdb/common/exception.hpp"
4
4
  #include "duckdb/common/vector_operations/vector_operations.hpp"
5
5
  #include "duckdb/planner/expression/bound_function_expression.hpp"
6
-
6
+ #include "duckdb/function/scalar/string_functions.hpp"
7
7
  #include "utf8proc.hpp"
8
8
 
9
9
  namespace duckdb {
@@ -49,17 +49,10 @@ static unique_ptr<BaseStatistics> InStrPropagateStats(ClientContext &context, Fu
49
49
  return nullptr;
50
50
  }
51
51
 
52
- void InstrFun::RegisterFunction(BuiltinFunctions &set) {
53
- ScalarFunction instr("instr", // name of the function
54
- {LogicalType::VARCHAR, LogicalType::VARCHAR}, // argument list
55
- LogicalType::BIGINT, // return type
56
- ScalarFunction::BinaryFunction<string_t, string_t, int64_t, InstrOperator>, nullptr, nullptr,
57
- InStrPropagateStats);
58
- set.AddFunction(instr);
59
- instr.name = "strpos";
60
- set.AddFunction(instr);
61
- instr.name = "position";
62
- set.AddFunction(instr);
52
+ ScalarFunction InstrFun::GetFunction() {
53
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BIGINT,
54
+ ScalarFunction::BinaryFunction<string_t, string_t, int64_t, InstrOperator>, nullptr, nullptr,
55
+ InStrPropagateStats);
63
56
  }
64
57
 
65
58
  } // namespace duckdb
@@ -1,4 +1,4 @@
1
- #include "duckdb/function/scalar/string_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
2
2
  #include "duckdb/common/vector_operations/vector_operations.hpp"
3
3
  #include "duckdb/common/map.hpp"
4
4
 
@@ -58,11 +58,8 @@ static void JaccardFunction(DataChunk &args, ExpressionState &state, Vector &res
58
58
  [&](string_t str, string_t tgt) { return JaccardScalarFunction(result, str, tgt); });
59
59
  }
60
60
 
61
- void JaccardFun::RegisterFunction(BuiltinFunctions &set) {
62
- ScalarFunctionSet jaccard("jaccard");
63
- jaccard.AddFunction(ScalarFunction("jaccard", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::DOUBLE,
64
- JaccardFunction)); // Pointer to function implementation
65
- set.AddFunction(jaccard);
61
+ ScalarFunction JaccardFun::GetFunction() {
62
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::DOUBLE, JaccardFunction);
66
63
  }
67
64
 
68
65
  } // namespace duckdb
@@ -1,6 +1,6 @@
1
1
  #include "jaro_winkler.hpp"
2
2
 
3
- #include "duckdb/function/scalar/string_functions.hpp"
3
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
4
4
 
5
5
  namespace duckdb {
6
6
 
@@ -60,11 +60,12 @@ static void JaroWinklerFunction(DataChunk &args, ExpressionState &state, Vector
60
60
  JaroWinklerScalarFunction);
61
61
  }
62
62
 
63
- void JaroWinklerFun::RegisterFunction(BuiltinFunctions &set) {
64
- set.AddFunction(ScalarFunction("jaro_similarity", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::DOUBLE,
65
- JaroFunction));
66
- set.AddFunction(ScalarFunction("jaro_winkler_similarity", {LogicalType::VARCHAR, LogicalType::VARCHAR},
67
- LogicalType::DOUBLE, JaroWinklerFunction));
63
+ ScalarFunction JaroSimilarityFun::GetFunction() {
64
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::DOUBLE, JaroFunction);
65
+ }
66
+
67
+ ScalarFunction JaroWinklerSimilarityFun::GetFunction() {
68
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::DOUBLE, JaroWinklerFunction);
68
69
  }
69
70
 
70
71
  } // namespace duckdb
@@ -1,6 +1,7 @@
1
- #include "duckdb/function/scalar/string_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
2
2
  #include "duckdb/common/vector_operations/vector_operations.hpp"
3
3
  #include "duckdb/common/limits.hpp"
4
+ #include "duckdb/function/scalar/string_functions.hpp"
4
5
 
5
6
  #include <ctype.h>
6
7
  #include <algorithm>
@@ -50,11 +51,14 @@ static void LeftFunction(DataChunk &args, ExpressionState &state, Vector &result
50
51
  [&](string_t str, int64_t pos) { return LeftScalarFunction<OP>(result, str, pos); });
51
52
  }
52
53
 
53
- void LeftFun::RegisterFunction(BuiltinFunctions &set) {
54
- set.AddFunction(ScalarFunction("left", {LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR,
55
- LeftFunction<LeftRightUnicode>));
56
- set.AddFunction(ScalarFunction("left_grapheme", {LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR,
57
- LeftFunction<LeftRightGrapheme>));
54
+ ScalarFunction LeftFun::GetFunction() {
55
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR,
56
+ LeftFunction<LeftRightUnicode>);
57
+ }
58
+
59
+ ScalarFunction LeftGraphemeFun::GetFunction() {
60
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR,
61
+ LeftFunction<LeftRightGrapheme>);
58
62
  }
59
63
 
60
64
  template <class OP>
@@ -83,11 +87,14 @@ static void RightFunction(DataChunk &args, ExpressionState &state, Vector &resul
83
87
  [&](string_t str, int64_t pos) { return RightScalarFunction<OP>(result, str, pos); });
84
88
  }
85
89
 
86
- void RightFun::RegisterFunction(BuiltinFunctions &set) {
87
- set.AddFunction(ScalarFunction("right", {LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR,
88
- RightFunction<LeftRightUnicode>));
89
- set.AddFunction(ScalarFunction("right_grapheme", {LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR,
90
- RightFunction<LeftRightGrapheme>));
90
+ ScalarFunction RightFun::GetFunction() {
91
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR,
92
+ RightFunction<LeftRightUnicode>);
93
+ }
94
+
95
+ ScalarFunction RightGraphemeFun::GetFunction() {
96
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR,
97
+ RightFunction<LeftRightGrapheme>);
91
98
  }
92
99
 
93
100
  } // namespace duckdb
@@ -1,4 +1,4 @@
1
- #include "duckdb/function/scalar/string_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
2
2
  #include "duckdb/common/vector_operations/vector_operations.hpp"
3
3
  #include "duckdb/common/string_util.hpp"
4
4
 
@@ -77,17 +77,8 @@ static void LevenshteinFunction(DataChunk &args, ExpressionState &state, Vector
77
77
  [&](string_t str, string_t tgt) { return LevenshteinScalarFunction(result, str, tgt); });
78
78
  }
79
79
 
80
- void LevenshteinFun::RegisterFunction(BuiltinFunctions &set) {
81
- ScalarFunctionSet levenshtein("levenshtein");
82
- levenshtein.AddFunction(ScalarFunction("levenshtein", {LogicalType::VARCHAR, LogicalType::VARCHAR},
83
- LogicalType::BIGINT,
84
- LevenshteinFunction)); // Pointer to function implementation
85
- set.AddFunction(levenshtein);
86
-
87
- ScalarFunctionSet editdist3("editdist3");
88
- editdist3.AddFunction(ScalarFunction("levenshtein", {LogicalType::VARCHAR, LogicalType::VARCHAR},
89
- LogicalType::BIGINT, LevenshteinFunction));
90
- set.AddFunction(editdist3);
80
+ ScalarFunction LevenshteinFun::GetFunction() {
81
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BIGINT, LevenshteinFunction);
91
82
  }
92
83
 
93
84
  } // namespace duckdb
@@ -1,4 +1,4 @@
1
- #include "duckdb/function/scalar/string_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
2
2
 
3
3
  #include "duckdb/common/exception.hpp"
4
4
  #include "duckdb/common/crypto/md5.hpp"
@@ -67,26 +67,20 @@ static void MD5NumberLowerFunction(DataChunk &args, ExpressionState &state, Vect
67
67
  UnaryExecutor::Execute<string_t, uint64_t, MD5Number64Operator<true>>(input, result, args.size());
68
68
  }
69
69
 
70
- void MD5Fun::RegisterFunction(BuiltinFunctions &set) {
71
- set.AddFunction(ScalarFunction("md5", // name of the function
72
- {LogicalType::VARCHAR}, // argument list
73
- LogicalType::VARCHAR, // return type
74
- MD5Function)); // pointer to function implementation
75
-
76
- set.AddFunction(ScalarFunction("md5_number", // name of the function
77
- {LogicalType::VARCHAR}, // argument list
78
- LogicalType::HUGEINT, // return type
79
- MD5NumberFunction)); // pointer to function implementation
80
-
81
- set.AddFunction(ScalarFunction("md5_number_upper", // name of the function
82
- {LogicalType::VARCHAR}, // argument list
83
- LogicalType::UBIGINT, // return type
84
- MD5NumberUpperFunction)); // pointer to function implementation
85
-
86
- set.AddFunction(ScalarFunction("md5_number_lower", // name of the function
87
- {LogicalType::VARCHAR}, // argument list
88
- LogicalType::UBIGINT, // return type
89
- MD5NumberLowerFunction)); // pointer to function implementation
70
+ ScalarFunction MD5Fun::GetFunction() {
71
+ return ScalarFunction({LogicalType::VARCHAR}, LogicalType::VARCHAR, MD5Function);
72
+ }
73
+
74
+ ScalarFunction MD5NumberFun::GetFunction() {
75
+ return ScalarFunction({LogicalType::VARCHAR}, LogicalType::HUGEINT, MD5NumberFunction);
76
+ }
77
+
78
+ ScalarFunction MD5NumberUpperFun::GetFunction() {
79
+ return ScalarFunction({LogicalType::VARCHAR}, LogicalType::UBIGINT, MD5NumberUpperFunction);
80
+ }
81
+
82
+ ScalarFunction MD5NumberLowerFun::GetFunction() {
83
+ return ScalarFunction({LogicalType::VARCHAR}, LogicalType::UBIGINT, MD5NumberLowerFunction);
90
84
  }
91
85
 
92
86
  } // namespace duckdb
@@ -1,4 +1,4 @@
1
- #include "duckdb/function/scalar/string_functions.hpp"
1
+ #include "duckdb/core_functions/scalar/string_functions.hpp"
2
2
 
3
3
  #include "duckdb/common/algorithm.hpp"
4
4
  #include "duckdb/common/exception.hpp"
@@ -130,20 +130,14 @@ static void PadFunction(DataChunk &args, ExpressionState &state, Vector &result)
130
130
  });
131
131
  }
132
132
 
133
- void LpadFun::RegisterFunction(BuiltinFunctions &set) {
134
- set.AddFunction(ScalarFunction("lpad", // name of the function
135
- {LogicalType::VARCHAR, LogicalType::INTEGER, // argument list
136
- LogicalType::VARCHAR},
137
- LogicalType::VARCHAR, // return type
138
- PadFunction<LeftPadOperator>)); // pointer to function implementation
133
+ ScalarFunction LpadFun::GetFunction() {
134
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::INTEGER, LogicalType::VARCHAR}, LogicalType::VARCHAR,
135
+ PadFunction<LeftPadOperator>);
139
136
  }
140
137
 
141
- void RpadFun::RegisterFunction(BuiltinFunctions &set) {
142
- set.AddFunction(ScalarFunction("rpad", // name of the function
143
- {LogicalType::VARCHAR, LogicalType::INTEGER, // argument list
144
- LogicalType::VARCHAR},
145
- LogicalType::VARCHAR, // return type
146
- PadFunction<RightPadOperator>)); // pointer to function implementation
138
+ ScalarFunction RpadFun::GetFunction() {
139
+ return ScalarFunction({LogicalType::VARCHAR, LogicalType::INTEGER, LogicalType::VARCHAR}, LogicalType::VARCHAR,
140
+ PadFunction<RightPadOperator>);
147
141
  }
148
142
 
149
143
  } // namespace duckdb