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