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.
- package/binding.gyp +21 -13
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-strptime.cpp +1 -1
- package/src/duckdb/extension/json/include/json_functions.hpp +35 -37
- package/src/duckdb/extension/json/include/json_scan.hpp +1 -1
- package/src/duckdb/extension/json/include/json_transform.hpp +1 -1
- package/src/duckdb/extension/json/json-extension.cpp +10 -20
- package/src/duckdb/extension/json/json_functions/copy_json.cpp +2 -2
- package/src/duckdb/extension/json/json_functions/json_array_length.cpp +2 -3
- package/src/duckdb/extension/json/json_functions/json_contains.cpp +2 -2
- package/src/duckdb/extension/json/json_functions/json_create.cpp +20 -20
- package/src/duckdb/extension/json/json_functions/json_extract.cpp +4 -6
- package/src/duckdb/extension/json/json_functions/json_keys.cpp +2 -3
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +2 -2
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +8 -8
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +2 -2
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +4 -4
- package/src/duckdb/extension/json/json_functions/json_type.cpp +2 -3
- package/src/duckdb/extension/json/json_functions/json_valid.cpp +2 -2
- package/src/duckdb/extension/json/json_functions/read_json.cpp +6 -6
- package/src/duckdb/extension/json/json_functions/read_json_objects.cpp +4 -4
- package/src/duckdb/extension/json/json_functions.cpp +6 -6
- package/src/duckdb/extension/parquet/parquet-extension.cpp +11 -24
- package/src/duckdb/src/catalog/catalog_entry/pragma_function_catalog_entry.cpp +1 -2
- package/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp +1 -1
- package/src/duckdb/src/catalog/catalog_entry/scalar_macro_catalog_entry.cpp +2 -2
- package/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp +1 -2
- package/src/duckdb/src/catalog/catalog_transaction.cpp +4 -0
- package/src/duckdb/src/catalog/duck_catalog.cpp +8 -1
- package/src/duckdb/src/common/enums/date_part_specifier.cpp +82 -0
- package/src/duckdb/src/common/types/vector.cpp +136 -3
- package/src/duckdb/src/{function → core_functions}/aggregate/algebraic/avg.cpp +9 -12
- package/src/duckdb/src/core_functions/aggregate/algebraic/corr.cpp +13 -0
- package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +21 -0
- package/src/duckdb/src/core_functions/aggregate/algebraic/stddev.cpp +34 -0
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/approx_count.cpp +3 -3
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/arg_min_max.cpp +7 -23
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bitagg.cpp +10 -10
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bitstring_agg.cpp +4 -4
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/bool.cpp +1 -17
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/entropy.cpp +5 -4
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/kurtosis.cpp +5 -6
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/minmax.cpp +5 -5
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/product.cpp +2 -11
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/skew.cpp +5 -6
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/string_agg.cpp +4 -6
- package/src/duckdb/src/{function → core_functions}/aggregate/distributive/sum.cpp +38 -46
- package/src/duckdb/src/{function → core_functions}/aggregate/holistic/approximate_quantile.cpp +4 -5
- package/src/duckdb/src/{function → core_functions}/aggregate/holistic/mode.cpp +4 -5
- package/src/duckdb/src/{function → core_functions}/aggregate/holistic/quantile.cpp +31 -23
- package/src/duckdb/src/{function → core_functions}/aggregate/holistic/reservoir_quantile.cpp +4 -5
- package/src/duckdb/src/{function → core_functions}/aggregate/nested/histogram.cpp +4 -4
- package/src/duckdb/src/{function → core_functions}/aggregate/nested/list.cpp +6 -10
- package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_avg.cpp +7 -11
- package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_count.cpp +4 -4
- package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_intercept.cpp +5 -8
- package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_r2.cpp +5 -7
- package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_slope.cpp +5 -7
- package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_sxx_syy.cpp +8 -12
- package/src/duckdb/src/{function → core_functions}/aggregate/regression/regr_sxy.cpp +6 -8
- package/src/duckdb/src/core_functions/core_functions.cpp +50 -0
- package/src/duckdb/src/core_functions/function_list.cpp +352 -0
- package/src/duckdb/src/{function → core_functions}/scalar/bit/bitstring.cpp +12 -15
- package/src/duckdb/src/{function → core_functions}/scalar/blob/base64.cpp +6 -6
- package/src/duckdb/src/{function → core_functions}/scalar/blob/encode.cpp +7 -6
- package/src/duckdb/src/{function → core_functions}/scalar/date/age.cpp +3 -3
- package/src/duckdb/src/{function → core_functions}/scalar/date/current.cpp +8 -8
- package/src/duckdb/src/{function → core_functions}/scalar/date/date_diff.cpp +3 -6
- package/src/duckdb/src/{function → core_functions}/scalar/date/date_part.cpp +144 -148
- package/src/duckdb/src/{function → core_functions}/scalar/date/date_sub.cpp +3 -6
- package/src/duckdb/src/{function → core_functions}/scalar/date/date_trunc.cpp +3 -6
- package/src/duckdb/src/{function → core_functions}/scalar/date/epoch.cpp +7 -8
- package/src/duckdb/src/{function → core_functions}/scalar/date/make_date.cpp +14 -14
- package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +251 -0
- package/src/duckdb/src/{function → core_functions}/scalar/date/time_bucket.cpp +4 -5
- package/src/duckdb/src/{function → core_functions}/scalar/date/to_interval.cpp +39 -19
- package/src/duckdb/src/{function/scalar/enum/enum_functions_implementation.cpp → core_functions/scalar/enum/enum_functions.cpp} +18 -22
- package/src/duckdb/src/{function → core_functions}/scalar/generic/alias.cpp +4 -4
- package/src/duckdb/src/{function → core_functions}/scalar/generic/current_setting.cpp +4 -5
- package/src/duckdb/src/{function → core_functions}/scalar/generic/error.cpp +4 -4
- package/src/duckdb/src/{function → core_functions}/scalar/generic/hash.cpp +4 -4
- package/src/duckdb/src/{function → core_functions}/scalar/generic/least.cpp +8 -9
- package/src/duckdb/src/{function → core_functions}/scalar/generic/stats.cpp +4 -4
- package/src/duckdb/src/{function/scalar/system → core_functions/scalar/generic}/system_functions.cpp +24 -13
- package/src/duckdb/src/{function → core_functions}/scalar/generic/typeof.cpp +4 -4
- package/src/duckdb/src/{function → core_functions}/scalar/list/array_slice.cpp +3 -13
- package/src/duckdb/src/{function → core_functions}/scalar/list/flatten.cpp +5 -5
- package/src/duckdb/src/{function → core_functions}/scalar/list/list_aggregates.cpp +2 -13
- package/src/duckdb/src/{function → core_functions}/scalar/list/list_lambdas.cpp +9 -24
- package/src/duckdb/src/{function → core_functions}/scalar/list/list_sort.cpp +8 -22
- package/src/duckdb/src/{function → core_functions}/scalar/list/list_value.cpp +4 -5
- package/src/duckdb/src/{function → core_functions}/scalar/list/range.cpp +8 -6
- package/src/duckdb/src/{function → core_functions}/scalar/map/cardinality.cpp +5 -4
- package/src/duckdb/src/{function → core_functions}/scalar/map/map.cpp +6 -63
- package/src/duckdb/src/{function → core_functions}/scalar/map/map_entries.cpp +5 -4
- package/src/duckdb/src/{function → core_functions}/scalar/map/map_extract.cpp +22 -7
- package/src/duckdb/src/{function → core_functions}/scalar/map/map_from_entries.cpp +6 -5
- package/src/duckdb/src/{function → core_functions}/scalar/map/map_keys_values.cpp +8 -7
- package/src/duckdb/src/{function → core_functions}/scalar/math/numeric.cpp +110 -138
- package/src/duckdb/src/{function → core_functions}/scalar/operators/bitwise.cpp +19 -20
- package/src/duckdb/src/{function/scalar/math → core_functions/scalar/random}/random.cpp +5 -6
- package/src/duckdb/src/{function/scalar/math → core_functions/scalar/random}/setseed.cpp +3 -3
- package/src/duckdb/src/{function → core_functions}/scalar/string/ascii.cpp +4 -5
- package/src/duckdb/src/{function → core_functions}/scalar/string/bar.cpp +4 -4
- package/src/duckdb/src/{function → core_functions}/scalar/string/chr.cpp +5 -6
- package/src/duckdb/src/{function → core_functions}/scalar/string/damerau_levenshtein.cpp +4 -6
- package/src/duckdb/src/{function/scalar/string/mismatches.cpp → core_functions/scalar/string/hamming.cpp} +3 -12
- package/src/duckdb/src/{function → core_functions}/scalar/string/hex.cpp +15 -25
- package/src/duckdb/src/{function → core_functions}/scalar/string/instr.cpp +6 -13
- package/src/duckdb/src/{function → core_functions}/scalar/string/jaccard.cpp +3 -6
- package/src/duckdb/src/{function → core_functions}/scalar/string/jaro_winkler.cpp +7 -6
- package/src/duckdb/src/{function → core_functions}/scalar/string/left_right.cpp +18 -11
- package/src/duckdb/src/{function → core_functions}/scalar/string/levenshtein.cpp +3 -12
- package/src/duckdb/src/{function → core_functions}/scalar/string/md5.cpp +15 -21
- package/src/duckdb/src/{function → core_functions}/scalar/string/pad.cpp +7 -13
- package/src/duckdb/src/{function → core_functions}/scalar/string/printf.cpp +10 -10
- package/src/duckdb/src/{function → core_functions}/scalar/string/repeat.cpp +3 -6
- package/src/duckdb/src/{function → core_functions}/scalar/string/replace.cpp +4 -7
- package/src/duckdb/src/{function → core_functions}/scalar/string/reverse.cpp +3 -3
- package/src/duckdb/src/{function → core_functions}/scalar/string/starts_with.cpp +4 -8
- package/src/duckdb/src/{function → core_functions}/scalar/string/string_split.cpp +11 -11
- package/src/duckdb/src/{function → core_functions}/scalar/string/translate.cpp +4 -7
- package/src/duckdb/src/{function → core_functions}/scalar/string/trim.cpp +19 -14
- package/src/duckdb/src/core_functions/scalar/string/unicode.cpp +28 -0
- package/src/duckdb/src/{function → core_functions}/scalar/struct/struct_insert.cpp +4 -4
- package/src/duckdb/src/{function → core_functions}/scalar/struct/struct_pack.cpp +3 -4
- package/src/duckdb/src/{function → core_functions}/scalar/union/union_extract.cpp +4 -8
- package/src/duckdb/src/{function → core_functions}/scalar/union/union_tag.cpp +4 -8
- package/src/duckdb/src/{function → core_functions}/scalar/union/union_value.cpp +4 -59
- package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/parallel_csv_reader.cpp +1 -1
- package/src/duckdb/src/function/aggregate/distributive_functions.cpp +0 -17
- package/src/duckdb/src/function/cast/string_cast.cpp +1 -1
- package/src/duckdb/src/function/function.cpp +0 -8
- package/src/duckdb/src/function/function_set.cpp +25 -0
- package/src/duckdb/src/function/scalar/generic_functions.cpp +1 -9
- package/src/duckdb/src/function/scalar/nested_functions.cpp +0 -22
- package/src/duckdb/src/function/scalar/operators.cpp +0 -6
- package/src/duckdb/src/function/scalar/{date/strftime.cpp → strftime_format.cpp} +1 -249
- package/src/duckdb/src/function/scalar/string/length.cpp +0 -19
- package/src/duckdb/src/function/scalar/string_functions.cpp +0 -40
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +5 -0
- package/src/duckdb/src/function/table/arrow_conversion.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +27 -40
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/function_entry.hpp +33 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/macro_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_transaction.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/algorithm.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +11 -1
- package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/corr.hpp +3 -4
- package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/covar.hpp +1 -1
- package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/algebraic/stddev.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic_functions.hpp +124 -0
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp +229 -0
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/holistic_functions.hpp +85 -0
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/nested_functions.hpp +41 -0
- package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/regression/regr_count.hpp +3 -4
- package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/regression/regr_slope.hpp +2 -2
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression_functions.hpp +97 -0
- package/src/duckdb/src/include/duckdb/{function → core_functions}/aggregate/sum_helpers.hpp +1 -1
- package/src/duckdb/src/include/duckdb/{function/scalar/uuid_functions.hpp → core_functions/core_functions.hpp} +7 -5
- package/src/duckdb/src/include/duckdb/core_functions/function_list.hpp +33 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/bit_functions.hpp +52 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/blob_functions.hpp +58 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/date_functions.hpp +544 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/enum_functions.hpp +61 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +142 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp +220 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +85 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp +394 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/operators_functions.hpp +70 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/random_functions.hpp +49 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +439 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/struct_functions.hpp +40 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/union_functions.hpp +43 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/base_csv_reader.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_reader_options.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp +0 -85
- package/src/duckdb/src/include/duckdb/function/built_in_functions.hpp +0 -8
- package/src/duckdb/src/include/duckdb/function/function_set.hpp +7 -2
- package/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp +1 -36
- package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +0 -120
- package/src/duckdb/src/include/duckdb/function/scalar/operators.hpp +0 -24
- package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +1 -97
- package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/extension_util.hpp +48 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +6 -0
- package/src/duckdb/src/main/extension/extension_helper.cpp +1 -0
- package/src/duckdb/src/main/extension/extension_load.cpp +48 -4
- package/src/duckdb/src/main/extension/extension_util.cpp +90 -0
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +6 -7
- package/src/duckdb/ub_src_common_enums.cpp +2 -0
- package/src/duckdb/ub_src_core_functions.cpp +4 -0
- package/src/duckdb/ub_src_core_functions_aggregate_algebraic.cpp +8 -0
- package/src/duckdb/ub_src_core_functions_aggregate_distributive.cpp +24 -0
- package/src/duckdb/ub_src_core_functions_aggregate_holistic.cpp +8 -0
- package/src/duckdb/ub_src_core_functions_aggregate_nested.cpp +4 -0
- package/src/duckdb/ub_src_core_functions_aggregate_regression.cpp +14 -0
- package/src/duckdb/ub_src_core_functions_scalar_bit.cpp +2 -0
- package/src/duckdb/ub_src_core_functions_scalar_blob.cpp +4 -0
- package/src/duckdb/ub_src_core_functions_scalar_date.cpp +22 -0
- package/src/duckdb/ub_src_core_functions_scalar_enum.cpp +2 -0
- package/src/duckdb/ub_src_core_functions_scalar_generic.cpp +16 -0
- package/src/duckdb/ub_src_core_functions_scalar_list.cpp +14 -0
- package/src/duckdb/ub_src_core_functions_scalar_map.cpp +12 -0
- package/src/duckdb/ub_src_core_functions_scalar_math.cpp +2 -0
- package/src/duckdb/ub_src_core_functions_scalar_operators.cpp +2 -0
- package/src/duckdb/ub_src_core_functions_scalar_random.cpp +4 -0
- package/src/duckdb/ub_src_core_functions_scalar_string.cpp +44 -0
- package/src/duckdb/ub_src_core_functions_scalar_struct.cpp +4 -0
- package/src/duckdb/ub_src_core_functions_scalar_union.cpp +6 -0
- package/src/duckdb/ub_src_function_aggregate.cpp +0 -8
- package/src/duckdb/ub_src_function_aggregate_distributive.cpp +0 -24
- package/src/duckdb/ub_src_function_scalar.cpp +2 -8
- package/src/duckdb/ub_src_function_scalar_generic.cpp +0 -14
- package/src/duckdb/ub_src_function_scalar_list.cpp +0 -14
- package/src/duckdb/ub_src_function_scalar_operators.cpp +0 -2
- package/src/duckdb/ub_src_function_scalar_string.cpp +0 -42
- package/src/duckdb/ub_src_function_scalar_struct.cpp +0 -4
- package/src/duckdb/ub_src_function_scalar_system.cpp +0 -2
- package/src/duckdb/ub_src_main_extension.cpp +2 -0
- package/src/duckdb/src/function/aggregate/algebraic/corr.cpp +0 -14
- package/src/duckdb/src/function/aggregate/algebraic/covar.cpp +0 -25
- package/src/duckdb/src/function/aggregate/algebraic/stddev.cpp +0 -54
- package/src/duckdb/src/function/aggregate/algebraic_functions.cpp +0 -21
- package/src/duckdb/src/function/aggregate/holistic_functions.cpp +0 -12
- package/src/duckdb/src/function/aggregate/nested_functions.cpp +0 -10
- package/src/duckdb/src/function/aggregate/regression_functions.cpp +0 -21
- package/src/duckdb/src/function/scalar/date_functions.cpp +0 -22
- package/src/duckdb/src/function/scalar/enum_functions.cpp +0 -13
- package/src/duckdb/src/function/scalar/math_functions.cpp +0 -50
- package/src/duckdb/src/function/scalar/trigonometrics_functions.cpp +0 -18
- package/src/duckdb/src/include/duckdb/function/aggregate/algebraic_functions.hpp +0 -56
- package/src/duckdb/src/include/duckdb/function/aggregate/holistic_functions.hpp +0 -33
- package/src/duckdb/src/include/duckdb/function/aggregate/nested_functions.hpp +0 -26
- package/src/duckdb/src/include/duckdb/function/aggregate/regression_functions.hpp +0 -53
- package/src/duckdb/src/include/duckdb/function/scalar/bit_functions.hpp +0 -32
- package/src/duckdb/src/include/duckdb/function/scalar/blob_functions.hpp +0 -24
- package/src/duckdb/src/include/duckdb/function/scalar/date_functions.hpp +0 -73
- package/src/duckdb/src/include/duckdb/function/scalar/enum_functions.hpp +0 -37
- package/src/duckdb/src/include/duckdb/function/scalar/math_functions.hpp +0 -137
- package/src/duckdb/src/include/duckdb/function/scalar/trigonometric_functions.hpp +0 -49
- package/src/duckdb/ub_src_function_aggregate_algebraic.cpp +0 -8
- package/src/duckdb/ub_src_function_aggregate_holistic.cpp +0 -8
- package/src/duckdb/ub_src_function_aggregate_nested.cpp +0 -4
- package/src/duckdb/ub_src_function_aggregate_regression.cpp +0 -14
- package/src/duckdb/ub_src_function_scalar_bit.cpp +0 -2
- package/src/duckdb/ub_src_function_scalar_blob.cpp +0 -4
- package/src/duckdb/ub_src_function_scalar_date.cpp +0 -22
- package/src/duckdb/ub_src_function_scalar_enum.cpp +0 -2
- package/src/duckdb/ub_src_function_scalar_map.cpp +0 -12
- package/src/duckdb/ub_src_function_scalar_math.cpp +0 -6
- package/src/duckdb/ub_src_function_scalar_union.cpp +0 -6
- /package/src/duckdb/src/include/duckdb/function/scalar/{strftime.hpp → strftime_format.hpp} +0 -0
package/src/duckdb/src/{function → core_functions}/aggregate/holistic/reservoir_quantile.cpp
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
#include "duckdb/execution/expression_executor.hpp"
|
2
2
|
#include "duckdb/execution/reservoir_sample.hpp"
|
3
|
-
#include "duckdb/
|
3
|
+
#include "duckdb/core_functions/aggregate/holistic_functions.hpp"
|
4
4
|
#include "duckdb/planner/expression.hpp"
|
5
5
|
#include "duckdb/common/queue.hpp"
|
6
6
|
#include "duckdb/common/field_writer.hpp"
|
@@ -452,8 +452,8 @@ static void GetReservoirQuantileDecimalFunction(AggregateFunctionSet &set, const
|
|
452
452
|
set.AddFunction(fun);
|
453
453
|
}
|
454
454
|
|
455
|
-
|
456
|
-
AggregateFunctionSet reservoir_quantile
|
455
|
+
AggregateFunctionSet ReservoirQuantileFun::GetFunctions() {
|
456
|
+
AggregateFunctionSet reservoir_quantile;
|
457
457
|
|
458
458
|
// DECIMAL
|
459
459
|
GetReservoirQuantileDecimalFunction(reservoir_quantile, {LogicalTypeId::DECIMAL, LogicalType::DOUBLE},
|
@@ -469,8 +469,7 @@ void ReservoirQuantileFun::RegisterFunction(BuiltinFunctions &set) {
|
|
469
469
|
DefineReservoirQuantile(reservoir_quantile, LogicalTypeId::HUGEINT);
|
470
470
|
DefineReservoirQuantile(reservoir_quantile, LogicalTypeId::FLOAT);
|
471
471
|
DefineReservoirQuantile(reservoir_quantile, LogicalTypeId::DOUBLE);
|
472
|
-
|
473
|
-
set.AddFunction(reservoir_quantile);
|
472
|
+
return reservoir_quantile;
|
474
473
|
}
|
475
474
|
|
476
475
|
} // namespace duckdb
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#include "duckdb/function/scalar/nested_functions.hpp"
|
2
|
-
#include "duckdb/
|
2
|
+
#include "duckdb/core_functions/aggregate/nested_functions.hpp"
|
3
3
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
4
4
|
#include "duckdb/common/pair.hpp"
|
5
5
|
#include "duckdb/planner/expression/bound_function_expression.hpp"
|
@@ -233,8 +233,8 @@ AggregateFunction GetHistogramFunction(const LogicalType &type) {
|
|
233
233
|
}
|
234
234
|
}
|
235
235
|
|
236
|
-
|
237
|
-
AggregateFunctionSet fun
|
236
|
+
AggregateFunctionSet HistogramFun::GetFunctions() {
|
237
|
+
AggregateFunctionSet fun;
|
238
238
|
fun.AddFunction(GetHistogramFunction<>(LogicalType::BOOLEAN));
|
239
239
|
fun.AddFunction(GetHistogramFunction<>(LogicalType::UTINYINT));
|
240
240
|
fun.AddFunction(GetHistogramFunction<>(LogicalType::USMALLINT));
|
@@ -255,7 +255,7 @@ void HistogramFun::RegisterFunction(BuiltinFunctions &set) {
|
|
255
255
|
fun.AddFunction(GetHistogramFunction<>(LogicalType::TIME));
|
256
256
|
fun.AddFunction(GetHistogramFunction<>(LogicalType::TIME_TZ));
|
257
257
|
fun.AddFunction(GetHistogramFunction<>(LogicalType::DATE));
|
258
|
-
|
258
|
+
return fun;
|
259
259
|
}
|
260
260
|
|
261
261
|
AggregateFunction HistogramFun::GetHistogramUnorderedMap(LogicalType &type) {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#include "duckdb/common/pair.hpp"
|
2
2
|
#include "duckdb/common/types/list_segment.hpp"
|
3
|
-
#include "duckdb/
|
3
|
+
#include "duckdb/core_functions/aggregate/nested_functions.hpp"
|
4
4
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
5
5
|
|
6
6
|
namespace duckdb {
|
@@ -180,15 +180,11 @@ unique_ptr<FunctionData> ListBindFunction(ClientContext &context, AggregateFunct
|
|
180
180
|
return make_uniq<ListBindData>(function.return_type);
|
181
181
|
}
|
182
182
|
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
AggregateFunction::StateDestroy<ListAggState, ListFunction>, nullptr, nullptr);
|
189
|
-
set.AddFunction(agg);
|
190
|
-
agg.name = "array_agg";
|
191
|
-
set.AddFunction(agg);
|
183
|
+
AggregateFunction ListFun::GetFunction() {
|
184
|
+
return AggregateFunction({LogicalType::ANY}, LogicalTypeId::LIST, AggregateFunction::StateSize<ListAggState>,
|
185
|
+
AggregateFunction::StateInitialize<ListAggState, ListFunction>, ListUpdateFunction,
|
186
|
+
ListCombineFunction, ListFinalize, nullptr, ListBindFunction,
|
187
|
+
AggregateFunction::StateDestroy<ListAggState, ListFunction>, nullptr, nullptr);
|
192
188
|
}
|
193
189
|
|
194
190
|
} // namespace duckdb
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#include "duckdb/common/exception.hpp"
|
2
2
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
3
|
-
#include "duckdb/
|
3
|
+
#include "duckdb/core_functions/aggregate/regression_functions.hpp"
|
4
4
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
5
5
|
#include "duckdb/function/function_set.hpp"
|
6
6
|
|
@@ -53,18 +53,14 @@ struct RegrAvgYFunction : RegrAvgFunction {
|
|
53
53
|
}
|
54
54
|
};
|
55
55
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
|
60
|
-
set.AddFunction(corr);
|
56
|
+
AggregateFunction RegrAvgxFun::GetFunction() {
|
57
|
+
return AggregateFunction::BinaryAggregate<RegrState, double, double, double, RegrAvgXFunction>(
|
58
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
|
61
59
|
}
|
62
60
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
|
67
|
-
set.AddFunction(corr);
|
61
|
+
AggregateFunction RegrAvgyFun::GetFunction() {
|
62
|
+
return AggregateFunction::BinaryAggregate<RegrState, double, double, double, RegrAvgYFunction>(
|
63
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
|
68
64
|
}
|
69
65
|
|
70
66
|
} // namespace duckdb
|
@@ -1,18 +1,18 @@
|
|
1
1
|
#include "duckdb/common/exception.hpp"
|
2
2
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
3
|
-
#include "duckdb/
|
3
|
+
#include "duckdb/core_functions/aggregate/regression_functions.hpp"
|
4
4
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
5
|
-
#include "duckdb/
|
5
|
+
#include "duckdb/core_functions/aggregate/regression/regr_count.hpp"
|
6
6
|
#include "duckdb/function/function_set.hpp"
|
7
7
|
|
8
8
|
namespace duckdb {
|
9
9
|
|
10
|
-
|
10
|
+
AggregateFunction RegrCountFun::GetFunction() {
|
11
11
|
auto regr_count = AggregateFunction::BinaryAggregate<size_t, double, double, uint32_t, RegrCountFunction>(
|
12
12
|
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::UINTEGER);
|
13
13
|
regr_count.name = "regr_count";
|
14
14
|
regr_count.null_handling = FunctionNullHandling::SPECIAL_HANDLING;
|
15
|
-
|
15
|
+
return regr_count;
|
16
16
|
}
|
17
17
|
|
18
18
|
} // namespace duckdb
|
@@ -1,7 +1,7 @@
|
|
1
1
|
//! AVG(y)-REGR_SLOPE(y,x)*AVG(x)
|
2
2
|
|
3
|
-
#include "duckdb/
|
4
|
-
#include "duckdb/
|
3
|
+
#include "duckdb/core_functions/aggregate/regression_functions.hpp"
|
4
|
+
#include "duckdb/core_functions/aggregate/regression/regr_slope.hpp"
|
5
5
|
#include "duckdb/function/function_set.hpp"
|
6
6
|
|
7
7
|
namespace duckdb {
|
@@ -58,12 +58,9 @@ struct RegrInterceptOperation {
|
|
58
58
|
}
|
59
59
|
};
|
60
60
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
AggregateFunction::BinaryAggregate<RegrInterceptState, double, double, double, RegrInterceptOperation>(
|
65
|
-
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
|
66
|
-
set.AddFunction(fun);
|
61
|
+
AggregateFunction RegrInterceptFun::GetFunction() {
|
62
|
+
return AggregateFunction::BinaryAggregate<RegrInterceptState, double, double, double, RegrInterceptOperation>(
|
63
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
|
67
64
|
}
|
68
65
|
|
69
66
|
} // namespace duckdb
|
@@ -4,9 +4,9 @@
|
|
4
4
|
// 1 if var_pop(y) = 0 and var_pop(x) <> 0, else
|
5
5
|
// power(corr(y,x), 2)
|
6
6
|
|
7
|
-
#include "duckdb/
|
7
|
+
#include "duckdb/core_functions/aggregate/algebraic/corr.hpp"
|
8
8
|
#include "duckdb/function/function_set.hpp"
|
9
|
-
#include "duckdb/
|
9
|
+
#include "duckdb/core_functions/aggregate/regression_functions.hpp"
|
10
10
|
|
11
11
|
namespace duckdb {
|
12
12
|
struct RegrR2State {
|
@@ -69,10 +69,8 @@ struct RegrR2Operation {
|
|
69
69
|
}
|
70
70
|
};
|
71
71
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
|
76
|
-
set.AddFunction(fun);
|
72
|
+
AggregateFunction RegrR2Fun::GetFunction() {
|
73
|
+
return AggregateFunction::BinaryAggregate<RegrR2State, double, double, double, RegrR2Operation>(
|
74
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
|
77
75
|
}
|
78
76
|
} // namespace duckdb
|
@@ -6,17 +6,15 @@
|
|
6
6
|
//! Input : Any numeric type
|
7
7
|
//! Output : Double
|
8
8
|
|
9
|
-
#include "duckdb/
|
9
|
+
#include "duckdb/core_functions/aggregate/regression/regr_slope.hpp"
|
10
10
|
#include "duckdb/function/function_set.hpp"
|
11
|
-
#include "duckdb/
|
11
|
+
#include "duckdb/core_functions/aggregate/regression_functions.hpp"
|
12
12
|
|
13
13
|
namespace duckdb {
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
|
19
|
-
set.AddFunction(fun);
|
15
|
+
AggregateFunction RegrSlopeFun::GetFunction() {
|
16
|
+
return AggregateFunction::BinaryAggregate<RegrSlopeState, double, double, double, RegrSlopeOperation>(
|
17
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
|
20
18
|
}
|
21
19
|
|
22
20
|
} // namespace duckdb
|
@@ -3,9 +3,9 @@
|
|
3
3
|
// regrsyy
|
4
4
|
// Returns REGR_COUNT(y, x) * VAR_POP(y) for non-null pairs.
|
5
5
|
|
6
|
-
#include "duckdb/
|
6
|
+
#include "duckdb/core_functions/aggregate/regression/regr_count.hpp"
|
7
7
|
#include "duckdb/function/function_set.hpp"
|
8
|
-
#include "duckdb/
|
8
|
+
#include "duckdb/core_functions/aggregate/regression_functions.hpp"
|
9
9
|
|
10
10
|
namespace duckdb {
|
11
11
|
|
@@ -67,18 +67,14 @@ struct RegrSYYOperation : RegrBaseOperation {
|
|
67
67
|
}
|
68
68
|
};
|
69
69
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
|
74
|
-
set.AddFunction(fun);
|
70
|
+
AggregateFunction RegrSXXFun::GetFunction() {
|
71
|
+
return AggregateFunction::BinaryAggregate<RegrSState, double, double, double, RegrSXXOperation>(
|
72
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
|
75
73
|
}
|
76
74
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
|
81
|
-
set.AddFunction(fun);
|
75
|
+
AggregateFunction RegrSYYFun::GetFunction() {
|
76
|
+
return AggregateFunction::BinaryAggregate<RegrSState, double, double, double, RegrSYYOperation>(
|
77
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
|
82
78
|
}
|
83
79
|
|
84
80
|
} // namespace duckdb
|
@@ -1,8 +1,8 @@
|
|
1
1
|
// Returns REGR_COUNT(expr1, expr2) * COVAR_POP(expr1, expr2) for non-null pairs.
|
2
2
|
|
3
|
-
#include "duckdb/
|
4
|
-
#include "duckdb/
|
5
|
-
#include "duckdb/
|
3
|
+
#include "duckdb/core_functions/aggregate/regression/regr_count.hpp"
|
4
|
+
#include "duckdb/core_functions/aggregate/algebraic/covar.hpp"
|
5
|
+
#include "duckdb/core_functions/aggregate/regression_functions.hpp"
|
6
6
|
#include "duckdb/function/function_set.hpp"
|
7
7
|
|
8
8
|
namespace duckdb {
|
@@ -48,11 +48,9 @@ struct RegrSXYOperation {
|
|
48
48
|
}
|
49
49
|
};
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE));
|
55
|
-
set.AddFunction(fun);
|
51
|
+
AggregateFunction RegrSXYFun::GetFunction() {
|
52
|
+
return AggregateFunction::BinaryAggregate<RegrSXyState, double, double, double, RegrSXYOperation>(
|
53
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
|
56
54
|
}
|
57
55
|
|
58
56
|
} // namespace duckdb
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#include "duckdb/core_functions/core_functions.hpp"
|
2
|
+
#include "duckdb/core_functions/function_list.hpp"
|
3
|
+
#include "duckdb/parser/parsed_data/create_aggregate_function_info.hpp"
|
4
|
+
#include "duckdb/parser/parsed_data/create_scalar_function_info.hpp"
|
5
|
+
|
6
|
+
namespace duckdb {
|
7
|
+
|
8
|
+
template <class T>
|
9
|
+
void FillExtraInfo(StaticFunctionDefinition &function, T &info) {
|
10
|
+
info.internal = true;
|
11
|
+
info.description = function.description;
|
12
|
+
info.parameter_names = StringUtil::Split(function.parameters, ",");
|
13
|
+
info.example = function.example;
|
14
|
+
}
|
15
|
+
|
16
|
+
void CoreFunctions::RegisterFunctions(Catalog &catalog, CatalogTransaction transaction) {
|
17
|
+
auto functions = StaticFunctionDefinition::GetFunctionList();
|
18
|
+
for (idx_t i = 0; functions[i].name; i++) {
|
19
|
+
auto &function = functions[i];
|
20
|
+
if (function.get_function || function.get_function_set) {
|
21
|
+
// scalar function
|
22
|
+
ScalarFunctionSet result;
|
23
|
+
if (function.get_function) {
|
24
|
+
result.AddFunction(function.get_function());
|
25
|
+
} else {
|
26
|
+
result = function.get_function_set();
|
27
|
+
}
|
28
|
+
result.name = function.name;
|
29
|
+
CreateScalarFunctionInfo info(result);
|
30
|
+
FillExtraInfo(function, info);
|
31
|
+
catalog.CreateFunction(transaction, info);
|
32
|
+
} else if (function.get_aggregate_function || function.get_aggregate_function_set) {
|
33
|
+
// aggregate function
|
34
|
+
AggregateFunctionSet result;
|
35
|
+
if (function.get_aggregate_function) {
|
36
|
+
result.AddFunction(function.get_aggregate_function());
|
37
|
+
} else {
|
38
|
+
result = function.get_aggregate_function_set();
|
39
|
+
}
|
40
|
+
result.name = function.name;
|
41
|
+
CreateAggregateFunctionInfo info(result);
|
42
|
+
FillExtraInfo(function, info);
|
43
|
+
catalog.CreateFunction(transaction, info);
|
44
|
+
} else {
|
45
|
+
throw InternalException("Do not know how to register function of this type");
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
} // namespace duckdb
|