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
@@ -0,0 +1,33 @@
1
+ //===----------------------------------------------------------------------===//
2
+ // DuckDB
3
+ //
4
+ // duckdb/catalog/catalog_entry/function_entry.hpp
5
+ //
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+
9
+ #pragma once
10
+
11
+ #include "duckdb/catalog/standard_entry.hpp"
12
+ #include "duckdb/parser/parsed_data/create_function_info.hpp"
13
+
14
+ namespace duckdb {
15
+
16
+ //! An aggregate function in the catalog
17
+ class FunctionEntry : public StandardEntry {
18
+ public:
19
+ FunctionEntry(CatalogType type, Catalog &catalog, SchemaCatalogEntry &schema, CreateFunctionInfo &info)
20
+ : StandardEntry(type, schema, catalog, info.name) {
21
+ description = std::move(info.description);
22
+ parameter_names = std::move(info.parameter_names);
23
+ example = std::move(info.example);
24
+ }
25
+
26
+ //! The description (if any)
27
+ string description;
28
+ //! Parameter names (if any)
29
+ vector<string> parameter_names;
30
+ //! The example (if any)
31
+ string example;
32
+ };
33
+ } // namespace duckdb
@@ -9,14 +9,14 @@
9
9
  #pragma once
10
10
 
11
11
  #include "duckdb/catalog/catalog_set.hpp"
12
- #include "duckdb/catalog/standard_entry.hpp"
12
+ #include "duckdb/catalog/catalog_entry/function_entry.hpp"
13
13
  #include "duckdb/function/macro_function.hpp"
14
14
  #include "duckdb/parser/parsed_data/create_macro_info.hpp"
15
15
 
