duckdb 0.7.2-dev2706.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/extension/parquet/parquet_metadata.cpp +46 -20
- 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/execution/operator/persistent/physical_insert.cpp +19 -12
- 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/range.cpp +1 -0
- package/src/duckdb/src/function/table/repeat_row.cpp +60 -0
- 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/execution/operator/persistent/physical_insert.hpp +4 -3
- 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/range.hpp +4 -0
- 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/src/planner/binder/tableref/bind_table_function.cpp +5 -4
- 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_function_table.cpp +2 -0
- 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
@@ -5,7 +5,7 @@
|
|
5
5
|
#include "duckdb/common/exception.hpp"
|
6
6
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
7
7
|
#include "duckdb/common/operator/comparison_operators.hpp"
|
8
|
-
#include "duckdb/
|
8
|
+
#include "duckdb/core_functions/aggregate/holistic_functions.hpp"
|
9
9
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
10
10
|
#include "duckdb/common/unordered_map.hpp"
|
11
11
|
|
@@ -318,11 +318,11 @@ unique_ptr<FunctionData> BindModeDecimal(ClientContext &context, AggregateFuncti
|
|
318
318
|
return nullptr;
|
319
319
|
}
|
320
320
|
|
321
|
-
|
321
|
+
AggregateFunctionSet ModeFun::GetFunctions() {
|
322
322
|
const vector<LogicalType> TEMPORAL = {LogicalType::DATE, LogicalType::TIMESTAMP, LogicalType::TIME,
|
323
323
|
LogicalType::TIMESTAMP_TZ, LogicalType::TIME_TZ, LogicalType::INTERVAL};
|
324
324
|
|
325
|
-
AggregateFunctionSet mode
|
325
|
+
AggregateFunctionSet mode;
|
326
326
|
mode.AddFunction(AggregateFunction({LogicalTypeId::DECIMAL}, LogicalTypeId::DECIMAL, nullptr, nullptr, nullptr,
|
327
327
|
nullptr, nullptr, nullptr, BindModeDecimal));
|
328
328
|
|
@@ -337,7 +337,6 @@ void ModeFun::RegisterFunction(BuiltinFunctions &set) {
|
|
337
337
|
}
|
338
338
|
|
339
339
|
mode.AddFunction(GetModeAggregate(LogicalType::VARCHAR));
|
340
|
-
|
341
|
-
set.AddFunction(mode);
|
340
|
+
return mode;
|
342
341
|
}
|
343
342
|
} // namespace duckdb
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#include "duckdb/execution/expression_executor.hpp"
|
2
|
-
#include "duckdb/
|
2
|
+
#include "duckdb/core_functions/aggregate/holistic_functions.hpp"
|
3
3
|
#include "duckdb/planner/expression.hpp"
|
4
4
|
#include "duckdb/common/operator/cast_operators.hpp"
|
5
5
|
#include "duckdb/common/operator/abs.hpp"
|
@@ -1375,24 +1375,39 @@ AggregateFunction GetQuantileDecimalAggregate(const vector<LogicalType> &argumen
|
|
1375
1375
|
return fun;
|
1376
1376
|
}
|
1377
1377
|
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1378
|
+
vector<LogicalType> GetQuantileTypes() {
|
1379
|
+
return {LogicalType::TINYINT, LogicalType::SMALLINT, LogicalType::INTEGER, LogicalType::BIGINT,
|
1380
|
+
LogicalType::HUGEINT, LogicalType::FLOAT, LogicalType::DOUBLE, LogicalType::DATE,
|
1381
|
+
LogicalType::TIMESTAMP, LogicalType::TIME, LogicalType::TIMESTAMP_TZ, LogicalType::TIME_TZ,
|
1382
|
+
LogicalType::INTERVAL, LogicalType::VARCHAR};
|
1383
|
+
}
|
1384
1384
|
|
1385
|
+
AggregateFunctionSet MedianFun::GetFunctions() {
|
1385
1386
|
AggregateFunctionSet median("median");
|
1386
1387
|
median.AddFunction(
|
1387
1388
|
GetQuantileDecimalAggregate({LogicalTypeId::DECIMAL}, LogicalTypeId::DECIMAL, BindMedianDecimal));
|
1389
|
+
for (const auto &type : GetQuantileTypes()) {
|
1390
|
+
median.AddFunction(GetMedianAggregate(type));
|
1391
|
+
}
|
1392
|
+
return median;
|
1393
|
+
}
|
1388
1394
|
|
1395
|
+
AggregateFunctionSet QuantileDiscFun::GetFunctions() {
|
1389
1396
|
AggregateFunctionSet quantile_disc("quantile_disc");
|
1390
1397
|
quantile_disc.AddFunction(GetQuantileDecimalAggregate({LogicalTypeId::DECIMAL, LogicalType::DOUBLE},
|
1391
1398
|
LogicalTypeId::DECIMAL, BindDiscreteQuantileDecimal));
|
1392
1399
|
quantile_disc.AddFunction(
|
1393
1400
|
GetQuantileDecimalAggregate({LogicalTypeId::DECIMAL, LogicalType::LIST(LogicalType::DOUBLE)},
|
1394
1401
|
LogicalType::LIST(LogicalTypeId::DECIMAL), BindDiscreteQuantileDecimalList));
|
1402
|
+
for (const auto &type : GetQuantileTypes()) {
|
1403
|
+
quantile_disc.AddFunction(GetDiscreteQuantileAggregate(type));
|
1404
|
+
quantile_disc.AddFunction(GetDiscreteQuantileListAggregate(type));
|
1405
|
+
}
|
1406
|
+
return quantile_disc;
|
1407
|
+
// quantile
|
1408
|
+
}
|
1395
1409
|
|
1410
|
+
AggregateFunctionSet QuantileContFun::GetFunctions() {
|
1396
1411
|
AggregateFunctionSet quantile_cont("quantile_cont");
|
1397
1412
|
quantile_cont.AddFunction(GetQuantileDecimalAggregate({LogicalTypeId::DECIMAL, LogicalType::DOUBLE},
|
1398
1413
|
LogicalTypeId::DECIMAL, BindContinuousQuantileDecimal));
|
@@ -1400,34 +1415,27 @@ void QuantileFun::RegisterFunction(BuiltinFunctions &set) {
|
|
1400
1415
|
GetQuantileDecimalAggregate({LogicalTypeId::DECIMAL, LogicalType::LIST(LogicalType::DOUBLE)},
|
1401
1416
|
LogicalType::LIST(LogicalTypeId::DECIMAL), BindContinuousQuantileDecimalList));
|
1402
1417
|
|
1403
|
-
for (const auto &type :
|
1404
|
-
median.AddFunction(GetMedianAggregate(type));
|
1405
|
-
quantile_disc.AddFunction(GetDiscreteQuantileAggregate(type));
|
1406
|
-
quantile_disc.AddFunction(GetDiscreteQuantileListAggregate(type));
|
1418
|
+
for (const auto &type : GetQuantileTypes()) {
|
1407
1419
|
if (CanInterpolate(type)) {
|
1408
1420
|
quantile_cont.AddFunction(GetContinuousQuantileAggregate(type));
|
1409
1421
|
quantile_cont.AddFunction(GetContinuousQuantileListAggregate(type));
|
1410
1422
|
}
|
1411
1423
|
}
|
1424
|
+
return quantile_cont;
|
1425
|
+
}
|
1412
1426
|
|
1413
|
-
|
1414
|
-
set.AddFunction(quantile_disc);
|
1415
|
-
set.AddFunction(quantile_cont);
|
1416
|
-
|
1417
|
-
quantile_disc.name = "quantile";
|
1418
|
-
set.AddFunction(quantile_disc);
|
1419
|
-
|
1427
|
+
AggregateFunctionSet MadFun::GetFunctions() {
|
1420
1428
|
AggregateFunctionSet mad("mad");
|
1421
1429
|
mad.AddFunction(AggregateFunction({LogicalTypeId::DECIMAL}, LogicalTypeId::DECIMAL, nullptr, nullptr, nullptr,
|
1422
1430
|
nullptr, nullptr, nullptr, BindMedianAbsoluteDeviationDecimal));
|
1423
1431
|
|
1424
|
-
const vector<LogicalType>
|
1425
|
-
|
1426
|
-
|
1427
|
-
for (const auto &type :
|
1432
|
+
const vector<LogicalType> MAD_TYPES = {LogicalType::FLOAT, LogicalType::DOUBLE, LogicalType::DATE,
|
1433
|
+
LogicalType::TIMESTAMP, LogicalType::TIME, LogicalType::TIMESTAMP_TZ,
|
1434
|
+
LogicalType::TIME_TZ};
|
1435
|
+
for (const auto &type : MAD_TYPES) {
|
1428
1436
|
mad.AddFunction(GetMedianAbsoluteDeviationAggregateFunction(type));
|
1429
1437
|
}
|
1430
|
-
|
1438
|
+
return mad;
|
1431
1439
|
}
|
1432
1440
|
|
1433
1441
|
} // namespace duckdb
|
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
|