duckdb 1.1.2-dev2.0 → 1.1.2-dev6.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 +4 -2
- package/package.json +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/putil.cpp +0 -5
- package/src/duckdb/extension/icu/third_party/icu/common/rbbiscan.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/rbbitblb.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/ucurr.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/uresbund.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/uresimp.h +31 -31
- package/src/duckdb/extension/icu/third_party/icu/common/ustring.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/uvector.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/coleitr.cpp +12 -12
- package/src/duckdb/extension/icu/third_party/icu/i18n/format.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/listformatter.cpp +4 -4
- package/src/duckdb/extension/icu/third_party/icu/i18n/number_decimalquantity.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/tzgnames.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/coleitr.h +28 -28
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/format.h +7 -7
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucol.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucoleitr.h +41 -41
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/umsg.h +41 -41
- package/src/duckdb/extension/icu/third_party/icu/i18n/usrchimp.h +3 -3
- package/src/duckdb/extension/json/include/json_common.hpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +13 -7
- package/src/duckdb/extension/parquet/column_writer.cpp +2 -1
- package/src/duckdb/extension/parquet/geo_parquet.cpp +24 -9
- package/src/duckdb/extension/parquet/include/geo_parquet.hpp +3 -1
- package/src/duckdb/extension/parquet/include/parquet_reader.hpp +1 -0
- package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +1 -1
- package/src/duckdb/extension/parquet/include/templated_column_reader.hpp +0 -4
- package/src/duckdb/extension/parquet/parquet_extension.cpp +20 -6
- package/src/duckdb/extension/parquet/parquet_reader.cpp +1 -2
- package/src/duckdb/extension/parquet/parquet_writer.cpp +1 -1
- package/src/duckdb/extension/parquet/serialize_parquet.cpp +0 -2
- package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +8 -1
- package/src/duckdb/src/catalog/default/default_functions.cpp +5 -5
- package/src/duckdb/src/common/allocator.cpp +3 -2
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +1 -0
- package/src/duckdb/src/common/arrow/arrow_converter.cpp +11 -0
- package/src/duckdb/src/common/arrow/schema_metadata.cpp +6 -4
- package/src/duckdb/src/common/enum_util.cpp +33 -0
- package/src/duckdb/src/common/exception.cpp +3 -0
- package/src/duckdb/src/common/extra_type_info.cpp +1 -44
- package/src/duckdb/src/common/field_writer.cpp +97 -0
- package/src/duckdb/src/common/render_tree.cpp +7 -5
- package/src/duckdb/src/common/row_operations/row_match.cpp +359 -0
- package/src/duckdb/src/common/serializer/buffered_deserializer.cpp +27 -0
- package/src/duckdb/src/common/serializer/buffered_serializer.cpp +36 -0
- package/src/duckdb/src/common/serializer/format_serializer.cpp +15 -0
- package/src/duckdb/src/common/serializer.cpp +24 -0
- package/src/duckdb/src/common/sort/comparators.cpp +2 -2
- package/src/duckdb/src/common/types/bit.cpp +57 -34
- package/src/duckdb/src/common/types/data_chunk.cpp +32 -29
- package/src/duckdb/src/common/types/vector_cache.cpp +12 -6
- package/src/duckdb/src/common/vector_operations/comparison_operators.cpp +14 -0
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +20 -1
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/holistic/approx_top_k.cpp +32 -7
- package/src/duckdb/src/core_functions/function_list.cpp +1 -2
- package/src/duckdb/src/core_functions/scalar/bit/bitstring.cpp +23 -5
- package/src/duckdb/src/core_functions/scalar/date/date_diff.cpp +12 -6
- package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +1 -1
- package/src/duckdb/src/execution/expression_executor/execute_between.cpp +4 -3
- package/src/duckdb/src/execution/expression_executor/execute_case.cpp +4 -3
- package/src/duckdb/src/execution/expression_executor/execute_cast.cpp +2 -1
- package/src/duckdb/src/execution/expression_executor/execute_comparison.cpp +3 -2
- package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +2 -1
- package/src/duckdb/src/execution/expression_executor/execute_function.cpp +2 -1
- package/src/duckdb/src/execution/expression_executor/execute_operator.cpp +3 -2
- package/src/duckdb/src/execution/expression_executor/execute_reference.cpp +1 -1
- package/src/duckdb/src/execution/expression_executor.cpp +9 -3
- package/src/duckdb/src/execution/expression_executor_state.cpp +11 -9
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +238 -0
- package/src/duckdb/src/execution/index/art/plan_art.cpp +94 -0
- package/src/duckdb/src/execution/index/index_type_set.cpp +4 -1
- package/src/duckdb/src/execution/join_hashtable.cpp +7 -8
- package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +6 -4
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp +4 -4
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp +1 -1
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/csv_schema.cpp +44 -5
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +28 -24
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +25 -26
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +5 -3
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp +4 -4
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +2 -2
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_refinement.cpp +1 -1
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_replacement.cpp +1 -1
- package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine.cpp +1 -1
- package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp +2 -2
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp +1 -1
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp +1 -1
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +73 -27
- package/src/duckdb/src/execution/operator/helper/physical_buffered_collector.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +695 -0
- package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +1487 -0
- package/src/duckdb/src/execution/operator/persistent/csv_buffer.cpp +72 -0
- package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +158 -0
- package/src/duckdb/src/execution/operator/persistent/csv_reader_options.cpp +280 -0
- package/src/duckdb/src/execution/operator/persistent/parallel_csv_reader.cpp +666 -0
- package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +14 -4
- package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +207 -0
- package/src/duckdb/src/execution/partitionable_hashtable.cpp +207 -0
- package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +6 -1
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +0 -4
- package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +14 -87
- package/src/duckdb/src/execution/physical_plan/plan_export.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_get.cpp +1 -1
- package/src/duckdb/src/execution/reservoir_sample.cpp +1 -1
- package/src/duckdb/src/execution/window_executor.cpp +3 -3
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +1 -1
- package/src/duckdb/src/function/scalar/strftime_format.cpp +1 -2
- package/src/duckdb/src/function/scalar/string/concat.cpp +118 -151
- package/src/duckdb/src/function/table/arrow.cpp +13 -0
- package/src/duckdb/src/function/table/arrow_conversion.cpp +12 -7
- package/src/duckdb/src/function/table/copy_csv.cpp +1 -1
- package/src/duckdb/src/function/table/read_csv.cpp +2 -30
- package/src/duckdb/src/function/table/sniff_csv.cpp +2 -1
- package/src/duckdb/src/function/table/system/duckdb_secrets.cpp +15 -7
- package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry_retriever.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/atomic.hpp +13 -1
- package/src/duckdb/src/include/duckdb/common/bitpacking.hpp +3 -4
- package/src/duckdb/src/include/duckdb/common/enum_util.hpp +8 -0
- package/src/duckdb/src/include/duckdb/common/enums/metric_type.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/exception.hpp +10 -0
- package/src/duckdb/src/include/duckdb/common/extra_type_info/enum_type_info.hpp +53 -0
- package/src/duckdb/src/include/duckdb/common/insertion_order_preserving_map.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +5 -0
- package/src/duckdb/src/include/duckdb/common/types/bit.hpp +36 -33
- package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +10 -13
- package/src/duckdb/src/include/duckdb/common/types/uhugeint.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/vector_cache.hpp +7 -5
- package/src/duckdb/src/include/duckdb/common/windows_undefs.hpp +2 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/minmax_n_helpers.hpp +2 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/bit_functions.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp +0 -6
- package/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +3 -2
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/index/index_type.hpp +16 -1
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp +4 -4
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp +4 -2
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_schema.hpp +3 -2
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp +91 -36
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/sniff_result.hpp +36 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/join/perfect_hash_join_executor.hpp +0 -1
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_export.hpp +2 -5
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/database.hpp +5 -0
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/profiling_info.hpp +20 -22
- package/src/duckdb/src/include/duckdb/main/query_profiler.hpp +7 -9
- package/src/duckdb/src/include/duckdb/main/secret/secret.hpp +8 -1
- package/src/duckdb/src/include/duckdb/main/table_description.hpp +14 -0
- package/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp +5 -5
- package/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp +15 -5
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +10 -13
- package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +0 -2
- package/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +1 -0
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp +5 -1
- package/src/duckdb/src/include/duckdb.h +2 -2
- package/src/duckdb/src/main/appender.cpp +3 -0
- package/src/duckdb/src/main/capi/profiling_info-c.cpp +5 -2
- package/src/duckdb/src/main/client_context.cpp +8 -2
- package/src/duckdb/src/main/connection.cpp +1 -1
- package/src/duckdb/src/main/database.cpp +13 -0
- package/src/duckdb/src/main/extension/extension_helper.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_install.cpp +9 -1
- package/src/duckdb/src/main/extension/extension_load.cpp +3 -2
- package/src/duckdb/src/main/extension_install_info.cpp +1 -1
- package/src/duckdb/src/main/profiling_info.cpp +78 -58
- package/src/duckdb/src/main/query_profiler.cpp +79 -89
- package/src/duckdb/src/main/relation/read_csv_relation.cpp +1 -1
- package/src/duckdb/src/main/secret/secret.cpp +2 -1
- package/src/duckdb/src/main/secret/secret_manager.cpp +14 -0
- package/src/duckdb/src/optimizer/cte_filter_pusher.cpp +4 -2
- package/src/duckdb/src/optimizer/deliminator.cpp +0 -7
- package/src/duckdb/src/optimizer/in_clause_rewriter.cpp +7 -0
- package/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp +4 -1
- package/src/duckdb/src/optimizer/unnest_rewriter.cpp +21 -21
- package/src/duckdb/src/parallel/task_scheduler.cpp +9 -0
- package/src/duckdb/src/parser/parsed_data/exported_table_data.cpp +22 -0
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +3 -0
- package/src/duckdb/src/parser/statement/insert_statement.cpp +7 -1
- package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +1 -1
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +89 -87
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +2 -2
- package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +4 -9
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +4 -0
- package/src/duckdb/src/planner/binder/query_node/plan_setop.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +4 -1
- package/src/duckdb/src/planner/binder/statement/bind_export.cpp +4 -3
- package/src/duckdb/src/planner/expression_binder/order_binder.cpp +13 -3
- package/src/duckdb/src/planner/expression_binder.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_export.cpp +28 -0
- package/src/duckdb/src/planner/table_binding.cpp +1 -2
- package/src/duckdb/src/planner/table_filter.cpp +6 -2
- package/src/duckdb/src/storage/buffer/buffer_pool.cpp +2 -1
- package/src/duckdb/src/storage/checkpoint_manager.cpp +1 -1
- package/src/duckdb/src/storage/compression/bitpacking.cpp +7 -3
- package/src/duckdb/src/storage/compression/dictionary_compression.cpp +1 -1
- package/src/duckdb/src/storage/metadata/metadata_manager.cpp +2 -2
- package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +16 -0
- package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +29 -0
- package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +15 -0
- package/src/duckdb/src/storage/single_file_block_manager.cpp +2 -1
- package/src/duckdb/src/storage/statistics/distinct_statistics.cpp +3 -5
- package/src/duckdb/src/storage/storage_info.cpp +4 -4
- package/src/duckdb/src/storage/table/row_group_collection.cpp +1 -1
- package/src/duckdb/src/storage/table/row_version_manager.cpp +5 -1
- package/src/duckdb/src/storage/temporary_file_manager.cpp +1 -1
- package/src/duckdb/src/transaction/duck_transaction.cpp +15 -14
- package/src/duckdb/third_party/brotli/common/brotli_platform.h +1 -1
- package/src/duckdb/third_party/brotli/dec/decode.cpp +1 -1
- package/src/duckdb/third_party/brotli/enc/memory.cpp +4 -4
- package/src/duckdb/third_party/fsst/libfsst.cpp +1 -1
- package/src/duckdb/third_party/hyperloglog/sds.cpp +1 -1
- package/src/duckdb/third_party/hyperloglog/sds.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/common/keywords.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/datatype/timestamp.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/mb/pg_wchar.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/bitmapset.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/lockoptions.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/makefuncs.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/pg_list.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/value.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/parser/gramparse.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/parser/parser.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/parser/scanner.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/parser/scansup.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/include/pg_functions.hpp +1 -1
- package/src/duckdb/third_party/libpg_query/pg_functions.cpp +1 -1
- package/src/duckdb/third_party/libpg_query/src_backend_nodes_list.cpp +1 -1
- package/src/duckdb/third_party/libpg_query/src_backend_nodes_makefuncs.cpp +1 -1
- package/src/duckdb/third_party/libpg_query/src_backend_nodes_value.cpp +1 -1
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +1964 -1964
- package/src/duckdb/third_party/libpg_query/src_backend_parser_parser.cpp +1 -1
- package/src/duckdb/third_party/libpg_query/src_backend_parser_scansup.cpp +1 -1
- package/src/duckdb/third_party/libpg_query/src_common_keywords.cpp +1 -1
- package/src/duckdb/third_party/lz4/lz4.cpp +1 -1
- package/src/duckdb/third_party/mbedtls/include/des_alt.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/aes_alt.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/aria_alt.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/asn1write.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/camellia_alt.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/ccm_alt.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/chacha20.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/chachapoly.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/cmac.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/config_psa.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/ecdsa.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/ecp.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/gcm_alt.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/md5.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/nist_kw.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs12.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs5.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/psa_util.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/ripemd160.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/threading.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/timing.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/platform_alt.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/psa/crypto.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/rsa_alt.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/sha1_alt.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/sha256_alt.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/sha512_alt.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/ssl_misc.h +1 -1
- package/src/duckdb/third_party/mbedtls/library/aesni.h +1 -1
- package/src/duckdb/third_party/mbedtls/library/padlock.h +1 -1
- package/src/duckdb/third_party/miniz/miniz.cpp +1 -1
- package/src/duckdb/third_party/parquet/parquet_types.cpp +1 -1
- package/src/duckdb/third_party/parquet/windows_compatibility.h +1 -1
- package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
- package/src/duckdb/third_party/pcg/pcg_uint128.hpp +1 -1
- package/src/duckdb/third_party/skiplist/Node.h +4 -4
- package/src/duckdb/third_party/snappy/snappy.cc +1 -1
- package/src/duckdb/third_party/snappy/snappy_version.hpp +1 -1
- package/src/duckdb/third_party/thrift/thrift/thrift-config.h +1 -1
- package/src/duckdb/third_party/zstd/decompress/zstd_decompress_block.cpp +1 -1
- package/src/duckdb/third_party/zstd/include/zstd_static.h +1 -1
- package/src/duckdb/ub_src_execution_index_art.cpp +2 -0
- package/src/duckdb/ub_src_parser_parsed_data.cpp +2 -0
- package/src/duckdb/ub_src_planner_operator.cpp +2 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include "duckdb/common/extra_type_info.hpp"
|
4
|
+
#include "duckdb/common/serializer/deserializer.hpp"
|
5
|
+
#include "duckdb/common/string_map_set.hpp"
|
6
|
+
|
7
|
+
namespace duckdb {
|
8
|
+
|
9
|
+
template <class T>
|
10
|
+
struct EnumTypeInfoTemplated : public EnumTypeInfo {
|
11
|
+
explicit EnumTypeInfoTemplated(Vector &values_insert_order_p, idx_t size_p)
|
12
|
+
: EnumTypeInfo(values_insert_order_p, size_p) {
|
13
|
+
D_ASSERT(values_insert_order_p.GetType().InternalType() == PhysicalType::VARCHAR);
|
14
|
+
|
15
|
+
UnifiedVectorFormat vdata;
|
16
|
+
values_insert_order.ToUnifiedFormat(size_p, vdata);
|
17
|
+
|
18
|
+
auto data = UnifiedVectorFormat::GetData<string_t>(vdata);
|
19
|
+
for (idx_t i = 0; i < size_p; i++) {
|
20
|
+
auto idx = vdata.sel->get_index(i);
|
21
|
+
if (!vdata.validity.RowIsValid(idx)) {
|
22
|
+
throw InternalException("Attempted to create ENUM type with NULL value");
|
23
|
+
}
|
24
|
+
if (values.count(data[idx]) > 0) {
|
25
|
+
throw InvalidInputException("Attempted to create ENUM type with duplicate value %s",
|
26
|
+
data[idx].GetString());
|
27
|
+
}
|
28
|
+
values[data[idx]] = UnsafeNumericCast<T>(i);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
static shared_ptr<EnumTypeInfoTemplated> Deserialize(Deserializer &deserializer, uint32_t size) {
|
33
|
+
Vector values_insert_order(LogicalType::VARCHAR, size);
|
34
|
+
auto strings = FlatVector::GetData<string_t>(values_insert_order);
|
35
|
+
|
36
|
+
deserializer.ReadList(201, "values", [&](Deserializer::List &list, idx_t i) {
|
37
|
+
strings[i] = StringVector::AddStringOrBlob(values_insert_order, list.ReadElement<string>());
|
38
|
+
});
|
39
|
+
return make_shared_ptr<EnumTypeInfoTemplated>(values_insert_order, size);
|
40
|
+
}
|
41
|
+
|
42
|
+
const string_map_t<T> &GetValues() const {
|
43
|
+
return values;
|
44
|
+
}
|
45
|
+
|
46
|
+
EnumTypeInfoTemplated(const EnumTypeInfoTemplated &) = delete;
|
47
|
+
EnumTypeInfoTemplated &operator=(const EnumTypeInfoTemplated &) = delete;
|
48
|
+
|
49
|
+
private:
|
50
|
+
string_map_t<T> values;
|
51
|
+
};
|
52
|
+
|
53
|
+
} // namespace duckdb
|
@@ -95,13 +95,13 @@ public:
|
|
95
95
|
map.resize(nz);
|
96
96
|
}
|
97
97
|
|
98
|
-
void insert(const string &key, V
|
99
|
-
map.
|
98
|
+
void insert(const string &key, V &&value) { // NOLINT: match stl API
|
99
|
+
map.emplace_back(key, std::move(value));
|
100
100
|
map_idx[key] = map.size() - 1;
|
101
101
|
}
|
102
102
|
|
103
|
-
void insert(const string &key, V
|
104
|
-
map.
|
103
|
+
void insert(const string &key, const V &value) { // NOLINT: match stl API
|
104
|
+
map.emplace_back(key, value);
|
105
105
|
map_idx[key] = map.size() - 1;
|
106
106
|
}
|
107
107
|
|
@@ -133,7 +133,7 @@ public:
|
|
133
133
|
V &operator[](const string &key) {
|
134
134
|
if (!contains(key)) {
|
135
135
|
auto v = V();
|
136
|
-
insert(key, v);
|
136
|
+
insert(key, std::move(v));
|
137
137
|
}
|
138
138
|
return map[map_idx[key]].second;
|
139
139
|
}
|
@@ -255,6 +255,11 @@ struct MultiFileReader {
|
|
255
255
|
static void PruneReaders(BIND_DATA &data, MultiFileList &file_list) {
|
256
256
|
unordered_set<string> file_set;
|
257
257
|
|
258
|
+
// Avoid materializing the file list if there's nothing to prune
|
259
|
+
if (!data.initial_reader && data.union_readers.empty()) {
|
260
|
+
return;
|
261
|
+
}
|
262
|
+
|
258
263
|
for (const auto &file : file_list.Files()) {
|
259
264
|
file_set.insert(file);
|
260
265
|
}
|
@@ -17,85 +17,88 @@
|
|
17
17
|
|
18
18
|
namespace duckdb {
|
19
19
|
|
20
|
+
using bitstring_t = duckdb::string_t;
|
21
|
+
|
20
22
|
//! The Bit class is a static class that holds helper functions for the BIT type.
|
21
23
|
class Bit {
|
22
24
|
public:
|
23
25
|
//! Returns the number of bits in the bit string
|
24
|
-
DUCKDB_API static idx_t BitLength(
|
26
|
+
DUCKDB_API static idx_t BitLength(bitstring_t bits);
|
25
27
|
//! Returns the number of set bits in the bit string
|
26
|
-
DUCKDB_API static idx_t BitCount(
|
28
|
+
DUCKDB_API static idx_t BitCount(bitstring_t bits);
|
27
29
|
//! Returns the number of bytes in the bit string
|
28
|
-
DUCKDB_API static idx_t OctetLength(
|
30
|
+
DUCKDB_API static idx_t OctetLength(bitstring_t bits);
|
29
31
|
//! Extracts the nth bit from bit string; the first (leftmost) bit is indexed 0
|
30
|
-
DUCKDB_API static idx_t GetBit(
|
32
|
+
DUCKDB_API static idx_t GetBit(bitstring_t bit_string, idx_t n);
|
31
33
|
//! Sets the nth bit in bit string to newvalue; the first (leftmost) bit is indexed 0
|
32
|
-
DUCKDB_API static void SetBit(
|
34
|
+
DUCKDB_API static void SetBit(bitstring_t &bit_string, idx_t n, idx_t new_value);
|
33
35
|
//! Returns first starting index of the specified substring within bits, or zero if it's not present.
|
34
|
-
DUCKDB_API static idx_t BitPosition(
|
36
|
+
DUCKDB_API static idx_t BitPosition(bitstring_t substring, bitstring_t bits);
|
35
37
|
//! Converts bits to a string, writing the output to the designated output string.
|
36
38
|
//! The string needs to have space for at least GetStringSize(bits) bytes.
|
37
|
-
DUCKDB_API static void ToString(
|
38
|
-
DUCKDB_API static string ToString(
|
39
|
+
DUCKDB_API static void ToString(bitstring_t bits, char *output);
|
40
|
+
DUCKDB_API static string ToString(bitstring_t bits);
|
39
41
|
//! Returns the bit size of a string -> bit conversion
|
40
42
|
DUCKDB_API static bool TryGetBitStringSize(string_t str, idx_t &result_size, string *error_message);
|
41
43
|
//! Convert a string to a bit. This function should ONLY be called after calling GetBitSize, since it does NOT
|
42
44
|
//! perform data validation.
|
43
|
-
DUCKDB_API static void ToBit(string_t str,
|
45
|
+
DUCKDB_API static void ToBit(string_t str, bitstring_t &output);
|
44
46
|
|
45
47
|
DUCKDB_API static string ToBit(string_t str);
|
46
48
|
|
47
49
|
//! output needs to have enough space allocated before calling this function (blob size + 1)
|
48
|
-
DUCKDB_API static void BlobToBit(string_t blob,
|
50
|
+
DUCKDB_API static void BlobToBit(string_t blob, bitstring_t &output);
|
49
51
|
|
50
52
|
DUCKDB_API static string BlobToBit(string_t blob);
|
51
53
|
|
52
54
|
//! output_str needs to have enough space allocated before calling this function (sizeof(T) + 1)
|
53
55
|
template <class T>
|
54
|
-
static void NumericToBit(T numeric,
|
56
|
+
static void NumericToBit(T numeric, bitstring_t &output_str);
|
55
57
|
|
56
58
|
template <class T>
|
57
59
|
static string NumericToBit(T numeric);
|
58
60
|
|
59
61
|
//! bit is expected to fit inside of output num (bit size <= sizeof(T) + 1)
|
60
62
|
template <class T>
|
61
|
-
static void BitToNumeric(
|
63
|
+
static void BitToNumeric(bitstring_t bit, T &output_num);
|
62
64
|
|
63
65
|
template <class T>
|
64
|
-
static T BitToNumeric(
|
66
|
+
static T BitToNumeric(bitstring_t bit);
|
65
67
|
|
66
68
|
//! bit is expected to fit inside of output_blob (bit size = output_blob + 1)
|
67
|
-
static void BitToBlob(
|
69
|
+
static void BitToBlob(bitstring_t bit, string_t &output_blob);
|
68
70
|
|
69
|
-
static string BitToBlob(
|
71
|
+
static string BitToBlob(bitstring_t bit);
|
70
72
|
|
71
73
|
//! Creates a new bitstring of determined length
|
72
|
-
DUCKDB_API static void BitString(const string_t &input,
|
73
|
-
DUCKDB_API static void
|
74
|
-
DUCKDB_API static void SetEmptyBitString(
|
74
|
+
DUCKDB_API static void BitString(const string_t &input, idx_t len, bitstring_t &result);
|
75
|
+
DUCKDB_API static void ExtendBitString(const bitstring_t &input, idx_t bit_length, bitstring_t &result);
|
76
|
+
DUCKDB_API static void SetEmptyBitString(bitstring_t &target, string_t &input);
|
77
|
+
DUCKDB_API static void SetEmptyBitString(bitstring_t &target, idx_t len);
|
75
78
|
DUCKDB_API static idx_t ComputeBitstringLen(idx_t len);
|
76
79
|
|
77
|
-
DUCKDB_API static void RightShift(const
|
78
|
-
DUCKDB_API static void LeftShift(const
|
79
|
-
DUCKDB_API static void BitwiseAnd(const
|
80
|
-
DUCKDB_API static void BitwiseOr(const
|
81
|
-
DUCKDB_API static void BitwiseXor(const
|
82
|
-
DUCKDB_API static void BitwiseNot(const
|
80
|
+
DUCKDB_API static void RightShift(const bitstring_t &bit_string, idx_t shift, bitstring_t &result);
|
81
|
+
DUCKDB_API static void LeftShift(const bitstring_t &bit_string, idx_t shift, bitstring_t &result);
|
82
|
+
DUCKDB_API static void BitwiseAnd(const bitstring_t &rhs, const bitstring_t &lhs, bitstring_t &result);
|
83
|
+
DUCKDB_API static void BitwiseOr(const bitstring_t &rhs, const bitstring_t &lhs, bitstring_t &result);
|
84
|
+
DUCKDB_API static void BitwiseXor(const bitstring_t &rhs, const bitstring_t &lhs, bitstring_t &result);
|
85
|
+
DUCKDB_API static void BitwiseNot(const bitstring_t &rhs, bitstring_t &result);
|
83
86
|
|
84
|
-
DUCKDB_API static void Verify(const
|
87
|
+
DUCKDB_API static void Verify(const bitstring_t &input);
|
85
88
|
|
86
89
|
private:
|
87
|
-
static void Finalize(
|
88
|
-
static idx_t GetBitInternal(
|
89
|
-
static void SetBitInternal(
|
90
|
+
static void Finalize(bitstring_t &str);
|
91
|
+
static idx_t GetBitInternal(bitstring_t bit_string, idx_t n);
|
92
|
+
static void SetBitInternal(bitstring_t &bit_string, idx_t n, idx_t new_value);
|
90
93
|
static idx_t GetBitIndex(idx_t n);
|
91
|
-
static uint8_t GetFirstByte(const
|
94
|
+
static uint8_t GetFirstByte(const bitstring_t &str);
|
92
95
|
};
|
93
96
|
|
94
97
|
//===--------------------------------------------------------------------===//
|
95
98
|
// Bit Template definitions
|
96
99
|
//===--------------------------------------------------------------------===//
|
97
100
|
template <class T>
|
98
|
-
void Bit::NumericToBit(T numeric,
|
101
|
+
void Bit::NumericToBit(T numeric, bitstring_t &output_str) {
|
99
102
|
D_ASSERT(output_str.GetSize() >= sizeof(T) + 1);
|
100
103
|
|
101
104
|
auto output = output_str.GetDataWriteable();
|
@@ -113,20 +116,20 @@ template <class T>
|
|
113
116
|
string Bit::NumericToBit(T numeric) {
|
114
117
|
auto bit_len = sizeof(T) + 1;
|
115
118
|
auto buffer = make_unsafe_uniq_array_uninitialized<char>(bit_len);
|
116
|
-
|
119
|
+
bitstring_t output_str(buffer.get(), UnsafeNumericCast<uint32_t>(bit_len));
|
117
120
|
Bit::NumericToBit(numeric, output_str);
|
118
121
|
return output_str.GetString();
|
119
122
|
}
|
120
123
|
|
121
124
|
template <class T>
|
122
|
-
T Bit::BitToNumeric(
|
125
|
+
T Bit::BitToNumeric(bitstring_t bit) {
|
123
126
|
T output;
|
124
127
|
Bit::BitToNumeric(bit, output);
|
125
128
|
return (output);
|
126
129
|
}
|
127
130
|
|
128
131
|
template <class T>
|
129
|
-
void Bit::BitToNumeric(
|
132
|
+
void Bit::BitToNumeric(bitstring_t bit, T &output_num) {
|
130
133
|
D_ASSERT(bit.GetSize() <= sizeof(T) + 1);
|
131
134
|
|
132
135
|
output_num = 0;
|
@@ -83,22 +83,19 @@ public:
|
|
83
83
|
//! Set the DataChunk to own the data of data chunk, destroying the other chunk in the process
|
84
84
|
DUCKDB_API void Move(DataChunk &chunk);
|
85
85
|
|
86
|
-
//! Initializes
|
87
|
-
|
88
|
-
|
89
|
-
//! the
|
86
|
+
//! Initializes a DataChunk with the given types and without any vector data allocation.
|
87
|
+
DUCKDB_API void InitializeEmpty(const vector<LogicalType> &types);
|
88
|
+
|
89
|
+
//! Initializes a DataChunk with the given types. Then, if the corresponding boolean in the initialize-vector is
|
90
|
+
//! true, it initializes the vector for that data type.
|
91
|
+
DUCKDB_API void Initialize(ClientContext &context, const vector<LogicalType> &types,
|
92
|
+
idx_t capacity = STANDARD_VECTOR_SIZE);
|
90
93
|
DUCKDB_API void Initialize(Allocator &allocator, const vector<LogicalType> &types,
|
91
94
|
idx_t capacity = STANDARD_VECTOR_SIZE);
|
92
|
-
DUCKDB_API void Initialize(ClientContext &context, const vector<LogicalType> &types,
|
95
|
+
DUCKDB_API void Initialize(ClientContext &context, const vector<LogicalType> &types, const vector<bool> &initialize,
|
96
|
+
idx_t capacity = STANDARD_VECTOR_SIZE);
|
97
|
+
DUCKDB_API void Initialize(Allocator &allocator, const vector<LogicalType> &types, const vector<bool> &initialize,
|
93
98
|
idx_t capacity = STANDARD_VECTOR_SIZE);
|
94
|
-
//! Initializes an empty DataChunk with the given types. The vectors will *not* have any data allocated for them.
|
95
|
-
DUCKDB_API void InitializeEmpty(const vector<LogicalType> &types);
|
96
|
-
|
97
|
-
DUCKDB_API void InitializeEmpty(vector<LogicalType>::const_iterator begin, vector<LogicalType>::const_iterator end);
|
98
|
-
DUCKDB_API void Initialize(Allocator &allocator, vector<LogicalType>::const_iterator begin,
|
99
|
-
vector<LogicalType>::const_iterator end, idx_t capacity = STANDARD_VECTOR_SIZE);
|
100
|
-
DUCKDB_API void Initialize(ClientContext &context, vector<LogicalType>::const_iterator begin,
|
101
|
-
vector<LogicalType>::const_iterator end, idx_t capacity = STANDARD_VECTOR_SIZE);
|
102
99
|
|
103
100
|
//! Append the other DataChunk to this one. The column count and types of
|
104
101
|
//! the two DataChunks have to match exactly. Throws an exception if there
|
@@ -76,7 +76,7 @@ public:
|
|
76
76
|
|
77
77
|
template <bool CHECK_OVERFLOW = true>
|
78
78
|
inline static uhugeint_t Divide(uhugeint_t lhs, uhugeint_t rhs) {
|
79
|
-
// division between two same-size unsigned
|
79
|
+
// division between two same-size unsigned integers can only go wrong with division by zero
|
80
80
|
if (rhs == 0) {
|
81
81
|
throw OutOfRangeException("Division of UHUGEINT by zero!");
|
82
82
|
}
|
@@ -16,18 +16,20 @@ namespace duckdb {
|
|
16
16
|
class Allocator;
|
17
17
|
class Vector;
|
18
18
|
|
19
|
-
//! The VectorCache holds cached data
|
19
|
+
//! The VectorCache holds cached vector data.
|
20
|
+
//! It enables re-using the same memory for different vectors.
|
20
21
|
class VectorCache {
|
21
22
|
public:
|
22
|
-
//! Instantiate
|
23
|
-
DUCKDB_API
|
24
|
-
|
23
|
+
//! Instantiate an empty vector cache.
|
24
|
+
DUCKDB_API VectorCache();
|
25
|
+
//! Instantiate a vector cache with the given type and capacity.
|
26
|
+
DUCKDB_API VectorCache(Allocator &allocator, const LogicalType &type, const idx_t capacity = STANDARD_VECTOR_SIZE);
|
25
27
|
|
28
|
+
public:
|
26
29
|
buffer_ptr<VectorBuffer> buffer;
|
27
30
|
|
28
31
|
public:
|
29
32
|
void ResetFromCache(Vector &result) const;
|
30
|
-
|
31
33
|
const LogicalType &GetType() const;
|
32
34
|
};
|
33
35
|
|
@@ -48,7 +48,7 @@ struct BitStringFun {
|
|
48
48
|
static constexpr const char *Description = "Pads the bitstring until the specified length";
|
49
49
|
static constexpr const char *Example = "bitstring('1010'::BIT, 7)";
|
50
50
|
|
51
|
-
static
|
51
|
+
static ScalarFunctionSet GetFunctions();
|
52
52
|
};
|
53
53
|
|
54
54
|
} // namespace duckdb
|
@@ -330,12 +330,6 @@ struct ListNegativeDotProductFun {
|
|
330
330
|
static constexpr const char *Name = "list_negative_dot_product";
|
331
331
|
};
|
332
332
|
|
333
|
-
struct ListNegativeInnerProductFunAlias {
|
334
|
-
using ALIAS = ListNegativeInnerProductFun;
|
335
|
-
|
336
|
-
static constexpr const char *Name = "<#>";
|
337
|
-
};
|
338
|
-
|
339
333
|
struct UnpivotListFun {
|
340
334
|
static constexpr const char *Name = "unpivot_list";
|
341
335
|
static constexpr const char *Parameters = "any,...";
|
@@ -427,7 +427,7 @@ struct AcoshFun {
|
|
427
427
|
static constexpr const char *Name = "acosh";
|
428
428
|
static constexpr const char *Parameters = "x";
|
429
429
|
static constexpr const char *Description = "Computes the inverse hyperbolic cos of x";
|
430
|
-
static constexpr const char *Example = "acosh(
|
430
|
+
static constexpr const char *Example = "acosh(2.3)";
|
431
431
|
|
432
432
|
static ScalarFunction GetFunction();
|
433
433
|
};
|
@@ -28,10 +28,11 @@ struct ExpressionState {
|
|
28
28
|
vector<unique_ptr<ExpressionState>> child_states;
|
29
29
|
vector<LogicalType> types;
|
30
30
|
DataChunk intermediate_chunk;
|
31
|
+
vector<bool> initialize;
|
31
32
|
|
32
33
|
public:
|
33
|
-
void AddChild(Expression
|
34
|
-
void Finalize(
|
34
|
+
void AddChild(Expression &child_expr);
|
35
|
+
void Finalize();
|
35
36
|
Allocator &GetAllocator();
|
36
37
|
bool HasContext();
|
37
38
|
DUCKDB_API ClientContext &GetContext();
|
@@ -18,6 +18,8 @@
|
|
18
18
|
namespace duckdb {
|
19
19
|
|
20
20
|
class BoundIndex;
|
21
|
+
class PhysicalOperator;
|
22
|
+
class LogicalCreateIndex;
|
21
23
|
enum class IndexConstraintType : uint8_t;
|
22
24
|
class Expression;
|
23
25
|
class TableIOManager;
|
@@ -43,7 +45,19 @@ struct CreateIndexInput {
|
|
43
45
|
options(options) {};
|
44
46
|
};
|
45
47
|
|
48
|
+
struct PlanIndexInput {
|
49
|
+
ClientContext &context;
|
50
|
+
LogicalCreateIndex &op;
|
51
|
+
unique_ptr<PhysicalOperator> &table_scan;
|
52
|
+
|
53
|
+
PlanIndexInput(ClientContext &context_p, LogicalCreateIndex &op_p, unique_ptr<PhysicalOperator> &table_scan_p)
|
54
|
+
: context(context_p), op(op_p), table_scan(table_scan_p) {
|
55
|
+
}
|
56
|
+
};
|
57
|
+
|
46
58
|
typedef unique_ptr<BoundIndex> (*index_create_function_t)(CreateIndexInput &input);
|
59
|
+
typedef unique_ptr<PhysicalOperator> (*index_plan_function_t)(PlanIndexInput &input);
|
60
|
+
|
47
61
|
//! A index "type"
|
48
62
|
class IndexType {
|
49
63
|
public:
|
@@ -51,7 +65,8 @@ public:
|
|
51
65
|
string name;
|
52
66
|
|
53
67
|
// Callbacks
|
54
|
-
|
68
|
+
index_plan_function_t create_plan = nullptr;
|
69
|
+
index_create_function_t create_instance = nullptr;
|
55
70
|
};
|
56
71
|
|
57
72
|
} // namespace duckdb
|
@@ -35,15 +35,15 @@ public:
|
|
35
35
|
|
36
36
|
void UnpinBuffer(const idx_t cache_idx);
|
37
37
|
//! Returns the buffer size set for this CSV buffer manager
|
38
|
-
idx_t GetBufferSize();
|
38
|
+
idx_t GetBufferSize() const;
|
39
39
|
//! Returns the number of buffers in the cached_buffers cache
|
40
|
-
idx_t BufferCount();
|
40
|
+
idx_t BufferCount() const;
|
41
41
|
//! If this buffer manager is done. In the context of a buffer manager it means that it read all buffers at least
|
42
42
|
//! once.
|
43
|
-
bool Done();
|
43
|
+
bool Done() const;
|
44
44
|
|
45
45
|
void ResetBufferManager();
|
46
|
-
string GetFilePath();
|
46
|
+
string GetFilePath() const;
|
47
47
|
|
48
48
|
ClientContext &context;
|
49
49
|
idx_t skip_rows = 0;
|
@@ -168,8 +168,10 @@ struct CSVReaderOptions {
|
|
168
168
|
void SetReadOption(const string &loption, const Value &value, vector<string> &expected_names);
|
169
169
|
void SetWriteOption(const string &loption, const Value &value);
|
170
170
|
void SetDateFormat(LogicalTypeId type, const string &format, bool read_format);
|
171
|
-
void ToNamedParameters(named_parameter_map_t &out);
|
172
|
-
void FromNamedParameters(named_parameter_map_t &in, ClientContext &context);
|
171
|
+
void ToNamedParameters(named_parameter_map_t &out) const;
|
172
|
+
void FromNamedParameters(const named_parameter_map_t &in, ClientContext &context);
|
173
|
+
//! Verify options are not conflicting
|
174
|
+
void Verify();
|
173
175
|
|
174
176
|
string ToString(const string ¤t_file_path) const;
|
175
177
|
//! If the type for column with idx i was manually set
|
@@ -9,6 +9,7 @@
|
|
9
9
|
#pragma once
|
10
10
|
|
11
11
|
#include "duckdb/common/types.hpp"
|
12
|
+
#include "duckdb/execution/operator/csv_scanner/sniffer/sniff_result.hpp"
|
12
13
|
|
13
14
|
namespace duckdb {
|
14
15
|
//! Basic CSV Column Info
|
@@ -23,8 +24,8 @@ struct CSVColumnInfo {
|
|
23
24
|
struct CSVSchema {
|
24
25
|
void Initialize(vector<string> &names, vector<LogicalType> &types, const string &file_path);
|
25
26
|
bool Empty() const;
|
26
|
-
bool SchemasMatch(string &error_message,
|
27
|
-
|
27
|
+
bool SchemasMatch(string &error_message, SnifferResult &sniffer_result, const string &cur_file_path,
|
28
|
+
bool is_minimal_sniffer) const;
|
28
29
|
|
29
30
|
private:
|
30
31
|
static bool CanWeCastIt(LogicalTypeId source, LogicalTypeId destination);
|