16
16
  namespace duckdb {
17
17
 
18
18
  //! A macro function in the catalog
19
- class MacroCatalogEntry : public StandardEntry {
19
+ class MacroCatalogEntry : public FunctionEntry {
20
20
  public:
21
21
  MacroCatalogEntry(Catalog &catalog, SchemaCatalogEntry &schema, CreateMacroInfo &info);
22
22
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  #pragma once
10
10
 
11
- #include "duckdb/catalog/standard_entry.hpp"
11
+ #include "duckdb/catalog/catalog_entry/function_entry.hpp"
12
12
  #include "duckdb/function/pragma_function.hpp"
13
13
  #include "duckdb/function/function_set.hpp"
14
14
 
@@ -18,7 +18,7 @@ class Catalog;
18
18
  struct CreatePragmaFunctionInfo;
19
19
 
20
20
  //! A table function in the catalog
21
- class PragmaFunctionCatalogEntry : public StandardEntry {
21
+ class PragmaFunctionCatalogEntry : public FunctionEntry {
22
22
  public:
23
23
  static constexpr const CatalogType Type = CatalogType::PRAGMA_FUNCTION_ENTRY;
24
24
  static constexpr const char *Name = "pragma function";
@@ -8,7 +8,7 @@
8
8
 
9
9
  #pragma once
10
10
 
11
- #include "duckdb/catalog/standard_entry.hpp"
11
+ #include "duckdb/catalog/catalog_entry/function_entry.hpp"
12
12
  #include "duckdb/catalog/catalog_set.hpp"
13
13
  #include "duckdb/function/function.hpp"
14
14
  #include "duckdb/parser/parsed_data/create_scalar_function_info.hpp"
@@ -16,7 +16,7 @@
16
16
  namespace duckdb {
17
17
 
18
18
  //! A table function in the catalog
19
- class ScalarFunctionCatalogEntry : public StandardEntry {
19
+ class ScalarFunctionCatalogEntry : public FunctionEntry {
20
20
  public:
21
21
  static constexpr const CatalogType Type = CatalogType::SCALAR_FUNCTION_ENTRY;
22
22
  static constexpr const char *Name = "scalar function";
@@ -8,7 +8,7 @@
8
8
 
9
9
  #pragma once
10
10
 
11
- #include "duckdb/catalog/standard_entry.hpp"
11
+ #include "duckdb/catalog/catalog_entry/function_entry.hpp"
12
12
  #include "duckdb/catalog/catalog_set.hpp"
13
13
  #include "duckdb/function/function.hpp"
14
14
  #include "duckdb/parser/parsed_data/create_table_function_info.hpp"
@@ -16,7 +16,7 @@
16
16
  namespace duckdb {
17
17
 
18
18
  //! A table function in the catalog
19
- class TableFunctionCatalogEntry : public StandardEntry {
19
+ class TableFunctionCatalogEntry : public FunctionEntry {
20
20
  public:
21
21
  static constexpr const CatalogType Type = CatalogType::TABLE_FUNCTION_ENTRY;
22
22
  static constexpr const char *Name = "table function";
@@ -28,6 +28,8 @@ struct CatalogTransaction {
28
28
  transaction_t start_time;
29
29
 
30
30
  ClientContext &GetContext();
31
+
32
+ static CatalogTransaction GetSystemTransaction(DatabaseInstance &db);
31
33
  };
32
34
 
33
35
  } // namespace duckdb
@@ -9,3 +9,4 @@
9
9
  #pragma once
10
10
 
11
11
  #include <algorithm>
12
+ #include <cmath>
@@ -419,12 +419,16 @@ struct FSSTVector {
419
419
  DUCKDB_API static idx_t GetCount(Vector &vector);
420
420
  };
421
421
 
422
+ enum class MapInvalidReason : uint8_t { VALID, NULL_KEY_LIST, NULL_KEY, DUPLICATE_KEY };
423
+
422
424
  struct MapVector {
423
425
  DUCKDB_API static const Vector &GetKeys(const Vector &vector);
424
426
  DUCKDB_API static const Vector &GetValues(const Vector &vector);
425
427
  DUCKDB_API static Vector &GetKeys(Vector &vector);
426
428
  DUCKDB_API static Vector &GetValues(Vector &vector);
427
- static vector<idx_t> Search(Vector &keys, idx_t count, const Value &key, list_entry_t &entry);
429
+ DUCKDB_API static MapInvalidReason
430
+ CheckMapValidity(Vector &map, idx_t count, const SelectionVector &sel = *FlatVector::IncrementalSelectionVector());
431
+ DUCKDB_API static void MapConversionVerify(Vector &vector, idx_t count);
428
432
  };
429
433
 
430
434
  struct StructVector {
@@ -432,6 +436,8 @@ struct StructVector {
432
436
  DUCKDB_API static vector<unique_ptr<Vector>> &GetEntries(Vector &vector);
433
437
  };
434
438
 
439
+ enum class UnionInvalidReason : uint8_t { VALID, TAG_OUT_OF_RANGE, NO_MEMBERS, VALIDITY_OVERLAP };
440
+
435
441
  struct UnionVector {
436
442
  // Unions are stored as structs, but the first child is always the "tag"
437
443
  // vector, specifying the currently selected member for that row.
@@ -465,6 +471,10 @@ struct UnionVector {
465
471
  //! This will also handle invalidation of the non-selected members
466
472
  DUCKDB_API static void SetToMember(Vector &vector, union_tag_t tag, Vector &member_vector, idx_t count,
467
473
  bool keep_tags_for_null);
474
+
475
+ DUCKDB_API static UnionInvalidReason
476
+ CheckUnionValidity(Vector &vector, idx_t count,
477
+ const SelectionVector &sel = *FlatVector::IncrementalSelectionVector());
468
478
  };
469
479
 
470
480
  struct SequenceVector {
@@ -1,7 +1,7 @@
1
1
  //===----------------------------------------------------------------------===//
2
2
  // DuckDB
3
3
  //
4
- // duckdb/function/aggregate/algebraic/corr.hpp
4
+ // duckdb/core_functions/aggregate/algebraic/corr.hpp
5
5
  //
6
6
  //
7
7
  //===----------------------------------------------------------------------===//
@@ -9,9 +9,8 @@
9
9
  #pragma once
10
10
 
11
11
  #include "duckdb/function/aggregate_function.hpp"
12
- #include "duckdb/function/aggregate/algebraic_functions.hpp"
13
- #include "duckdb/function/aggregate/algebraic/covar.hpp"
14
- #include "duckdb/function/aggregate/algebraic/stddev.hpp"
12
+ #include "duckdb/core_functions/aggregate/algebraic/covar.hpp"
13
+ #include "duckdb/core_functions/aggregate/algebraic/stddev.hpp"
15
14
 
16
15
  namespace duckdb {
17
16
 
@@ -1,7 +1,7 @@
1
1
  //===----------------------------------------------------------------------===//
2
2
  // DuckDB
3
3
  //
4
- // duckdb/function/aggregate/algebraic/covar.hpp
4
+ // duckdb/core_functions/aggregate/algebraic/covar.hpp
5
5
  //
6
6
  //
7
7
  //===----------------------------------------------------------------------===//
@@ -1,7 +1,7 @@
1
1
  //===----------------------------------------------------------------------===//
2
2
  // DuckDB
3
3
  //
4
- // duckdb/function/aggregate/algebraic/stddev.hpp
4
+ // duckdb/core_functions/aggregate/algebraic/stddev.hpp
5
5
  //
6
6
  //
7
7
  //===----------------------------------------------------------------------===//
@@ -0,0 +1,124 @@
1
+ //===----------------------------------------------------------------------===//
2
+ // DuckDB
3
+ //
4
+ // duckdb/core_functions/aggregate/algebraic_functions.hpp
5
+ //
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+ // This file is generated by scripts/generate_functions.py
9
+
10
+ #pragma once
11
+
12
+ #include "duckdb/function/function_set.hpp"
13
+
14
+ namespace duckdb {
15
+
16
+ struct AvgFun {
17
+ static constexpr const char *Name = "avg";
18
+ static constexpr const char *Parameters = "x";
19
+ static constexpr const char *Description = "Calculates the average value for all tuples in x.";
20
+ static constexpr const char *Example = "SUM(x) / COUNT(*)";
21
+
22
+ static AggregateFunctionSet GetFunctions();
23
+ };
24
+
25
+ struct MeanFun {
26
+ using ALIAS = AvgFun;
27
+
28
+ static constexpr const char *Name = "mean";
29
+ };
30
+
31
+ struct CorrFun {
32
+ static constexpr const char *Name = "corr";
33
+ static constexpr const char *Parameters = "y,x";
34
+ static constexpr const char *Description = "Returns the correlation coefficient for non-null pairs in a group.";
35
+ static constexpr const char *Example = "COVAR_POP(y, x) / (STDDEV_POP(x) * STDDEV_POP(y))";
36
+
37
+ static AggregateFunction GetFunction();
38
+ };
39
+
40
+ struct CovarPopFun {
41
+ static constexpr const char *Name = "covar_pop";
42
+ static constexpr const char *Parameters = "y,x";
43
+ static constexpr const char *Description = "Returns the population covariance of input values.";
44
+ static constexpr const char *Example = "(SUM(x*y) - SUM(x) * SUM(y) / COUNT(*)) / COUNT(*)";
45
+
46
+ static AggregateFunction GetFunction();
47
+ };
48
+
49
+ struct CovarSampFun {
50
+ static constexpr const char *Name = "covar_samp";
51
+ static constexpr const char *Parameters = "y,x";
52
+ static constexpr const char *Description = "Returns the sample covariance for non-null pairs in a group.";
53
+ static constexpr const char *Example = "(SUM(x*y) - SUM(x) * SUM(y) / COUNT(*)) / (COUNT(*) - 1)";
54
+
55
+ static AggregateFunction GetFunction();
56
+ };
57
+
58
+ struct FAvgFun {
59
+ static constexpr const char *Name = "favg";
60
+ static constexpr const char *Parameters = "x";
61
+ static constexpr const char *Description = "Calculates the average using a more accurate floating point summation (Kahan Sum)";
62
+ static constexpr const char *Example = "favg(A)";
63
+
64
+ static AggregateFunction GetFunction();
65
+ };
66
+
67
+ struct StandardErrorOfTheMeanFun {
68
+ static constexpr const char *Name = "sem";
69
+ static constexpr const char *Parameters = "x";
70
+ static constexpr const char *Description = "Returns the standard error of the mean";
71
+ static constexpr const char *Example = "";
72
+
73
+ static AggregateFunction GetFunction();
74
+ };
75
+
76
+ struct StdDevPopFun {
77
+ static constexpr const char *Name = "stddev_pop";
78
+ static constexpr const char *Parameters = "x";
79
+ static constexpr const char *Description = "Returns the population standard deviation.";
80
+ static constexpr const char *Example = "sqrt(var_pop(x))";
81
+
82
+ static AggregateFunction GetFunction();
83
+ };
84
+
85
+ struct StdDevSampFun {
86
+ static constexpr const char *Name = "stddev_samp";
87
+ static constexpr const char *Parameters = "x";
88
+ static constexpr const char *Description = "Returns the sample standard deviation";
89
+ static constexpr const char *Example = "sqrt(var_samp(x))";
90
+
91
+ static AggregateFunction GetFunction();
92
+ };
93
+
94
+ struct StddevFun {
95
+ using ALIAS = StdDevSampFun;
96
+
97
+ static constexpr const char *Name = "stddev";
98
+ };
99
+
100
+ struct VarPopFun {
101
+ static constexpr const char *Name = "var_pop";
102
+ static constexpr const char *Parameters = "x";
103
+ static constexpr const char *Description = "Returns the population variance.";
104
+ static constexpr const char *Example = "";
105
+
106
+ static AggregateFunction GetFunction();
107
+ };
108
+
109
+ struct VarSampFun {
110
+ static constexpr const char *Name = "var_samp";
111
+ static constexpr const char *Parameters = "x";
112
+ static constexpr const char *Description = "Returns the sample variance of all input values.";
113
+ static constexpr const char *Example = "(SUM(x^2) - SUM(x)^2 / COUNT(x)) / (COUNT(x) - 1)";
114
+
115
+ static AggregateFunction GetFunction();
116
+ };
117
+
118
+ struct VarianceFun {
119
+ using ALIAS = VarSampFun;
120
+
121
+ static constexpr const char *Name = "variance";
122
+ };
123
+
124
+ } // namespace duckdb
@@ -0,0 +1,229 @@
1
+ //===----------------------------------------------------------------------===//
2
+ // DuckDB
3
+ //
4
+ // duckdb/core_functions/aggregate/distributive_functions.hpp
5
+ //
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+ // This file is generated by scripts/generate_functions.py
9
+
10
+ #pragma once
11
+
12
+ #include "duckdb/function/function_set.hpp"
13
+
14
+ namespace duckdb {
15
+
16
+ struct ApproxCountDistinctFun {
17
+ static constexpr const char *Name = "approx_count_distinct";
18
+ static constexpr const char *Parameters = "x";
19
+ static constexpr const char *Description = "Computes the approximate count of distinct elements using HyperLogLog.";
20
+ static constexpr const char *Example = "approx_count_distinct(A)";
21
+
22
+ static AggregateFunctionSet GetFunctions();
23
+ };
24
+
25
+ struct ArgMinFun {
26
+ static constexpr const char *Name = "arg_min";
27
+ static constexpr const char *Parameters = "arg,val";
28
+ static constexpr const char *Description = "Finds the row with the minimum val. Calculates the arg expression at that row.";
29
+ static constexpr const char *Example = "arg_min(A,B)";
30
+
31
+ static AggregateFunctionSet GetFunctions();
32
+ };
33
+
34
+ struct ArgminFun {
35
+ using ALIAS = ArgMinFun;
36
+
37
+ static constexpr const char *Name = "argmin";
38
+ };
39
+
40
+ struct MinByFun {
41
+ using ALIAS = ArgMinFun;
42
+
43
+ static constexpr const char *Name = "min_by";
44
+ };
45
+
46
+ struct ArgMaxFun {
47
+ static constexpr const char *Name = "arg_max";
48
+ static constexpr const char *Parameters = "arg,val";
49
+ static constexpr const char *Description = "Finds the row with the maximum val. Calculates the arg expression at that row.";
50
+ static constexpr const char *Example = "arg_max(A,B)";
51
+
52
+ static AggregateFunctionSet GetFunctions();
53
+ };
54
+
55
+ struct ArgmaxFun {
56
+ using ALIAS = ArgMaxFun;
57
+
58
+ static constexpr const char *Name = "argmax";
59
+ };
60
+
61
+ struct MaxByFun {
62
+ using ALIAS = ArgMaxFun;
63
+
64
+ static constexpr const char *Name = "max_by";
65
+ };
66
+
67
+ struct BitAndFun {
68
+ static constexpr const char *Name = "bit_and";
69
+ static constexpr const char *Parameters = "arg";
70
+ static constexpr const char *Description = "Returns the bitwise AND of all bits in a given expression.";
71
+ static constexpr const char *Example = "bit_and(A)";
72
+
73
+ static AggregateFunctionSet GetFunctions();
74
+ };
75
+
76
+ struct BitOrFun {
77
+ static constexpr const char *Name = "bit_or";
78
+ static constexpr const char *Parameters = "arg";
79
+ static constexpr const char *Description = "Returns the bitwise OR of all bits in a given expression.";
80
+ static constexpr const char *Example = "bit_or(A)";
81
+
82
+ static AggregateFunctionSet GetFunctions();
83
+ };
84
+
85
+ struct BitXorFun {
86
+ static constexpr const char *Name = "bit_xor";
87
+ static constexpr const char *Parameters = "arg";
88
+ static constexpr const char *Description = "Returns the bitwise XOR of all bits in a given expression.";
89
+ static constexpr const char *Example = "bit_xor(A)";
90
+
91
+ static AggregateFunctionSet GetFunctions();
92
+ };
93
+
94
+ struct BitstringAggFun {
95
+ static constexpr const char *Name = "bitstring_agg";
96
+ static constexpr const char *Parameters = "arg";
97
+ static constexpr const char *Description = "Returns a bitstring with bits set for each distinct value.";
98
+ static constexpr const char *Example = "bitstring_agg(A)";
99
+
100
+ static AggregateFunctionSet GetFunctions();
101
+ };
102
+
103
+ struct BoolAndFun {
104
+ static constexpr const char *Name = "bool_and";
105
+ static constexpr const char *Parameters = "arg";
106
+ static constexpr const char *Description = "Returns TRUE if every input value is TRUE, otherwise FALSE.";
107
+ static constexpr const char *Example = "bool_and(A)";
108
+
109
+ static AggregateFunction GetFunction();
110
+ };
111
+
112
+ struct BoolOrFun {
113
+ static constexpr const char *Name = "bool_or";
114
+ static constexpr const char *Parameters = "arg";
115
+ static constexpr const char *Description = "Returns TRUE if any input value is TRUE, otherwise FALSE.";
116
+ static constexpr const char *Example = "bool_or(A)";
117
+
118
+ static AggregateFunction GetFunction();
119
+ };
120
+
121
+ struct EntropyFun {
122
+ static constexpr const char *Name = "entropy";
123
+ static constexpr const char *Parameters = "x";
124
+ static constexpr const char *Description = "Returns the log-2 entropy of count input-values.";
125
+ static constexpr const char *Example = "";
126
+
127
+ static AggregateFunctionSet GetFunctions();
128
+ };
129
+
130
+ struct KahanSumFun {
131
+ static constexpr const char *Name = "kahan_sum";
132
+ static constexpr const char *Parameters = "arg";
133
+ static constexpr const char *Description = "Calculates the sum using a more accurate floating point summation (Kahan Sum).";
134
+ static constexpr const char *Example = "kahan_sum(A)";
135
+
136
+ static AggregateFunction GetFunction();
137
+ };
138
+
139
+ struct FsumFun {
140
+ using ALIAS = KahanSumFun;
141
+
142
+ static constexpr const char *Name = "fsum";
143
+ };
144
+
145
+ struct SumkahanFun {
146
+ using ALIAS = KahanSumFun;
147
+
148
+ static constexpr const char *Name = "sumkahan";
149
+ };
150
+
151
+ struct KurtosisFun {
152
+ static constexpr const char *Name = "kurtosis";
153
+ static constexpr const char *Parameters = "x";
154
+ static constexpr const char *Description = "Returns the excess kurtosis (Fisher’s definition) of all input values, with a bias correction according to the sample size";
155
+ static constexpr const char *Example = "";
156
+
157
+ static AggregateFunction GetFunction();
158
+ };
159
+
160
+ struct MinFun {
161
+ static constexpr const char *Name = "min";
162
+ static constexpr const char *Parameters = "arg";
163
+ static constexpr const char *Description = "Returns the minimum value present in arg.";
164
+ static constexpr const char *Example = "min(A)";
165
+
166
+ static AggregateFunctionSet GetFunctions();
167
+ };
168
+
169
+ struct MaxFun {
170
+ static constexpr const char *Name = "max";
171
+ static constexpr const char *Parameters = "arg";
172
+ static constexpr const char *Description = "Returns the maximum value present in arg.";
173
+ static constexpr const char *Example = "max(A)";
174
+
175
+ static AggregateFunctionSet GetFunctions();
176
+ };
177
+
178
+ struct ProductFun {
179
+ static constexpr const char *Name = "product";
180
+ static constexpr const char *Parameters = "arg";
181
+ static constexpr const char *Description = "Calculates the product of all tuples in arg.";
182
+ static constexpr const char *Example = "product(A)";
183
+
184
+ static AggregateFunction GetFunction();
185
+ };
186
+
187
+ struct SkewnessFun {
188
+ static constexpr const char *Name = "skewness";
189
+ static constexpr const char *Parameters = "x";
190
+ static constexpr const char *Description = "Returns the skewness of all input values.";
191
+ static constexpr const char *Example = "skewness(A)";
192
+
193
+ static AggregateFunction GetFunction();
194
+ };
195
+
196
+ struct StringAggFun {
197
+ static constexpr const char *Name = "string_agg";
198
+ static constexpr const char *Parameters = "str,arg";
199
+ static constexpr const char *Description = "Concatenates the column string values with an optional separator.";
200
+ static constexpr const char *Example = "string_agg(A, '-)";
201
+
202
+ static AggregateFunctionSet GetFunctions();
203
+ };
204
+
205
+ struct GroupConcatFun {
206
+ using ALIAS = StringAggFun;
207
+
208
+ static constexpr const char *Name = "group_concat";
209
+ };
210
+
211
+ struct SumFun {
212
+ static constexpr const char *Name = "sum";
213
+ static constexpr const char *Parameters = "arg";
214
+ static constexpr const char *Description = "Calculates the sum value for all tuples in arg.";
215
+ static constexpr const char *Example = "sum(A)";
216
+
217
+ static AggregateFunctionSet GetFunctions();
218
+ };
219
+
220
+ struct SumNoOverflowFun {
221
+ static constexpr const char *Name = "sum_no_overflow";
222
+ static constexpr const char *Parameters = "arg";
223
+ static constexpr const char *Description = "Calculates the sum value for all tuples in arg without overflow checks.";
224
+ static constexpr const char *Example = "sum_no_overflow(A)";
225
+
226
+ static AggregateFunctionSet GetFunctions();
227
+ };
228
+
229
+ } // namespace duckdb
@@ -0,0 +1,85 @@
1
+ //===----------------------------------------------------------------------===//
2
+ // DuckDB
3
+ //
4
+ // duckdb/core_functions/aggregate/holistic_functions.hpp
5
+ //
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+ // This file is generated by scripts/generate_functions.py
9
+
10
+ #pragma once
11
+
12
+ #include "duckdb/function/function_set.hpp"
13
+
14
+ namespace duckdb {
15
+
16
+ struct ApproxQuantileFun {
17
+ static constexpr const char *Name = "approx_quantile";
18
+ static constexpr const char *Parameters = "x,pos";
19
+ static constexpr const char *Description = "Computes the approximate quantile using T-Digest.";
20
+ static constexpr const char *Example = "approx_quantile(A,0.5)";
21
+
22
+ static AggregateFunctionSet GetFunctions();
23
+ };
24
+
25
+ struct MadFun {
26
+ static constexpr const char *Name = "mad";
27
+ static constexpr const char *Parameters = "x";
28
+ static constexpr const char *Description = "Returns the median absolute deviation for the values within x. NULL values are ignored. Temporal types return a positive INTERVAL. ";
29
+ static constexpr const char *Example = "MEDIAN(ABS(x-MEDIAN(x)))";
30
+
31
+ static AggregateFunctionSet GetFunctions();
32
+ };
33
+
34
+ struct MedianFun {
35
+ static constexpr const char *Name = "median";
36
+ static constexpr const char *Parameters = "x";
37
+ static constexpr const char *Description = "Returns the middle value of the set. NULL values are ignored. For even value counts, quantitiative values are averaged and ordinal values return the lower value.";
38
+ static constexpr const char *Example = "QUANTILE_CONT(x, 0.5)";
39
+
40
+ static AggregateFunctionSet GetFunctions();
41
+ };
42
+
43
+ struct ModeFun {
44
+ static constexpr const char *Name = "mode";
45
+ static constexpr const char *Parameters = "x";
46
+ static constexpr const char *Description = "Returns the most frequent value for the values within x. NULL values are ignored.";
47
+ static constexpr const char *Example = "";
48
+
49
+ static AggregateFunctionSet GetFunctions();
50
+ };
51
+
52
+ struct QuantileDiscFun {
53
+ static constexpr const char *Name = "quantile_disc";
54
+ static constexpr const char *Parameters = "x,pos";
55
+ static constexpr const char *Description = "Returns the exact quantile number between 0 and 1 . If pos is a LIST of FLOATs, then the result is a LIST of the corresponding exact quantiles.";
56
+ static constexpr const char *Example = "";
57
+
58
+ static AggregateFunctionSet GetFunctions();
59
+ };
60
+
61
+ struct QuantileFun {
62
+ using ALIAS = QuantileDiscFun;
63
+
64
+ static constexpr const char *Name = "quantile";
65
+ };
66
+
67
+ struct QuantileContFun {
68
+ static constexpr const char *Name = "quantile_cont";
69
+ static constexpr const char *Parameters = "x,pos";
70
+ static constexpr const char *Description = "Returns the intepolated quantile number between 0 and 1 . If pos is a LIST of FLOATs, then the result is a LIST of the corresponding intepolated quantiles. ";
71
+ static constexpr const char *Example = "";
72
+
73
+ static AggregateFunctionSet GetFunctions();
74
+ };
75
+
76
+ struct ReservoirQuantileFun {
77
+ static constexpr const char *Name = "reservoir_quantile";
78
+ static constexpr const char *Parameters = "x,quantile,sample_size";
79
+ static constexpr const char *Description = "Gives the approximate quantile using reservoir sampling, the sample size is optional and uses 8192 as a default size.";
80
+ static constexpr const char *Example = "reservoir_quantile(A,0.5,1024)";
81
+
82
+ static AggregateFunctionSet GetFunctions();
83
+ };
84
+
85
+ } // namespace duckdb