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
@@ -951,6 +951,7 @@ template <typename Char> struct basic_format_specs {
951
951
  sign_t sign : 3;
952
952
  bool alt : 1; // Alternate form ('#').
953
953
  internal::fill_t<Char> fill;
954
+ char thousands;
954
955
 
955
956
  constexpr basic_format_specs()
956
957
  : width(0),
@@ -959,7 +960,8 @@ template <typename Char> struct basic_format_specs {
959
960
  align(align::none),
960
961
  sign(sign::none),
961
962
  alt(false),
962
- fill(internal::fill_t<Char>::make()) {}
963
+ fill(internal::fill_t<Char>::make()),
964
+ thousands('\0'){}
963
965
  };
964
966
 
965
967
  using format_specs = basic_format_specs<char>;
@@ -1124,9 +1126,13 @@ int snprintf_float(T value, int precision, float_specs specs,
1124
1126
  template <typename T> T promote_float(T value) { return value; }
1125
1127
  inline double promote_float(float value) { return value; }
1126
1128
 
1127
- template <typename Handler>
1128
- FMT_CONSTEXPR void handle_int_type_spec(char spec, Handler&& handler) {
1129
- switch (spec) {
1129
+ template <typename Spec, typename Handler>
1130
+ FMT_CONSTEXPR void handle_int_type_spec(const Spec& specs, Handler&& handler) {
1131
+ if (specs.thousands != '\0') {
1132
+ handler.on_num();
1133
+ return;
1134
+ }
1135
+ switch (specs.type) {
1130
1136
  case 0:
1131
1137
  case 'd':
1132
1138
  handler.on_dec();
@@ -1143,17 +1149,24 @@ FMT_CONSTEXPR void handle_int_type_spec(char spec, Handler&& handler) {
1143
1149
  handler.on_oct();
1144
1150
  break;
1145
1151
  case 'n':
1152
+ case 'l':
1153
+ case 'L':
1146
1154
  handler.on_num();
1147
1155
  break;
1148
1156
  default:
1149
- handler.on_error();
1157
+ handler.on_error("Invalid type specifier \"" + std::string(1, specs.type) + "\" for formatting a value of type int");
1150
1158
  }
1151
1159
  }
1152
1160
 
1153
1161
  template <typename ErrorHandler = error_handler, typename Char>
1154
1162
  FMT_CONSTEXPR float_specs parse_float_type_spec(
1155
1163
  const basic_format_specs<Char>& specs, ErrorHandler&& eh = {}) {
1164
+
1156
1165
  auto result = float_specs();
1166
+ if (specs.thousands != '\0') {
1167
+ eh.on_error("Thousand separators are not supported for floating point numbers");
1168
+ return result;
1169
+ }
1157
1170
  result.trailing_zeros = specs.alt;
1158
1171
  switch (specs.type) {
1159
1172
  case 0:
@@ -1193,10 +1206,12 @@ FMT_CONSTEXPR float_specs parse_float_type_spec(
1193
1206
  result.format = float_format::hex;
1194
1207
  break;
1195
1208
  case 'n':
1209
+ case 'l':
1210
+ case 'L':
1196
1211
  result.locale = true;
1197
1212
  break;
1198
1213
  default:
1199
- eh.on_error("invalid type specifier");
1214
+ eh.on_error("Invalid type specifier \"" + std::string(1, specs.type) + "\" for formatting a value of type float");
1200
1215
  break;
1201
1216
  }
1202
1217
  return result;
@@ -1219,17 +1234,17 @@ FMT_CONSTEXPR void handle_cstring_type_spec(Char spec, Handler&& handler) {
1219
1234
  else if (spec == 'p')
1220
1235
  handler.on_pointer();
1221
1236
  else
1222
- handler.on_error("invalid type specifier");
1237
+ handler.on_error("Invalid type specifier \"" + std::string(1, spec) + "\" for formatting a value of type string");
1223
1238
  }
1224
1239
 
1225
1240
  template <typename Char, typename ErrorHandler>
1226
1241
  FMT_CONSTEXPR void check_string_type_spec(Char spec, ErrorHandler&& eh) {
1227
- if (spec != 0 && spec != 's') eh.on_error("invalid type specifier");
1242
+ if (spec != 0 && spec != 's') eh.on_error("Invalid type specifier \"" + std::string(1, spec) + "\" for formatting a value of type string");
1228
1243
  }
1229
1244
 
1230
1245
  template <typename Char, typename ErrorHandler>
1231
1246
  FMT_CONSTEXPR void check_pointer_type_spec(Char spec, ErrorHandler&& eh) {
1232
- if (spec != 0 && spec != 'p') eh.on_error("invalid type specifier");
1247
+ if (spec != 0 && spec != 'p') eh.on_error("Invalid type specifier \"" + std::string(1, spec) + "\" for formatting a value of type pointer");
1233
1248
  }
1234
1249
 
1235
1250
  template <typename ErrorHandler> class int_type_checker : private ErrorHandler {
@@ -1242,8 +1257,8 @@ template <typename ErrorHandler> class int_type_checker : private ErrorHandler {
1242
1257
  FMT_CONSTEXPR void on_oct() {}
1243
1258
  FMT_CONSTEXPR void on_num() {}
1244
1259
 
1245
- FMT_CONSTEXPR void on_error() {
1246
- ErrorHandler::on_error("invalid type specifier");
1260
+ FMT_CONSTEXPR void on_error(std::string error) {
1261
+ ErrorHandler::on_error(error);
1247
1262
  }
1248
1263
  };
1249
1264
 
@@ -1500,7 +1515,7 @@ template <typename Range> class basic_writer {
1500
1515
  void on_num() {
1501
1516
  std::string groups = grouping<char_type>(writer.locale_);
1502
1517
  if (groups.empty()) return on_dec();
1503
- auto sep = thousands_sep<char_type>(writer.locale_);
1518
+ auto sep = specs.thousands;
1504
1519
  if (!sep) return on_dec();
1505
1520
  int num_digits = count_digits(abs_value);
1506
1521
  int size = num_digits;
@@ -1514,11 +1529,11 @@ template <typename Range> class basic_writer {
1514
1529
  if (group == groups.cend())
1515
1530
  size += sep_size * ((num_digits - 1) / groups.back());
1516
1531
  writer.write_int(size, get_prefix(), specs,
1517
- num_writer{abs_value, size, groups, sep});
1532
+ num_writer{abs_value, size, groups, static_cast<char_type>(sep)});
1518
1533
  }
1519
1534
 
1520
- FMT_NORETURN void on_error() {
1521
- FMT_THROW(duckdb::Exception("invalid type specifier"));
1535
+ FMT_NORETURN void on_error(std::string error) {
1536
+ FMT_THROW(duckdb::Exception(error));
1522
1537
  }
1523
1538
  };
1524
1539
 
@@ -1597,7 +1612,7 @@ template <typename Range> class basic_writer {
1597
1612
 
1598
1613
  template <typename T, typename Spec>
1599
1614
  void write_int(T value, const Spec& spec) {
1600
- handle_int_type_spec(spec.type, int_writer<T, Spec>(*this, value, spec));
1615
+ handle_int_type_spec(spec, int_writer<T, Spec>(*this, value, spec));
1601
1616
  }
1602
1617
 
1603
1618
  template <typename T, FMT_ENABLE_IF(std::is_floating_point<T>::value)>
@@ -1958,6 +1973,10 @@ template <typename Char> class specs_setter {
1958
1973
  FMT_CONSTEXPR void on_plus() { specs_.sign = sign::plus; }
1959
1974
  FMT_CONSTEXPR void on_minus() { specs_.sign = sign::minus; }
1960
1975
  FMT_CONSTEXPR void on_space() { specs_.sign = sign::space; }
1976
+ FMT_CONSTEXPR void on_comma() { specs_.thousands = ','; }
1977
+ FMT_CONSTEXPR void on_underscore() { specs_.thousands = '_'; }
1978
+ FMT_CONSTEXPR void on_single_quote() { specs_.thousands = '\''; }
1979
+ FMT_CONSTEXPR void on_thousands(char sep) { specs_.thousands = sep; }
1961
1980
  FMT_CONSTEXPR void on_hash() { specs_.alt = true; }
1962
1981
 
1963
1982
  FMT_CONSTEXPR void on_zero() {
@@ -2066,7 +2085,7 @@ struct auto_id {};
2066
2085
  template <typename Context>
2067
2086
  FMT_CONSTEXPR typename Context::format_arg get_arg(Context& ctx, int id) {
2068
2087
  auto arg = ctx.arg(id);
2069
- if (!arg) ctx.on_error("argument index out of range");
2088
+ if (!arg) ctx.on_error("Argument index \"" + std::to_string(id) + "\" out of range");
2070
2089
  return arg;
2071
2090
  }
2072
2091
 
@@ -2092,7 +2111,7 @@ class specs_handler : public specs_setter<typename Context::char_type> {
2092
2111
  get_arg(arg_id), context_.error_handler());
2093
2112
  }
2094
2113
 
2095
- void on_error(const char* message) { context_.on_error(message); }
2114
+ void on_error(std::string message) { context_.on_error(message); }
2096
2115
 
2097
2116
  private:
2098
2117
  // This is only needed for compatibility with gcc 4.4.
@@ -2176,7 +2195,7 @@ class dynamic_specs_handler
2176
2195
  specs_.precision_ref = make_arg_ref(arg_id);
2177
2196
  }
2178
2197
 
2179
- FMT_CONSTEXPR void on_error(const char* message) {
2198
+ FMT_CONSTEXPR void on_error(std::string message) {
2180
2199
  context_.on_error(message);
2181
2200
  }
2182
2201
 
@@ -2242,7 +2261,7 @@ template <typename SpecHandler, typename Char> struct width_adapter {
2242
2261
  handler.on_dynamic_width(id);
2243
2262
  }
2244
2263
 
2245
- FMT_CONSTEXPR void on_error(const char* message) {
2264
+ FMT_CONSTEXPR void on_error(std::string message) {
2246
2265
  handler.on_error(message);
2247
2266
  }
2248
2267
 
@@ -2259,7 +2278,7 @@ template <typename SpecHandler, typename Char> struct precision_adapter {
2259
2278
  handler.on_dynamic_precision(id);
2260
2279
  }
2261
2280
 
2262
- FMT_CONSTEXPR void on_error(const char* message) {
2281
+ FMT_CONSTEXPR void on_error(std::string message) {
2263
2282
  handler.on_error(message);
2264
2283
  }
2265
2284
 
@@ -2370,6 +2389,24 @@ FMT_CONSTEXPR const Char* parse_format_specs(const Char* begin, const Char* end,
2370
2389
  handler.on_space();
2371
2390
  ++begin;
2372
2391
  break;
2392
+ case ',':
2393
+ handler.on_comma();
2394
+ ++begin;
2395
+ break;
2396
+ case '_':
2397
+ handler.on_underscore();
2398
+ ++begin;
2399
+ break;
2400
+ case '\'':
2401
+ handler.on_single_quote();
2402
+ ++begin;
2403
+ break;
2404
+ case 't':
2405
+ ++begin;
2406
+ if (begin == end) return begin;
2407
+ handler.on_thousands(*begin);
2408
+ ++begin;
2409
+ break;
2373
2410
  }
2374
2411
  if (begin == end) return begin;
2375
2412
 
@@ -2420,7 +2457,7 @@ template <typename Handler, typename Char> struct id_adapter {
2420
2457
  FMT_CONSTEXPR void operator()(basic_string_view<Char> id) {
2421
2458
  handler.on_arg_id(id);
2422
2459
  }
2423
- FMT_CONSTEXPR void on_error(const char* message) {
2460
+ FMT_CONSTEXPR void on_error(std::string message) {
2424
2461
  handler.on_error(message);
2425
2462
  }
2426
2463
  Handler& handler;
@@ -2524,7 +2561,7 @@ class format_string_checker {
2524
2561
  return arg_id_ < num_args ? parse_funcs_[arg_id_](context_) : begin;
2525
2562
  }
2526
2563
 
2527
- FMT_CONSTEXPR void on_error(const char* message) {
2564
+ FMT_CONSTEXPR void on_error(std::string message) {
2528
2565
  context_.on_error(message);
2529
2566
  }
2530
2567
 
@@ -2889,7 +2926,7 @@ typename basic_format_context<Range, Char>::format_arg
2889
2926
  basic_format_context<Range, Char>::arg(basic_string_view<char_type> name) {
2890
2927
  map_.init(args_);
2891
2928
  format_arg arg = map_.find(name);
2892
- if (arg.type() == internal::none_type) this->on_error("argument not found");
2929
+ if (arg.type() == internal::none_type) this->on_error("Argument with name \"" + name.to_string() + "\" not found, did you mean to use it as a format specifier (e.g. {:" + name.to_string() + "}");
2893
2930
  return arg;
2894
2931
  }
2895
2932
 
@@ -363,7 +363,7 @@ template <typename OutputIt, typename Char> class basic_printf_context {
363
363
 
364
364
  basic_format_parse_context<Char>& parse_context() { return parse_ctx_; }
365
365
 
366
- FMT_CONSTEXPR void on_error(const char* message) {
366
+ FMT_CONSTEXPR void on_error(std::string message) {
367
367
  parse_ctx_.on_error(message);
368
368
  }
369
369
 
@@ -393,6 +393,15 @@ void basic_printf_context<OutputIt, Char>::parse_flags(format_specs& specs,
393
393
  case '#':
394
394
  specs.alt = true;
395
395
  break;
396
+ case ',':
397
+ specs.thousands = ',';
398
+ break;
399
+ case '\'':
400
+ specs.thousands = '\'';
401
+ break;
402
+ case '_':
403
+ specs.thousands = '_';
404
+ break;
396
405
  default:
397
406
  return;
398
407
  }
@@ -472,6 +481,7 @@ OutputIt basic_printf_context<OutputIt, Char>::format() {
472
481
  if (arg_index == 0) on_error("argument index out of range");
473
482
 
474
483
  // Parse precision.
484
+ bool empty_precision = false;
475
485
  if (it != end && *it == '.') {
476
486
  ++it;
477
487
  c = it != end ? *it : 0;
@@ -484,6 +494,7 @@ OutputIt basic_printf_context<OutputIt, Char>::format() {
484
494
  static_cast<int>(visit_format_arg(internal::printf_precision_handler(), get_arg()));
485
495
  } else {
486
496
  specs.precision = 0;
497
+ empty_precision = true;
487
498
  }
488
499
  }
489
500
 
@@ -554,6 +565,9 @@ OutputIt basic_printf_context<OutputIt, Char>::format() {
554
565
  break;
555
566
  }
556
567
  }
568
+ if (specs.type == 'd' && empty_precision) {
569
+ specs.thousands = '.';
570
+ }
557
571
 
558
572
  start = it;
559
573
 
@@ -1171,6 +1171,7 @@ typedef struct PGPivot {
1171
1171
  PGList *pivot_columns; /* The column names to pivot on */
1172
1172
  PGList *unpivot_columns;/* The column names to unpivot */
1173
1173
  PGList *pivot_value; /* The set of pivot values */
1174
+ PGNode *subquery; /* Subquery to fetch valid pivot values (if any) */
1174
1175
  char *pivot_enum; /* The enum to fetch the unique values from */
1175
1176
  } PGPivot;
1176
1177