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.
- package/binding.gyp +21 -13
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +51 -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 +16 -28
- 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/local_file_system.cpp +1 -3
- package/src/duckdb/src/common/multi_file_reader.cpp +11 -8
- 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/schema/physical_create_type.cpp +11 -2
- 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/read_csv.cpp +7 -4
- 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/multi_file_reader.hpp +5 -4
- 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/schema/physical_create_type.hpp +4 -0
- 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/database.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/database_manager.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/extension_helper.hpp +0 -2
- 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/include/duckdb/parser/tableref/pivotref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +5 -1
- package/src/duckdb/src/main/attached_database.cpp +5 -3
- package/src/duckdb/src/main/database.cpp +34 -37
- package/src/duckdb/src/main/extension/extension_helper.cpp +1 -0
- package/src/duckdb/src/main/extension/extension_load.cpp +61 -38
- package/src/duckdb/src/main/extension/extension_util.cpp +90 -0
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +1 -4
- package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +2 -4
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +43 -24
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +3 -0
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +17 -28
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +6 -7
- package/src/duckdb/third_party/fmt/format.cc +0 -5
- package/src/duckdb/third_party/fmt/include/fmt/core.h +10 -12
- package/src/duckdb/third_party/fmt/include/fmt/format-inl.h +2 -33
- package/src/duckdb/third_party/fmt/include/fmt/format.h +61 -24
- package/src/duckdb/third_party/fmt/include/fmt/printf.h +15 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +1 -0
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +10735 -10674
- 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
@@ -18,6 +18,7 @@
|
|
18
18
|
#include "duckdb/common/fsst.hpp"
|
19
19
|
#include "fsst.h"
|
20
20
|
#include "duckdb/common/types/bit.hpp"
|
21
|
+
#include "duckdb/common/types/value_map.hpp"
|
21
22
|
|
22
23
|
#include "duckdb/common/serializer/format_serializer.hpp"
|
23
24
|
#include "duckdb/common/serializer/format_deserializer.hpp"
|
@@ -1256,7 +1257,7 @@ void Vector::UTFVerify(idx_t count) {
|
|
1256
1257
|
void Vector::VerifyMap(Vector &vector_p, const SelectionVector &sel_p, idx_t count) {
|
1257
1258
|
#ifdef DEBUG
|
1258
1259
|
D_ASSERT(vector_p.GetType().id() == LogicalTypeId::MAP);
|
1259
|
-
auto valid_check = CheckMapValidity(vector_p, count, sel_p);
|
1260
|
+
auto valid_check = MapVector::CheckMapValidity(vector_p, count, sel_p);
|
1260
1261
|
D_ASSERT(valid_check == MapInvalidReason::VALID);
|
1261
1262
|
#endif // DEBUG
|
1262
1263
|
}
|
@@ -1264,7 +1265,7 @@ void Vector::VerifyMap(Vector &vector_p, const SelectionVector &sel_p, idx_t cou
|
|
1264
1265
|
void Vector::VerifyUnion(Vector &vector_p, const SelectionVector &sel_p, idx_t count) {
|
1265
1266
|
#ifdef DEBUG
|
1266
1267
|
D_ASSERT(vector_p.GetType().id() == LogicalTypeId::UNION);
|
1267
|
-
auto valid_check = CheckUnionValidity(vector_p, count, sel_p);
|
1268
|
+
auto valid_check = UnionVector::CheckUnionValidity(vector_p, count, sel_p);
|
1268
1269
|
D_ASSERT(valid_check == UnionInvalidReason::VALID);
|
1269
1270
|
#endif // DEBUG
|
1270
1271
|
}
|
@@ -1439,6 +1440,9 @@ void Vector::Verify(idx_t count) {
|
|
1439
1440
|
Verify(*this, *flat_sel, count);
|
1440
1441
|
}
|
1441
1442
|
|
1443
|
+
//===--------------------------------------------------------------------===//
|
1444
|
+
// FlatVector
|
1445
|
+
//===--------------------------------------------------------------------===//
|
1442
1446
|
void FlatVector::SetNull(Vector &vector, idx_t idx, bool is_null) {
|
1443
1447
|
D_ASSERT(vector.GetVectorType() == VectorType::FLAT_VECTOR);
|
1444
1448
|
vector.validity.Set(idx, !is_null);
|
@@ -1451,6 +1455,9 @@ void FlatVector::SetNull(Vector &vector, idx_t idx, bool is_null) {
|
|
1451
1455
|
}
|
1452
1456
|
}
|
1453
1457
|
|
1458
|
+
//===--------------------------------------------------------------------===//
|
1459
|
+
// ConstantVector
|
1460
|
+
//===--------------------------------------------------------------------===//
|
1454
1461
|
void ConstantVector::SetNull(Vector &vector, bool is_null) {
|
1455
1462
|
D_ASSERT(vector.GetVectorType() == VectorType::CONSTANT_VECTOR);
|
1456
1463
|
vector.validity.Set(0, !is_null);
|
@@ -1539,6 +1546,9 @@ void ConstantVector::Reference(Vector &vector, Vector &source, idx_t position, i
|
|
1539
1546
|
}
|
1540
1547
|
}
|
1541
1548
|
|
1549
|
+
//===--------------------------------------------------------------------===//
|
1550
|
+
// StringVector
|
1551
|
+
//===--------------------------------------------------------------------===//
|
1542
1552
|
string_t StringVector::AddString(Vector &vector, const char *data, idx_t len) {
|
1543
1553
|
return StringVector::AddString(vector, string_t(data, len));
|
1544
1554
|
}
|
@@ -1629,6 +1639,9 @@ void StringVector::AddHeapReference(Vector &vector, Vector &other) {
|
|
1629
1639
|
StringVector::AddBuffer(vector, other.auxiliary);
|
1630
1640
|
}
|
1631
1641
|
|
1642
|
+
//===--------------------------------------------------------------------===//
|
1643
|
+
// FSSTVector
|
1644
|
+
//===--------------------------------------------------------------------===//
|
1632
1645
|
string_t FSSTVector::AddCompressedString(Vector &vector, const char *data, idx_t len) {
|
1633
1646
|
return FSSTVector::AddCompressedString(vector, string_t(data, len));
|
1634
1647
|
}
|
@@ -1714,6 +1727,9 @@ void FSSTVector::DecompressVector(const Vector &src, Vector &dst, idx_t src_offs
|
|
1714
1727
|
}
|
1715
1728
|
}
|
1716
1729
|
|
1730
|
+
//===--------------------------------------------------------------------===//
|
1731
|
+
// MapVector
|
1732
|
+
//===--------------------------------------------------------------------===//
|
1717
1733
|
Vector &MapVector::GetKeys(Vector &vector) {
|
1718
1734
|
auto &entries = StructVector::GetEntries(ListVector::GetEntry(vector));
|
1719
1735
|
D_ASSERT(entries.size() == 2);
|
@@ -1732,6 +1748,67 @@ const Vector &MapVector::GetValues(const Vector &vector) {
|
|
1732
1748
|
return GetValues((Vector &)vector);
|
1733
1749
|
}
|
1734
1750
|
|
1751
|
+
MapInvalidReason MapVector::CheckMapValidity(Vector &map, idx_t count, const SelectionVector &sel) {
|
1752
|
+
D_ASSERT(map.GetType().id() == LogicalTypeId::MAP);
|
1753
|
+
UnifiedVectorFormat map_vdata;
|
1754
|
+
|
1755
|
+
map.ToUnifiedFormat(count, map_vdata);
|
1756
|
+
auto &map_validity = map_vdata.validity;
|
1757
|
+
|
1758
|
+
auto list_data = ListVector::GetData(map);
|
1759
|
+
auto &keys = MapVector::GetKeys(map);
|
1760
|
+
UnifiedVectorFormat key_vdata;
|
1761
|
+
keys.ToUnifiedFormat(count, key_vdata);
|
1762
|
+
auto &key_validity = key_vdata.validity;
|
1763
|
+
|
1764
|
+
for (idx_t row = 0; row < count; row++) {
|
1765
|
+
auto mapped_row = sel.get_index(row);
|
1766
|
+
auto row_idx = map_vdata.sel->get_index(mapped_row);
|
1767
|
+
// map is allowed to be NULL
|
1768
|
+
if (!map_validity.RowIsValid(row_idx)) {
|
1769
|
+
continue;
|
1770
|
+
}
|
1771
|
+
row_idx = key_vdata.sel->get_index(row);
|
1772
|
+
value_set_t unique_keys;
|
1773
|
+
for (idx_t i = 0; i < list_data[row_idx].length; i++) {
|
1774
|
+
auto index = list_data[row_idx].offset + i;
|
1775
|
+
index = key_vdata.sel->get_index(index);
|
1776
|
+
if (!key_validity.RowIsValid(index)) {
|
1777
|
+
return MapInvalidReason::NULL_KEY;
|
1778
|
+
}
|
1779
|
+
auto value = keys.GetValue(index);
|
1780
|
+
auto result = unique_keys.insert(value);
|
1781
|
+
if (!result.second) {
|
1782
|
+
return MapInvalidReason::DUPLICATE_KEY;
|
1783
|
+
}
|
1784
|
+
}
|
1785
|
+
}
|
1786
|
+
return MapInvalidReason::VALID;
|
1787
|
+
}
|
1788
|
+
|
1789
|
+
void MapVector::MapConversionVerify(Vector &vector, idx_t count) {
|
1790
|
+
auto valid_check = MapVector::CheckMapValidity(vector, count);
|
1791
|
+
switch (valid_check) {
|
1792
|
+
case MapInvalidReason::VALID:
|
1793
|
+
break;
|
1794
|
+
case MapInvalidReason::DUPLICATE_KEY: {
|
1795
|
+
throw InvalidInputException("Map keys have to be unique");
|
1796
|
+
}
|
1797
|
+
case MapInvalidReason::NULL_KEY: {
|
1798
|
+
throw InvalidInputException("Map keys can not be NULL");
|
1799
|
+
}
|
1800
|
+
case MapInvalidReason::NULL_KEY_LIST: {
|
1801
|
+
throw InvalidInputException("The list of map keys is not allowed to be NULL");
|
1802
|
+
}
|
1803
|
+
default: {
|
1804
|
+
throw InternalException("MapInvalidReason not implemented");
|
1805
|
+
}
|
1806
|
+
}
|
1807
|
+
}
|
1808
|
+
|
1809
|
+
//===--------------------------------------------------------------------===//
|
1810
|
+
// StructVector
|
1811
|
+
//===--------------------------------------------------------------------===//
|
1735
1812
|
vector<unique_ptr<Vector>> &StructVector::GetEntries(Vector &vector) {
|
1736
1813
|
D_ASSERT(vector.GetType().id() == LogicalTypeId::STRUCT || vector.GetType().id() == LogicalTypeId::UNION);
|
1737
1814
|
|
@@ -1750,6 +1827,9 @@ const vector<unique_ptr<Vector>> &StructVector::GetEntries(const Vector &vector)
|
|
1750
1827
|
return GetEntries((Vector &)vector);
|
1751
1828
|
}
|
1752
1829
|
|
1830
|
+
//===--------------------------------------------------------------------===//
|
1831
|
+
// ListVector
|
1832
|
+
//===--------------------------------------------------------------------===//
|
1753
1833
|
const Vector &ListVector::GetEntry(const Vector &vector) {
|
1754
1834
|
D_ASSERT(vector.GetType().id() == LogicalTypeId::LIST || vector.GetType().id() == LogicalTypeId::MAP);
|
1755
1835
|
if (vector.GetVectorType() == VectorType::DICTIONARY_VECTOR) {
|
@@ -1928,7 +2008,9 @@ void ListVector::GetConsecutiveChildSelVector(Vector &list, SelectionVector &sel
|
|
1928
2008
|
// info.second.offset = 0;
|
1929
2009
|
}
|
1930
2010
|
|
1931
|
-
|
2011
|
+
//===--------------------------------------------------------------------===//
|
2012
|
+
// UnionVector
|
2013
|
+
//===--------------------------------------------------------------------===//
|
1932
2014
|
const Vector &UnionVector::GetMember(const Vector &vector, idx_t member_index) {
|
1933
2015
|
D_ASSERT(member_index < UnionType::GetMemberCount(vector.GetType()));
|
1934
2016
|
auto &entries = StructVector::GetEntries(vector);
|
@@ -2015,4 +2097,55 @@ union_tag_t UnionVector::GetTag(const Vector &vector, idx_t index) {
|
|
2015
2097
|
return FlatVector::GetData<union_tag_t>(tag_vector)[index];
|
2016
2098
|
}
|
2017
2099
|
|
2100
|
+
UnionInvalidReason UnionVector::CheckUnionValidity(Vector &vector, idx_t count, const SelectionVector &sel) {
|
2101
|
+
D_ASSERT(vector.GetType().id() == LogicalTypeId::UNION);
|
2102
|
+
auto member_count = UnionType::GetMemberCount(vector.GetType());
|
2103
|
+
if (member_count == 0) {
|
2104
|
+
return UnionInvalidReason::NO_MEMBERS;
|
2105
|
+
}
|
2106
|
+
|
2107
|
+
UnifiedVectorFormat union_vdata;
|
2108
|
+
vector.ToUnifiedFormat(count, union_vdata);
|
2109
|
+
|
2110
|
+
UnifiedVectorFormat tags_vdata;
|
2111
|
+
auto &tag_vector = UnionVector::GetTags(vector);
|
2112
|
+
tag_vector.ToUnifiedFormat(count, tags_vdata);
|
2113
|
+
|
2114
|
+
// check that only one member is valid at a time
|
2115
|
+
for (idx_t row_idx = 0; row_idx < count; row_idx++) {
|
2116
|
+
auto union_mapped_row_idx = sel.get_index(row_idx);
|
2117
|
+
if (!union_vdata.validity.RowIsValid(union_mapped_row_idx)) {
|
2118
|
+
continue;
|
2119
|
+
}
|
2120
|
+
|
2121
|
+
auto tag_mapped_row_idx = tags_vdata.sel->get_index(row_idx);
|
2122
|
+
if (!tags_vdata.validity.RowIsValid(tag_mapped_row_idx)) {
|
2123
|
+
continue;
|
2124
|
+
}
|
2125
|
+
|
2126
|
+
auto tag = ((union_tag_t *)tags_vdata.data)[tag_mapped_row_idx];
|
2127
|
+
if (tag >= member_count) {
|
2128
|
+
return UnionInvalidReason::TAG_OUT_OF_RANGE;
|
2129
|
+
}
|
2130
|
+
|
2131
|
+
bool found_valid = false;
|
2132
|
+
for (idx_t member_idx = 0; member_idx < member_count; member_idx++) {
|
2133
|
+
|
2134
|
+
UnifiedVectorFormat member_vdata;
|
2135
|
+
auto &member = UnionVector::GetMember(vector, member_idx);
|
2136
|
+
member.ToUnifiedFormat(count, member_vdata);
|
2137
|
+
|
2138
|
+
auto mapped_row_idx = member_vdata.sel->get_index(row_idx);
|
2139
|
+
if (member_vdata.validity.RowIsValid(mapped_row_idx)) {
|
2140
|
+
if (found_valid) {
|
2141
|
+
return UnionInvalidReason::VALIDITY_OVERLAP;
|
2142
|
+
}
|
2143
|
+
found_valid = true;
|
2144
|
+
}
|
2145
|
+
}
|
2146
|
+
}
|
2147
|
+
|
2148
|
+
return UnionInvalidReason::VALID;
|
2149
|
+
}
|
2150
|
+
|
2018
2151
|
} // namespace duckdb
|
@@ -1,5 +1,5 @@
|
|
1
|
-
#include "duckdb/
|
2
|
-
#include "duckdb/
|
1
|
+
#include "duckdb/core_functions/aggregate/algebraic_functions.hpp"
|
2
|
+
#include "duckdb/core_functions/aggregate/sum_helpers.hpp"
|
3
3
|
#include "duckdb/common/types/hugeint.hpp"
|
4
4
|
#include "duckdb/common/exception.hpp"
|
5
5
|
#include "duckdb/function/function_set.hpp"
|
@@ -177,8 +177,8 @@ unique_ptr<FunctionData> BindDecimalAvg(ClientContext &context, AggregateFunctio
|
|
177
177
|
Hugeint::Cast<double>(Hugeint::POWERS_OF_TEN[DecimalType::GetScale(decimal_type)]));
|
178
178
|
}
|
179
179
|
|
180
|
-
|
181
|
-
AggregateFunctionSet avg
|
180
|
+
AggregateFunctionSet AvgFun::GetFunctions() {
|
181
|
+
AggregateFunctionSet avg;
|
182
182
|
|
183
183
|
avg.AddFunction(AggregateFunction({LogicalTypeId::DECIMAL}, LogicalTypeId::DECIMAL, nullptr, nullptr, nullptr,
|
184
184
|
nullptr, nullptr, FunctionNullHandling::DEFAULT_NULL_HANDLING, nullptr,
|
@@ -189,15 +189,12 @@ void AvgFun::RegisterFunction(BuiltinFunctions &set) {
|
|
189
189
|
avg.AddFunction(GetAverageAggregate(PhysicalType::INT128));
|
190
190
|
avg.AddFunction(AggregateFunction::UnaryAggregate<AvgState<double>, double, double, NumericAverageOperation>(
|
191
191
|
LogicalType::DOUBLE, LogicalType::DOUBLE));
|
192
|
-
|
193
|
-
|
194
|
-
avg.name = "mean";
|
195
|
-
set.AddFunction(avg);
|
192
|
+
return avg;
|
193
|
+
}
|
196
194
|
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
set.AddFunction(favg);
|
195
|
+
AggregateFunction FAvgFun::GetFunction() {
|
196
|
+
return AggregateFunction::UnaryAggregate<KahanAvgState, double, double, KahanAverageOperation>(LogicalType::DOUBLE,
|
197
|
+
LogicalType::DOUBLE);
|
201
198
|
}
|
202
199
|
|
203
200
|
} // namespace duckdb
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#include "duckdb/core_functions/aggregate/algebraic_functions.hpp"
|
2
|
+
#include "duckdb/core_functions/aggregate/algebraic/covar.hpp"
|
3
|
+
#include "duckdb/core_functions/aggregate/algebraic/stddev.hpp"
|
4
|
+
#include "duckdb/core_functions/aggregate/algebraic/corr.hpp"
|
5
|
+
#include "duckdb/function/function_set.hpp"
|
6
|
+
|
7
|
+
namespace duckdb {
|
8
|
+
|
9
|
+
AggregateFunction CorrFun::GetFunction() {
|
10
|
+
return AggregateFunction::BinaryAggregate<CorrState, double, double, double, CorrOperation>(
|
11
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
|
12
|
+
}
|
13
|
+
} // namespace duckdb
|
@@ -0,0 +1,21 @@
|
|
1
|
+
#include "duckdb/core_functions/aggregate/algebraic_functions.hpp"
|
2
|
+
#include "duckdb/common/exception.hpp"
|
3
|
+
#include "duckdb/common/types/null_value.hpp"
|
4
|
+
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
5
|
+
#include "duckdb/function/function_set.hpp"
|
6
|
+
#include "duckdb/core_functions/aggregate/algebraic/covar.hpp"
|
7
|
+
#include <cmath>
|
8
|
+
|
9
|
+
namespace duckdb {
|
10
|
+
|
11
|
+
AggregateFunction CovarPopFun::GetFunction() {
|
12
|
+
return AggregateFunction::BinaryAggregate<CovarState, double, double, double, CovarPopOperation>(
|
13
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
|
14
|
+
}
|
15
|
+
|
16
|
+
AggregateFunction CovarSampFun::GetFunction() {
|
17
|
+
return AggregateFunction::BinaryAggregate<CovarState, double, double, double, CovarSampOperation>(
|
18
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE, LogicalType::DOUBLE);
|
19
|
+
}
|
20
|
+
|
21
|
+
} // namespace duckdb
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#include "duckdb/core_functions/aggregate/algebraic_functions.hpp"
|
2
|
+
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
3
|
+
#include "duckdb/function/function_set.hpp"
|
4
|
+
#include "duckdb/core_functions/aggregate/algebraic/stddev.hpp"
|
5
|
+
#include <cmath>
|
6
|
+
|
7
|
+
namespace duckdb {
|
8
|
+
|
9
|
+
AggregateFunction StdDevSampFun::GetFunction() {
|
10
|
+
return AggregateFunction::UnaryAggregate<StddevState, double, double, STDDevSampOperation>(LogicalType::DOUBLE,
|
11
|
+
LogicalType::DOUBLE);
|
12
|
+
}
|
13
|
+
|
14
|
+
AggregateFunction StdDevPopFun::GetFunction() {
|
15
|
+
return AggregateFunction::UnaryAggregate<StddevState, double, double, STDDevPopOperation>(LogicalType::DOUBLE,
|
16
|
+
LogicalType::DOUBLE);
|
17
|
+
}
|
18
|
+
|
19
|
+
AggregateFunction VarPopFun::GetFunction() {
|
20
|
+
return AggregateFunction::UnaryAggregate<StddevState, double, double, VarPopOperation>(LogicalType::DOUBLE,
|
21
|
+
LogicalType::DOUBLE);
|
22
|
+
}
|
23
|
+
|
24
|
+
AggregateFunction VarSampFun::GetFunction() {
|
25
|
+
return AggregateFunction::UnaryAggregate<StddevState, double, double, VarSampOperation>(LogicalType::DOUBLE,
|
26
|
+
LogicalType::DOUBLE);
|
27
|
+
}
|
28
|
+
|
29
|
+
AggregateFunction StandardErrorOfTheMeanFun::GetFunction() {
|
30
|
+
return AggregateFunction::UnaryAggregate<StddevState, double, double, StandardErrorOfTheMeanOperation>(
|
31
|
+
LogicalType::DOUBLE, LogicalType::DOUBLE);
|
32
|
+
}
|
33
|
+
|
34
|
+
} // namespace duckdb
|
@@ -1,8 +1,8 @@
|
|
1
|
+
#include "duckdb/core_functions/aggregate/distributive_functions.hpp"
|
1
2
|
#include "duckdb/common/exception.hpp"
|
2
3
|
#include "duckdb/common/types/hash.hpp"
|
3
4
|
#include "duckdb/common/types/hyperloglog.hpp"
|
4
5
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
5
|
-
#include "duckdb/function/aggregate/distributive_functions.hpp"
|
6
6
|
#include "duckdb/function/function_set.hpp"
|
7
7
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
8
8
|
|
@@ -127,7 +127,7 @@ AggregateFunction GetApproxCountDistinctFunction(const LogicalType &input_type)
|
|
127
127
|
return fun;
|
128
128
|
}
|
129
129
|
|
130
|
-
|
130
|
+
AggregateFunctionSet ApproxCountDistinctFun::GetFunctions() {
|
131
131
|
AggregateFunctionSet approx_count("approx_count_distinct");
|
132
132
|
approx_count.AddFunction(GetApproxCountDistinctFunction(LogicalType::UTINYINT));
|
133
133
|
approx_count.AddFunction(GetApproxCountDistinctFunction(LogicalType::USMALLINT));
|
@@ -142,7 +142,7 @@ void ApproxCountDistinctFun::RegisterFunction(BuiltinFunctions &set) {
|
|
142
142
|
approx_count.AddFunction(GetApproxCountDistinctFunction(LogicalType::VARCHAR));
|
143
143
|
approx_count.AddFunction(GetApproxCountDistinctFunction(LogicalType::TIMESTAMP));
|
144
144
|
approx_count.AddFunction(GetApproxCountDistinctFunction(LogicalType::TIMESTAMP_TZ));
|
145
|
-
|
145
|
+
return approx_count;
|
146
146
|
}
|
147
147
|
|
148
148
|
} // namespace duckdb
|
@@ -1,6 +1,6 @@
|
|
1
|
+
#include "duckdb/core_functions/aggregate/distributive_functions.hpp"
|
1
2
|
#include "duckdb/common/exception.hpp"
|
2
3
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
3
|
-
#include "duckdb/function/aggregate/distributive_functions.hpp"
|
4
4
|
#include "duckdb/function/function_set.hpp"
|
5
5
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
6
6
|
#include "duckdb/common/operator/comparison_operators.hpp"
|
@@ -336,32 +336,16 @@ static void AddArgMinMaxFunctions(AggregateFunctionSet &fun) {
|
|
336
336
|
AddVectorArgMinMaxFunctionBy<VECTOR_OP, Vector *>(fun, LogicalType::ANY);
|
337
337
|
}
|
338
338
|
|
339
|
-
|
340
|
-
AggregateFunctionSet fun
|
339
|
+
AggregateFunctionSet ArgMinFun::GetFunctions() {
|
340
|
+
AggregateFunctionSet fun;
|
341
341
|
AddArgMinMaxFunctions<LessThan>(fun);
|
342
|
-
|
343
|
-
|
344
|
-
//! Add min_by alias
|
345
|
-
fun.name = "min_by";
|
346
|
-
set.AddFunction(fun);
|
347
|
-
|
348
|
-
//! Add arg_min alias
|
349
|
-
fun.name = "arg_min";
|
350
|
-
set.AddFunction(fun);
|
342
|
+
return fun;
|
351
343
|
}
|
352
344
|
|
353
|
-
|
354
|
-
AggregateFunctionSet fun
|
345
|
+
AggregateFunctionSet ArgMaxFun::GetFunctions() {
|
346
|
+
AggregateFunctionSet fun;
|
355
347
|
AddArgMinMaxFunctions<GreaterThan>(fun);
|
356
|
-
|
357
|
-
|
358
|
-
//! Add max_by alias
|
359
|
-
fun.name = "max_by";
|
360
|
-
set.AddFunction(fun);
|
361
|
-
|
362
|
-
//! Add arg_max alias
|
363
|
-
fun.name = "arg_max";
|
364
|
-
set.AddFunction(fun);
|
348
|
+
return fun;
|
365
349
|
}
|
366
350
|
|
367
351
|
} // namespace duckdb
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#include "duckdb/
|
1
|
+
#include "duckdb/core_functions/aggregate/distributive_functions.hpp"
|
2
2
|
#include "duckdb/common/exception.hpp"
|
3
3
|
#include "duckdb/common/types/null_value.hpp"
|
4
4
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
@@ -189,8 +189,8 @@ struct BitStringXorOperation : public BitStringBitwiseOperation {
|
|
189
189
|
}
|
190
190
|
};
|
191
191
|
|
192
|
-
|
193
|
-
AggregateFunctionSet bit_and
|
192
|
+
AggregateFunctionSet BitAndFun::GetFunctions() {
|
193
|
+
AggregateFunctionSet bit_and;
|
194
194
|
for (auto &type : LogicalType::Integral()) {
|
195
195
|
bit_and.AddFunction(GetBitfieldUnaryAggregate<BitAndOperation>(type));
|
196
196
|
}
|
@@ -198,29 +198,29 @@ void BitAndFun::RegisterFunction(BuiltinFunctions &set) {
|
|
198
198
|
bit_and.AddFunction(
|
199
199
|
AggregateFunction::UnaryAggregateDestructor<BitState<string_t>, string_t, string_t, BitStringAndOperation>(
|
200
200
|
LogicalType::BIT, LogicalType::BIT));
|
201
|
-
|
201
|
+
return bit_and;
|
202
202
|
}
|
203
203
|
|
204
|
-
|
205
|
-
AggregateFunctionSet bit_or
|
204
|
+
AggregateFunctionSet BitOrFun::GetFunctions() {
|
205
|
+
AggregateFunctionSet bit_or;
|
206
206
|
for (auto &type : LogicalType::Integral()) {
|
207
207
|
bit_or.AddFunction(GetBitfieldUnaryAggregate<BitOrOperation>(type));
|
208
208
|
}
|
209
209
|
bit_or.AddFunction(
|
210
210
|
AggregateFunction::UnaryAggregateDestructor<BitState<string_t>, string_t, string_t, BitStringOrOperation>(
|
211
211
|
LogicalType::BIT, LogicalType::BIT));
|
212
|
-
|
212
|
+
return bit_or;
|
213
213
|
}
|
214
214
|
|
215
|
-
|
216
|
-
AggregateFunctionSet bit_xor
|
215
|
+
AggregateFunctionSet BitXorFun::GetFunctions() {
|
216
|
+
AggregateFunctionSet bit_xor;
|
217
217
|
for (auto &type : LogicalType::Integral()) {
|
218
218
|
bit_xor.AddFunction(GetBitfieldUnaryAggregate<BitXorOperation>(type));
|
219
219
|
}
|
220
220
|
bit_xor.AddFunction(
|
221
221
|
AggregateFunction::UnaryAggregateDestructor<BitState<string_t>, string_t, string_t, BitStringXorOperation>(
|
222
222
|
LogicalType::BIT, LogicalType::BIT));
|
223
|
-
|
223
|
+
return bit_xor;
|
224
224
|
}
|
225
225
|
|
226
226
|
} // namespace duckdb
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#include "duckdb/
|
1
|
+
#include "duckdb/core_functions/aggregate/distributive_functions.hpp"
|
2
2
|
#include "duckdb/common/exception.hpp"
|
3
3
|
#include "duckdb/common/types/null_value.hpp"
|
4
4
|
#include "duckdb/common/vector_operations/aggregate_executor.hpp"
|
@@ -224,7 +224,7 @@ static void BindBitString(AggregateFunctionSet &bitstring_agg, const LogicalType
|
|
224
224
|
bitstring_agg.AddFunction(function);
|
225
225
|
}
|
226
226
|
|
227
|
-
void
|
227
|
+
void GetBitStringAggregate(const LogicalType &type, AggregateFunctionSet &bitstring_agg) {
|
228
228
|
switch (type.id()) {
|
229
229
|
case LogicalType::TINYINT: {
|
230
230
|
return BindBitString<int8_t>(bitstring_agg, type.id());
|
@@ -258,12 +258,12 @@ void BitStringAggFun::GetBitStringAggregate(const LogicalType &type, AggregateFu
|
|
258
258
|
}
|
259
259
|
}
|
260
260
|
|
261
|
-
|
261
|
+
AggregateFunctionSet BitstringAggFun::GetFunctions() {
|
262
262
|
AggregateFunctionSet bitstring_agg("bitstring_agg");
|
263
263
|
for (auto &type : LogicalType::Integral()) {
|
264
264
|
GetBitStringAggregate(type, bitstring_agg);
|
265
265
|
}
|
266
|
-
|
266
|
+
return bitstring_agg;
|
267
267
|
}
|
268
268
|
|
269
269
|
} // namespace duckdb
|
@@ -1,6 +1,6 @@
|
|
1
|
+
#include "duckdb/core_functions/aggregate/distributive_functions.hpp"
|
1
2
|
#include "duckdb/common/exception.hpp"
|
2
3
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
3
|
-
#include "duckdb/function/aggregate/distributive_functions.hpp"
|
4
4
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
5
5
|
#include "duckdb/function/function_set.hpp"
|
6
6
|
|
@@ -94,7 +94,6 @@ struct BoolOrFunFunction {
|
|
94
94
|
AggregateFunction BoolOrFun::GetFunction() {
|
95
95
|
auto fun = AggregateFunction::UnaryAggregate<BoolState, bool, bool, BoolOrFunFunction>(
|
96
96
|
LogicalType(LogicalTypeId::BOOLEAN), LogicalType::BOOLEAN);
|
97
|
-
fun.name = "bool_or";
|
98
97
|
fun.order_dependent = AggregateOrderDependent::NOT_ORDER_DEPENDENT;
|
99
98
|
return fun;
|
100
99
|
}
|
@@ -102,23 +101,8 @@ AggregateFunction BoolOrFun::GetFunction() {
|
|
102
101
|
AggregateFunction BoolAndFun::GetFunction() {
|
103
102
|
auto fun = AggregateFunction::UnaryAggregate<BoolState, bool, bool, BoolAndFunFunction>(
|
104
103
|
LogicalType(LogicalTypeId::BOOLEAN), LogicalType::BOOLEAN);
|
105
|
-
fun.name = "bool_and";
|
106
104
|
fun.order_dependent = AggregateOrderDependent::NOT_ORDER_DEPENDENT;
|
107
105
|
return fun;
|
108
106
|
}
|
109
107
|
|
110
|
-
void BoolOrFun::RegisterFunction(BuiltinFunctions &set) {
|
111
|
-
AggregateFunction bool_or_function = BoolOrFun::GetFunction();
|
112
|
-
AggregateFunctionSet bool_or("bool_or");
|
113
|
-
bool_or.AddFunction(bool_or_function);
|
114
|
-
set.AddFunction(bool_or);
|
115
|
-
}
|
116
|
-
|
117
|
-
void BoolAndFun::RegisterFunction(BuiltinFunctions &set) {
|
118
|
-
AggregateFunction bool_and_function = BoolAndFun::GetFunction();
|
119
|
-
AggregateFunctionSet bool_and("bool_and");
|
120
|
-
bool_and.AddFunction(bool_and_function);
|
121
|
-
set.AddFunction(bool_and);
|
122
|
-
}
|
123
|
-
|
124
108
|
} // namespace duckdb
|
@@ -1,9 +1,10 @@
|
|
1
|
+
#include "duckdb/core_functions/aggregate/distributive_functions.hpp"
|
1
2
|
#include "duckdb/common/exception.hpp"
|
2
3
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
3
|
-
#include "duckdb/function/aggregate/distributive_functions.hpp"
|
4
4
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
5
5
|
#include "duckdb/function/function_set.hpp"
|
6
|
-
#include
|
6
|
+
#include "duckdb/common/algorithm.hpp"
|
7
|
+
#include "duckdb/common/unordered_map.hpp"
|
7
8
|
|
8
9
|
namespace duckdb {
|
9
10
|
|
@@ -161,7 +162,7 @@ AggregateFunction GetEntropyFunction(PhysicalType type) {
|
|
161
162
|
return fun;
|
162
163
|
}
|
163
164
|
|
164
|
-
|
165
|
+
AggregateFunctionSet EntropyFun::GetFunctions() {
|
165
166
|
AggregateFunctionSet entropy("entropy");
|
166
167
|
entropy.AddFunction(GetEntropyFunction(PhysicalType::UINT16));
|
167
168
|
entropy.AddFunction(GetEntropyFunction(PhysicalType::UINT32));
|
@@ -174,7 +175,7 @@ void EntropyFun::RegisterFunction(BuiltinFunctions &set) {
|
|
174
175
|
entropy.AddFunction(GetEntropyFunction(PhysicalType::VARCHAR));
|
175
176
|
entropy.AddFunction(GetEntropyFunction<int64_t, double>(LogicalType::TIMESTAMP, LogicalType::DOUBLE));
|
176
177
|
entropy.AddFunction(GetEntropyFunction<int64_t, double>(LogicalType::TIMESTAMP_TZ, LogicalType::DOUBLE));
|
177
|
-
|
178
|
+
return entropy;
|
178
179
|
}
|
179
180
|
|
180
181
|
} // namespace duckdb
|
@@ -1,7 +1,8 @@
|
|
1
|
+
#include "duckdb/core_functions/aggregate/distributive_functions.hpp"
|
1
2
|
#include "duckdb/common/exception.hpp"
|
2
3
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
3
|
-
#include "duckdb/function/aggregate/distributive_functions.hpp"
|
4
4
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
5
|
+
#include "duckdb/common/algorithm.hpp"
|
5
6
|
|
6
7
|
namespace duckdb {
|
7
8
|
|
@@ -85,11 +86,9 @@ struct KurtosisOperation {
|
|
85
86
|
}
|
86
87
|
};
|
87
88
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
LogicalType::DOUBLE, LogicalType::DOUBLE));
|
92
|
-
set.AddFunction(function_set);
|
89
|
+
AggregateFunction KurtosisFun::GetFunction() {
|
90
|
+
return AggregateFunction::UnaryAggregate<KurtosisState, double, double, KurtosisOperation>(LogicalType::DOUBLE,
|
91
|
+
LogicalType::DOUBLE);
|
93
92
|
}
|
94
93
|
|
95
94
|
} // namespace duckdb
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#include "duckdb/
|
1
|
+
#include "duckdb/core_functions/aggregate/distributive_functions.hpp"
|
2
2
|
#include "duckdb/common/exception.hpp"
|
3
3
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
4
4
|
#include "duckdb/common/operator/comparison_operators.hpp"
|
@@ -560,16 +560,16 @@ static void AddMinMaxOperator(AggregateFunctionSet &set) {
|
|
560
560
|
nullptr, BindMinMax<OP, OP_STRING, OP_VECTOR>));
|
561
561
|
}
|
562
562
|
|
563
|
-
|
563
|
+
AggregateFunctionSet MinFun::GetFunctions() {
|
564
564
|
AggregateFunctionSet min("min");
|
565
565
|
AddMinMaxOperator<MinOperation, MinOperationString, MinOperationVector>(min);
|
566
|
-
|
566
|
+
return min;
|
567
567
|
}
|
568
568
|
|
569
|
-
|
569
|
+
AggregateFunctionSet MaxFun::GetFunctions() {
|
570
570
|
AggregateFunctionSet max("max");
|
571
571
|
AddMinMaxOperator<MaxOperation, MaxOperationString, MaxOperationVector>(max);
|
572
|
-
|
572
|
+
return max;
|
573
573
|
}
|
574
574
|
|
575
575
|
} // namespace duckdb
|
@@ -1,6 +1,6 @@
|
|
1
|
+
#include "duckdb/core_functions/aggregate/distributive_functions.hpp"
|
1
2
|
#include "duckdb/common/exception.hpp"
|
2
3
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
3
|
-
#include "duckdb/function/aggregate/distributive_functions.hpp"
|
4
4
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
5
5
|
#include "duckdb/function/function_set.hpp"
|
6
6
|
|
@@ -54,17 +54,8 @@ struct ProductFunction {
|
|
54
54
|
};
|
55
55
|
|
56
56
|
AggregateFunction ProductFun::GetFunction() {
|
57
|
-
|
57
|
+
return AggregateFunction::UnaryAggregate<ProductState, double, double, ProductFunction>(
|
58
58
|
LogicalType(LogicalTypeId::DOUBLE), LogicalType::DOUBLE);
|
59
|
-
fun.name = "product";
|
60
|
-
return fun;
|
61
|
-
}
|
62
|
-
|
63
|
-
void ProductFun::RegisterFunction(BuiltinFunctions &set) {
|
64
|
-
AggregateFunction product_function = ProductFun::GetFunction();
|
65
|
-
AggregateFunctionSet product("product");
|
66
|
-
product.AddFunction(product_function);
|
67
|
-
set.AddFunction(product);
|
68
59
|
}
|
69
60
|
|
70
61
|
} // namespace duckdb
|
@@ -1,7 +1,8 @@
|
|
1
|
+
#include "duckdb/core_functions/aggregate/distributive_functions.hpp"
|
1
2
|
#include "duckdb/common/exception.hpp"
|
2
3
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
3
|
-
#include "duckdb/function/aggregate/distributive_functions.hpp"
|
4
4
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
5
|
+
#include "duckdb/common/algorithm.hpp"
|
5
6
|
|
6
7
|
namespace duckdb {
|
7
8
|
|
@@ -79,11 +80,9 @@ struct SkewnessOperation {
|
|
79
80
|
}
|
80
81
|
};
|
81
82
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
LogicalType::DOUBLE, LogicalType::DOUBLE));
|
86
|
-
set.AddFunction(function_set);
|
83
|
+
AggregateFunction SkewnessFun::GetFunction() {
|
84
|
+
return AggregateFunction::UnaryAggregate<SkewState, double, double, SkewnessOperation>(LogicalType::DOUBLE,
|
85
|
+
LogicalType::DOUBLE);
|
87
86
|
}
|
88
87
|
|
89
88
|
} // namespace duckdb
|