duckdb 0.8.1-dev0.0 → 0.8.1-dev125.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/package.json +1 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
- package/src/duckdb/extension/json/include/json_common.hpp +1 -1
- package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_create.cpp +6 -6
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +1 -1
- package/src/duckdb/extension/parquet/column_reader.cpp +57 -52
- package/src/duckdb/extension/parquet/column_writer.cpp +57 -45
- package/src/duckdb/extension/parquet/include/cast_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/column_reader.hpp +5 -4
- package/src/duckdb/extension/parquet/include/column_writer.hpp +24 -0
- package/src/duckdb/extension/parquet/include/decode_utils.hpp +6 -0
- package/src/duckdb/extension/parquet/include/list_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +4 -4
- package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +4 -5
- package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +4 -4
- package/src/duckdb/extension/parquet/include/row_number_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/struct_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/parquet-extension.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_reader.cpp +18 -18
- package/src/duckdb/extension/parquet/parquet_statistics.cpp +23 -26
- package/src/duckdb/extension/parquet/parquet_timestamp.cpp +2 -2
- package/src/duckdb/extension/parquet/parquet_writer.cpp +3 -3
- package/src/duckdb/extension/parquet/zstd_file_system.cpp +3 -3
- package/src/duckdb/src/catalog/catalog.cpp +5 -8
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +113 -0
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +7 -0
- package/src/duckdb/src/catalog/catalog_entry.cpp +4 -4
- package/src/duckdb/src/catalog/catalog_search_path.cpp +32 -12
- package/src/duckdb/src/catalog/catalog_set.cpp +1 -1
- package/src/duckdb/src/catalog/dependency_manager.cpp +2 -2
- package/src/duckdb/src/catalog/duck_catalog.cpp +1 -0
- package/src/duckdb/src/common/adbc/adbc.cpp +183 -94
- package/src/duckdb/src/common/adbc/driver_manager.cpp +10 -2
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +12 -12
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +7 -7
- package/src/duckdb/src/common/checksum.cpp +1 -1
- package/src/duckdb/src/common/compressed_file_system.cpp +6 -6
- package/src/duckdb/src/common/crypto/md5.cpp +9 -9
- package/src/duckdb/src/common/exception.cpp +4 -1
- package/src/duckdb/src/common/exception_format_value.cpp +19 -14
- package/src/duckdb/src/common/field_writer.cpp +1 -1
- package/src/duckdb/src/common/file_system.cpp +15 -2
- package/src/duckdb/src/common/fsst.cpp +11 -6
- package/src/duckdb/src/common/gzip_file_system.cpp +8 -8
- package/src/duckdb/src/common/hive_partitioning.cpp +1 -1
- package/src/duckdb/src/common/local_file_system.cpp +11 -11
- package/src/duckdb/src/common/operator/cast_operators.cpp +1 -1
- package/src/duckdb/src/common/pipe_file_system.cpp +2 -2
- package/src/duckdb/src/common/radix_partitioning.cpp +2 -2
- package/src/duckdb/src/common/row_operations/row_heap_gather.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +5 -5
- package/src/duckdb/src/common/row_operations/row_match.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +2 -2
- package/src/duckdb/src/common/row_operations/row_scatter.cpp +4 -4
- package/src/duckdb/src/common/serializer/binary_deserializer.cpp +1 -1
- package/src/duckdb/src/common/serializer/binary_serializer.cpp +3 -3
- package/src/duckdb/src/common/serializer.cpp +1 -1
- package/src/duckdb/src/common/sort/comparators.cpp +1 -1
- package/src/duckdb/src/common/sort/merge_sorter.cpp +7 -2
- package/src/duckdb/src/common/sort/partition_state.cpp +2 -2
- package/src/duckdb/src/common/types/bit.cpp +5 -5
- package/src/duckdb/src/common/types/blob.cpp +8 -8
- package/src/duckdb/src/common/types/column/column_data_allocator.cpp +4 -4
- package/src/duckdb/src/common/types/column/column_data_collection.cpp +3 -3
- package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +1 -1
- package/src/duckdb/src/common/types/column/partitioned_column_data.cpp +2 -2
- package/src/duckdb/src/common/types/hash.cpp +2 -2
- package/src/duckdb/src/common/types/hyperloglog.cpp +22 -21
- package/src/duckdb/src/common/types/list_segment.cpp +77 -49
- package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +1 -1
- package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +5 -3
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +17 -17
- package/src/duckdb/src/common/types/string_heap.cpp +1 -1
- package/src/duckdb/src/common/types/value.cpp +2 -2
- package/src/duckdb/src/common/types/vector.cpp +101 -101
- package/src/duckdb/src/common/types/vector_cache.cpp +6 -6
- package/src/duckdb/src/common/types/vector_constants.cpp +2 -1
- package/src/duckdb/src/common/types.cpp +44 -33
- package/src/duckdb/src/common/vector_operations/boolean_operators.cpp +2 -2
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +12 -12
- package/src/duckdb/src/common/vector_operations/vector_hash.cpp +13 -11
- package/src/duckdb/src/common/vector_operations/vector_storage.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +30 -33
- package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +0 -4
- package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +32 -36
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +53 -66
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +48 -48
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +43 -43
- package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +32 -32
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +34 -34
- package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +30 -31
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +91 -103
- package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +17 -17
- package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +25 -27
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +36 -37
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +48 -84
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +83 -119
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +62 -99
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +24 -26
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +22 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +16 -18
- package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +22 -25
- package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +19 -24
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +18 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +14 -18
- package/src/duckdb/src/core_functions/scalar/blob/base64.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +45 -45
- package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/generic/current_setting.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/generic/least.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/generic/stats.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +2 -4
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +6 -7
- package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/cardinality.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/map.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/map/map_concat.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/map_extract.cpp +5 -9
- package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/string/starts_with.cpp +3 -2
- package/src/duckdb/src/core_functions/scalar/string/string_split.cpp +4 -4
- package/src/duckdb/src/core_functions/scalar/string/trim.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/union/union_extract.cpp +1 -1
- package/src/duckdb/src/execution/adaptive_filter.cpp +1 -1
- package/src/duckdb/src/execution/expression_executor/execute_case.cpp +10 -10
- package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +7 -7
- package/src/duckdb/src/execution/expression_executor.cpp +33 -28
- package/src/duckdb/src/execution/index/art/art.cpp +30 -32
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +3 -4
- package/src/duckdb/src/execution/join_hashtable.cpp +4 -4
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_inner.cpp +4 -4
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +4 -4
- package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/outer_join_marker.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +4 -4
- package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/csv_reader_options.cpp +2 -0
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +2 -3
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +2 -2
- package/src/duckdb/src/execution/operator/projection/physical_projection.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +3 -3
- package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +2 -1
- package/src/duckdb/src/execution/operator/scan/physical_expression_scan.cpp +1 -1
- package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +2 -2
- package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
- package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan_generator.cpp +2 -2
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/reservoir_sample.cpp +2 -2
- package/src/duckdb/src/execution/window_segment_tree.cpp +8 -6
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +158 -20
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +66 -74
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +13 -13
- package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -1
- package/src/duckdb/src/function/cast/decimal_cast.cpp +1 -1
- package/src/duckdb/src/function/cast/enum_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/string_cast.cpp +11 -11
- package/src/duckdb/src/function/cast/union_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +3 -2
- package/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +1 -1
- package/src/duckdb/src/function/scalar/list/list_concat.cpp +2 -2
- package/src/duckdb/src/function/scalar/list/list_extract.cpp +3 -3
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -3
- package/src/duckdb/src/function/scalar/string/concat.cpp +8 -7
- package/src/duckdb/src/function/scalar/string/contains.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/like.cpp +5 -5
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/regexp.cpp +3 -3
- package/src/duckdb/src/function/scalar/string/strip_accents.cpp +1 -1
- package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +1 -1
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +25 -23
- package/src/duckdb/src/function/scalar_function.cpp +3 -3
- package/src/duckdb/src/function/table/arrow.cpp +4 -4
- package/src/duckdb/src/function/table/arrow_conversion.cpp +67 -61
- package/src/duckdb/src/function/table/checkpoint.cpp +1 -1
- package/src/duckdb/src/function/table/copy_csv.cpp +11 -7
- package/src/duckdb/src/function/table/glob.cpp +1 -1
- package/src/duckdb/src/function/table/pragma_last_profiling_output.cpp +1 -1
- package/src/duckdb/src/function/table/range.cpp +4 -4
- package/src/duckdb/src/function/table/read_csv.cpp +4 -7
- package/src/duckdb/src/function/table/repeat.cpp +2 -2
- package/src/duckdb/src/function/table/repeat_row.cpp +2 -2
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +1 -1
- package/src/duckdb/src/function/table/table_scan.cpp +2 -2
- package/src/duckdb/src/function/table/unnest.cpp +1 -1
- package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +6 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +6 -2
- package/src/duckdb/src/include/duckdb/common/adbc/adbc.hpp +5 -0
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +15 -4
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
- package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/exception.hpp +5 -2
- package/src/duckdb/src/include/duckdb/common/field_writer.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +11 -0
- package/src/duckdb/src/include/duckdb/common/fsst.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/radix.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +4 -1
- package/src/duckdb/src/include/duckdb/common/serializer.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/typedefs.hpp +30 -0
- package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +6 -2
- package/src/duckdb/src/include/duckdb/common/types/null_value.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +10 -10
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +9 -0
- package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +18 -6
- package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +112 -76
- package/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp +16 -15
- package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +11 -11
- package/src/duckdb/src/include/duckdb/common/vector_operations/ternary_executor.hpp +23 -19
- package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -3
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp +20 -24
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +36 -39
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +57 -53
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +8 -9
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +16 -18
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +7 -8
- package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +14 -2
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +3 -3
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +5 -2
- package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +12 -12
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +8 -29
- package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +95 -0
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +13 -2
- package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/compression_function.hpp +44 -0
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +6 -6
- package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/macro_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +6 -6
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/materialized_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/pending_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/query_result.hpp +17 -0
- package/src/duckdb/src/include/duckdb/main/relation.hpp +12 -0
- package/src/duckdb/src/include/duckdb/main/stream_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +6 -12
- package/src/duckdb/src/include/duckdb/parser/constraint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression_map.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +5 -1
- package/src/duckdb/src/include/duckdb/parser/query_node.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +36 -5
- package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +7 -4
- package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref.hpp +4 -3
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +107 -91
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_query_node.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +34 -1
- package/src/duckdb/src/include/duckdb/planner/bound_tableref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression.hpp +5 -7
- package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +6 -0
- package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +6 -0
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/table_binding.hpp +26 -0
- package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +17 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/index.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +12 -0
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +25 -2
- package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +12 -0
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +22 -0
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +2 -2
- package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +2 -2
- package/src/duckdb/src/main/capi/appender-c.cpp +5 -5
- package/src/duckdb/src/main/capi/arrow-c.cpp +10 -10
- package/src/duckdb/src/main/capi/cast/from_decimal-c.cpp +1 -1
- package/src/duckdb/src/main/capi/cast/utils-c.cpp +1 -1
- package/src/duckdb/src/main/capi/config-c.cpp +1 -1
- package/src/duckdb/src/main/capi/data_chunk-c.cpp +17 -17
- package/src/duckdb/src/main/capi/duckdb-c.cpp +4 -4
- package/src/duckdb/src/main/capi/duckdb_value-c.cpp +4 -4
- package/src/duckdb/src/main/capi/logical_types-c.cpp +22 -21
- package/src/duckdb/src/main/capi/pending-c.cpp +6 -6
- package/src/duckdb/src/main/capi/prepared-c.cpp +10 -10
- package/src/duckdb/src/main/capi/replacement_scan-c.cpp +6 -6
- package/src/duckdb/src/main/capi/result-c.cpp +23 -23
- package/src/duckdb/src/main/capi/table_function-c.cpp +1 -1
- package/src/duckdb/src/main/client_context.cpp +3 -3
- package/src/duckdb/src/main/database_manager.cpp +1 -1
- package/src/duckdb/src/main/error_manager.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_load.cpp +1 -1
- package/src/duckdb/src/main/relation/create_table_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/create_view_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/delete_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/explain_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/insert_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/update_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_csv_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_parquet_relation.cpp +1 -1
- package/src/duckdb/src/main/relation.cpp +1 -1
- package/src/duckdb/src/main/settings/settings.cpp +2 -2
- package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
- package/src/duckdb/src/optimizer/expression_heuristics.cpp +1 -0
- package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -10
- package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +4 -7
- package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +1 -1
- package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/regex_range_filter.cpp +2 -4
- package/src/duckdb/src/optimizer/rule/distributivity.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +6 -6
- package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
- package/src/duckdb/src/parallel/executor.cpp +1 -1
- package/src/duckdb/src/parser/base_expression.cpp +2 -5
- package/src/duckdb/src/parser/expression/between_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/case_expression.cpp +6 -6
- package/src/duckdb/src/parser/expression/cast_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/collate_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/columnref_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/comparison_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/conjunction_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/constant_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/function_expression.cpp +10 -14
- package/src/duckdb/src/parser/expression/lambda_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/operator_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/parameter_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/star_expression.cpp +9 -9
- package/src/duckdb/src/parser/expression/subquery_expression.cpp +5 -5
- package/src/duckdb/src/parser/expression/window_expression.cpp +13 -24
- package/src/duckdb/src/parser/parsed_expression.cpp +34 -18
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +4 -4
- package/src/duckdb/src/parser/parser.cpp +3 -3
- package/src/duckdb/src/parser/query_node/select_node.cpp +6 -13
- package/src/duckdb/src/parser/query_node.cpp +7 -6
- package/src/duckdb/src/parser/result_modifier.cpp +25 -18
- package/src/duckdb/src/parser/statement/select_statement.cpp +3 -3
- package/src/duckdb/src/parser/tableref/basetableref.cpp +4 -4
- package/src/duckdb/src/parser/tableref/emptytableref.cpp +1 -1
- package/src/duckdb/src/parser/tableref/expressionlistref.cpp +5 -5
- package/src/duckdb/src/parser/tableref/joinref.cpp +6 -6
- package/src/duckdb/src/parser/tableref/pivotref.cpp +10 -15
- package/src/duckdb/src/parser/tableref/subqueryref.cpp +3 -3
- package/src/duckdb/src/parser/tableref/table_function.cpp +3 -3
- package/src/duckdb/src/parser/tableref.cpp +12 -3
- package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_case.cpp +8 -10
- package/src/duckdb/src/parser/transform/expression/transform_cast.cpp +7 -9
- package/src/duckdb/src/parser/transform/expression/transform_coalesce.cpp +3 -5
- package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +22 -22
- package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +2 -2
- package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +42 -44
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +70 -75
- package/src/duckdb/src/parser/transform/expression/transform_grouping_function.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_interval.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_is_null.cpp +4 -5
- package/src/duckdb/src/parser/transform/expression/transform_lambda.cpp +5 -6
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +28 -29
- package/src/duckdb/src/parser/transform/expression/transform_param_ref.cpp +13 -14
- package/src/duckdb/src/parser/transform/expression/transform_positional_reference.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +9 -10
- package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +28 -32
- package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +18 -18
- package/src/duckdb/src/parser/transform/helpers/transform_sample.cpp +3 -3
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +27 -26
- package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +11 -14
- package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +14 -16
- package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +8 -9
- package/src/duckdb/src/parser/transform/statement/transform_call.cpp +2 -5
- package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +4 -6
- package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +22 -23
- package/src/duckdb/src/parser/transform/statement/transform_create_database.cpp +3 -4
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +14 -18
- package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +13 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_schema.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_sequence.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +26 -28
- package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +12 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +13 -18
- package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +11 -13
- package/src/duckdb/src/parser/transform/statement/transform_detach.cpp +3 -4
- package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +20 -22
- package/src/duckdb/src/parser/transform/statement/transform_explain.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_export.cpp +5 -6
- package/src/duckdb/src/parser/transform/statement/transform_import.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +21 -24
- package/src/duckdb/src/parser/transform/statement/transform_load.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +7 -7
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +7 -9
- package/src/duckdb/src/parser/transform/statement/transform_prepare.cpp +11 -19
- package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +12 -14
- package/src/duckdb/src/parser/transform/statement/transform_select.cpp +12 -9
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +34 -34
- package/src/duckdb/src/parser/transform/statement/transform_set.cpp +18 -19
- package/src/duckdb/src/parser/transform/statement/transform_show.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_show_select.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_transaction.cpp +3 -5
- package/src/duckdb/src/parser/transform/statement/transform_update.cpp +10 -13
- package/src/duckdb/src/parser/transform/statement/transform_upsert.cpp +4 -4
- package/src/duckdb/src/parser/transform/statement/transform_use.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_vacuum.cpp +6 -10
- package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +18 -18
- package/src/duckdb/src/parser/transform/tableref/transform_from.cpp +5 -5
- package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +11 -11
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +27 -27
- package/src/duckdb/src/parser/transform/tableref/transform_subquery.cpp +5 -5
- package/src/duckdb/src/parser/transform/tableref/transform_table_function.cpp +13 -12
- package/src/duckdb/src/parser/transform/tableref/transform_tableref.cpp +8 -8
- package/src/duckdb/src/parser/transformer.cpp +46 -46
- package/src/duckdb/src/planner/bind_context.cpp +6 -6
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +6 -3
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +8 -8
- package/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +4 -4
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +13 -5
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -114
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +14 -7
- package/src/duckdb/src/planner/binder.cpp +1 -1
- package/src/duckdb/src/planner/bound_result_modifier.cpp +16 -11
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_between_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_case_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +4 -4
- package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_function_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +4 -5
- package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +8 -21
- package/src/duckdb/src/planner/expression.cpp +15 -0
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_iterator.cpp +2 -2
- package/src/duckdb/src/planner/filter/conjunction_filter.cpp +2 -2
- package/src/duckdb/src/planner/filter/constant_filter.cpp +1 -1
- package/src/duckdb/src/planner/logical_operator.cpp +3 -4
- package/src/duckdb/src/planner/logical_operator_visitor.cpp +1 -1
- package/src/duckdb/src/planner/table_filter.cpp +1 -1
- package/src/duckdb/src/storage/arena_allocator.cpp +2 -2
- package/src/duckdb/src/storage/buffer/block_handle.cpp +1 -1
- package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +2 -2
- package/src/duckdb/src/storage/checkpoint_manager.cpp +3 -3
- package/src/duckdb/src/storage/compression/bitpacking.cpp +8 -8
- package/src/duckdb/src/storage/compression/dictionary_compression.cpp +36 -36
- package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +11 -11
- package/src/duckdb/src/storage/compression/fsst.cpp +34 -34
- package/src/duckdb/src/storage/compression/rle.cpp +8 -8
- package/src/duckdb/src/storage/compression/string_uncompressed.cpp +13 -13
- package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +11 -11
- package/src/duckdb/src/storage/data_table.cpp +2 -2
- package/src/duckdb/src/storage/index.cpp +1 -3
- package/src/duckdb/src/storage/local_storage.cpp +2 -1
- package/src/duckdb/src/storage/magic_bytes.cpp +1 -1
- package/src/duckdb/src/storage/single_file_block_manager.cpp +3 -3
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +3 -3
- package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/numeric_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/string_stats.cpp +15 -14
- package/src/duckdb/src/storage/table/chunk_info.cpp +2 -2
- package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
- package/src/duckdb/src/storage/table/list_column_data.cpp +8 -7
- package/src/duckdb/src/storage/table/row_group.cpp +4 -4
- package/src/duckdb/src/storage/table/standard_column_data.cpp +1 -1
- package/src/duckdb/src/storage/table/update_segment.cpp +12 -12
- package/src/duckdb/src/storage/wal_replay.cpp +1 -1
- package/src/duckdb/src/transaction/cleanup_state.cpp +3 -3
- package/src/duckdb/src/transaction/commit_state.cpp +8 -8
- package/src/duckdb/src/transaction/duck_transaction.cpp +9 -7
- package/src/duckdb/src/transaction/duck_transaction_manager.cpp +16 -16
- package/src/duckdb/src/transaction/rollback_state.cpp +3 -3
- package/src/duckdb/src/verification/prepared_statement_verifier.cpp +1 -1
- package/src/duckdb/src/verification/statement_verifier.cpp +3 -4
- package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +2 -2
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +13479 -13564
- package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
@@ -45,6 +45,8 @@ public:
|
|
45
45
|
return true;
|
46
46
|
}
|
47
47
|
|
48
|
+
void BindUpdateConstraints(LogicalGet &get, LogicalProjection &proj, LogicalUpdate &update) override;
|
49
|
+
|
48
50
|
private:
|
49
51
|
unique_ptr<CatalogEntry> RenameColumn(ClientContext &context, RenameColumnInfo &info);
|
50
52
|
unique_ptr<CatalogEntry> AddColumn(ClientContext &context, AddColumnInfo &info);
|
@@ -40,6 +40,10 @@ class TableColumnInfo;
|
|
40
40
|
class TableIndexInfo;
|
41
41
|
class TableStorageInfo;
|
42
42
|
|
43
|
+
class LogicalGet;
|
44
|
+
class LogicalProjection;
|
45
|
+
class LogicalUpdate;
|
46
|
+
|
43
47
|
//! A table catalog entry
|
44
48
|
class TableCatalogEntry : public StandardEntry {
|
45
49
|
public:
|
@@ -102,6 +106,8 @@ public:
|
|
102
106
|
//! Returns the storage info of this table
|
103
107
|
virtual TableStorageInfo GetStorageInfo(ClientContext &context) = 0;
|
104
108
|
|
109
|
+
DUCKDB_API virtual void BindUpdateConstraints(LogicalGet &get, LogicalProjection &proj, LogicalUpdate &update);
|
110
|
+
|
105
111
|
protected:
|
106
112
|
// This is used to serialize the entry by #Serialize(Serializer& ). It is virtual to allow
|
107
113
|
// Custom catalog implementations to override the default implementation. We can not make
|
@@ -72,12 +72,12 @@ public:
|
|
72
72
|
template <class TARGET>
|
73
73
|
TARGET &Cast() {
|
74
74
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
75
|
-
return
|
75
|
+
return reinterpret_cast<TARGET &>(*this);
|
76
76
|
}
|
77
77
|
template <class TARGET>
|
78
78
|
const TARGET &Cast() const {
|
79
79
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
80
|
-
return
|
80
|
+
return reinterpret_cast<const TARGET &>(*this);
|
81
81
|
}
|
82
82
|
};
|
83
83
|
|
@@ -35,14 +35,16 @@ private:
|
|
35
35
|
static string WriteOptionallyQuoted(const string &input);
|
36
36
|
};
|
37
37
|
|
38
|
+
enum class CatalogSetPathType { SET_SCHEMA, SET_SCHEMAS };
|
39
|
+
|
38
40
|
//! The schema search path, in order by which entries are searched if no schema entry is provided
|
39
41
|
class CatalogSearchPath {
|
40
42
|
public:
|
41
43
|
DUCKDB_API explicit CatalogSearchPath(ClientContext &client_p);
|
42
44
|
CatalogSearchPath(const CatalogSearchPath &other) = delete;
|
43
45
|
|
44
|
-
DUCKDB_API void Set(CatalogSearchEntry new_value,
|
45
|
-
DUCKDB_API void Set(vector<CatalogSearchEntry> new_paths,
|
46
|
+
DUCKDB_API void Set(CatalogSearchEntry new_value, CatalogSetPathType set_type);
|
47
|
+
DUCKDB_API void Set(vector<CatalogSearchEntry> new_paths, CatalogSetPathType set_type);
|
46
48
|
DUCKDB_API void Reset();
|
47
49
|
|
48
50
|
DUCKDB_API const vector<CatalogSearchEntry> &Get();
|
@@ -59,6 +61,8 @@ public:
|
|
59
61
|
private:
|
60
62
|
void SetPaths(vector<CatalogSearchEntry> new_paths);
|
61
63
|
|
64
|
+
string GetSetName(CatalogSetPathType set_type);
|
65
|
+
|
62
66
|
private:
|
63
67
|
ClientContext &context;
|
64
68
|
vector<CatalogSearchEntry> paths;
|
@@ -10,6 +10,8 @@
|
|
10
10
|
|
11
11
|
#include "duckdb/common/adbc/adbc.h"
|
12
12
|
|
13
|
+
#include <string>
|
14
|
+
|
13
15
|
namespace duckdb_adbc {
|
14
16
|
|
15
17
|
AdbcStatusCode DatabaseNew(struct AdbcDatabase *database, struct AdbcError *error);
|
@@ -82,4 +84,7 @@ AdbcStatusCode StatementExecutePartitions(struct AdbcStatement *statement, struc
|
|
82
84
|
struct AdbcPartitions *partitions, int64_t *rows_affected,
|
83
85
|
struct AdbcError *error);
|
84
86
|
|
87
|
+
void SetError(struct AdbcError *error, const std::string &message);
|
88
|
+
|
89
|
+
void InitiliazeADBCError(AdbcError *error);
|
85
90
|
} // namespace duckdb_adbc
|
@@ -26,6 +26,17 @@ struct PrivateAllocatorData {
|
|
26
26
|
virtual ~PrivateAllocatorData();
|
27
27
|
|
28
28
|
unique_ptr<AllocatorDebugInfo> debug_info;
|
29
|
+
|
30
|
+
template <class TARGET>
|
31
|
+
TARGET &Cast() {
|
32
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
33
|
+
return reinterpret_cast<TARGET &>(*this);
|
34
|
+
}
|
35
|
+
template <class TARGET>
|
36
|
+
const TARGET &Cast() const {
|
37
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
38
|
+
return reinterpret_cast<const TARGET &>(*this);
|
39
|
+
}
|
29
40
|
};
|
30
41
|
|
31
42
|
typedef data_ptr_t (*allocate_function_ptr_t)(PrivateAllocatorData *private_data, idx_t size);
|
@@ -85,14 +96,14 @@ public:
|
|
85
96
|
return AllocatedData(*this, AllocateData(size), size);
|
86
97
|
}
|
87
98
|
static data_ptr_t DefaultAllocate(PrivateAllocatorData *private_data, idx_t size) {
|
88
|
-
return (
|
99
|
+
return data_ptr_cast(malloc(size));
|
89
100
|
}
|
90
101
|
static void DefaultFree(PrivateAllocatorData *private_data, data_ptr_t pointer, idx_t size) {
|
91
102
|
free(pointer);
|
92
103
|
}
|
93
104
|
static data_ptr_t DefaultReallocate(PrivateAllocatorData *private_data, data_ptr_t pointer, idx_t old_size,
|
94
105
|
idx_t size) {
|
95
|
-
return (
|
106
|
+
return data_ptr_cast(realloc(pointer, size));
|
96
107
|
}
|
97
108
|
static Allocator &Get(ClientContext &context);
|
98
109
|
static Allocator &Get(DatabaseInstance &db);
|
@@ -120,7 +131,7 @@ T *AllocateArray(idx_t size) {
|
|
120
131
|
|
121
132
|
template <class T>
|
122
133
|
void DeleteArray(T *ptr, idx_t size) {
|
123
|
-
Allocator::DefaultAllocator().FreeData((
|
134
|
+
Allocator::DefaultAllocator().FreeData(data_ptr_cast(ptr), size * sizeof(T));
|
124
135
|
}
|
125
136
|
|
126
137
|
template <typename T, typename... ARGS>
|
@@ -132,7 +143,7 @@ T *AllocateObject(ARGS &&... args) {
|
|
132
143
|
template <typename T>
|
133
144
|
void DestroyObject(T *ptr) {
|
134
145
|
ptr->~T();
|
135
|
-
Allocator::DefaultAllocator().FreeData((
|
146
|
+
Allocator::DefaultAllocator().FreeData(data_ptr_cast(ptr), sizeof(T));
|
136
147
|
}
|
137
148
|
|
138
149
|
//! The BufferAllocator is a wrapper around the global allocator class that sends any allocations made through the
|
@@ -73,12 +73,17 @@ struct ArrowBuffer {
|
|
73
73
|
return dataptr;
|
74
74
|
}
|
75
75
|
|
76
|
+
template <class T>
|
77
|
+
T *GetData() {
|
78
|
+
return reinterpret_cast<T *>(data());
|
79
|
+
}
|
80
|
+
|
76
81
|
private:
|
77
82
|
void ReserveInternal(idx_t bytes) {
|
78
83
|
if (dataptr) {
|
79
|
-
dataptr = (
|
84
|
+
dataptr = data_ptr_cast(realloc(dataptr, bytes));
|
80
85
|
} else {
|
81
|
-
dataptr = (
|
86
|
+
dataptr = data_ptr_cast(malloc(bytes));
|
82
87
|
}
|
83
88
|
capacity = bytes;
|
84
89
|
}
|
@@ -26,10 +26,10 @@ public:
|
|
26
26
|
}
|
27
27
|
void Add(const char *data);
|
28
28
|
void Add(string_t string) {
|
29
|
-
MD5Update((
|
29
|
+
MD5Update(const_data_ptr_cast(string.GetData()), string.GetSize());
|
30
30
|
}
|
31
31
|
void Add(const string &data) {
|
32
|
-
MD5Update((
|
32
|
+
MD5Update(const_data_ptr_cast(data.c_str()), data.size());
|
33
33
|
}
|
34
34
|
|
35
35
|
//! Write the 16-byte (binary) digest to the specified location
|
@@ -22,8 +22,8 @@ enum class PhysicalType : uint8_t;
|
|
22
22
|
struct LogicalType;
|
23
23
|
struct hugeint_t;
|
24
24
|
|
25
|
-
inline void assert_restrict_function(void *left_start, void *left_end, void *right_start,
|
26
|
-
const char *fname, int linenr) {
|
25
|
+
inline void assert_restrict_function(const void *left_start, const void *left_end, const void *right_start,
|
26
|
+
const void *right_end, const char *fname, int linenr) {
|
27
27
|
// assert that the two pointers do not overlap
|
28
28
|
#ifdef DEBUG
|
29
29
|
if (!(left_end <= right_start || right_end <= left_start)) {
|
@@ -105,6 +105,9 @@ public:
|
|
105
105
|
|
106
106
|
template <typename... Args>
|
107
107
|
static string ConstructMessage(const string &msg, Args... params) {
|
108
|
+
const std::size_t num_args = sizeof...(Args);
|
109
|
+
if (num_args == 0)
|
110
|
+
return msg;
|
108
111
|
std::vector<ExceptionFormatValue> values;
|
109
112
|
return ConstructMessageRecursive(msg, values, params...);
|
110
113
|
}
|
@@ -34,12 +34,12 @@ public:
|
|
34
34
|
static_assert(std::is_trivially_destructible<T>(), "WriteField object must be trivially destructible");
|
35
35
|
|
36
36
|
AddField();
|
37
|
-
WriteData((
|
37
|
+
WriteData(const_data_ptr_cast(&element), sizeof(T));
|
38
38
|
}
|
39
39
|
|
40
40
|
//! Write a string with a length prefix
|
41
41
|
void WriteString(const string &val) {
|
42
|
-
WriteStringLen((
|
42
|
+
WriteStringLen(const_data_ptr_cast(val.c_str()), val.size());
|
43
43
|
}
|
44
44
|
void WriteStringLen(const_data_ptr_t val, idx_t len) {
|
45
45
|
AddField();
|
@@ -135,7 +135,7 @@ public:
|
|
135
135
|
private:
|
136
136
|
template <class T>
|
137
137
|
void Write(const T &element) {
|
138
|
-
WriteData((
|
138
|
+
WriteData(const_data_ptr_cast(&element), sizeof(T));
|
139
139
|
}
|
140
140
|
|
141
141
|
DUCKDB_API void WriteData(const_data_ptr_t buffer, idx_t write_size);
|
@@ -77,6 +77,17 @@ public:
|
|
77
77
|
return path;
|
78
78
|
}
|
79
79
|
|
80
|
+
template <class TARGET>
|
81
|
+
TARGET &Cast() {
|
82
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
83
|
+
return reinterpret_cast<TARGET &>(*this);
|
84
|
+
}
|
85
|
+
template <class TARGET>
|
86
|
+
const TARGET &Cast() const {
|
87
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
88
|
+
return reinterpret_cast<const TARGET &>(*this);
|
89
|
+
}
|
90
|
+
|
80
91
|
public:
|
81
92
|
FileSystem &file_system;
|
82
93
|
string path;
|
@@ -12,9 +12,8 @@ namespace duckdb {
|
|
12
12
|
|
13
13
|
class FSSTPrimitives {
|
14
14
|
public:
|
15
|
-
static string_t DecompressValue(void *duckdb_fsst_decoder, Vector &result,
|
15
|
+
static string_t DecompressValue(void *duckdb_fsst_decoder, Vector &result, const char *compressed_string,
|
16
16
|
idx_t compressed_string_len);
|
17
|
-
static Value DecompressValue(void *duckdb_fsst_decoder,
|
18
|
-
idx_t compressed_string_len);
|
17
|
+
static Value DecompressValue(void *duckdb_fsst_decoder, const char *compressed_string, idx_t compressed_string_len);
|
19
18
|
};
|
20
19
|
} // namespace duckdb
|
@@ -36,7 +36,7 @@ struct Radix {
|
|
36
36
|
public:
|
37
37
|
static inline bool IsLittleEndian() {
|
38
38
|
int n = 1;
|
39
|
-
if (*(
|
39
|
+
if (*char_ptr_cast(&n) == 1) {
|
40
40
|
return true;
|
41
41
|
} else {
|
42
42
|
return false;
|
@@ -81,7 +81,7 @@ public:
|
|
81
81
|
if (x < -FLT_MAX) {
|
82
82
|
return 0;
|
83
83
|
}
|
84
|
-
buff = Load<uint32_t>((
|
84
|
+
buff = Load<uint32_t>(const_data_ptr_cast(&x));
|
85
85
|
if ((buff & (1u << 31)) == 0) { //! +0 and positive numbers
|
86
86
|
buff |= (1u << 31);
|
87
87
|
} else { //! negative numbers
|
@@ -111,7 +111,7 @@ public:
|
|
111
111
|
if (x < -DBL_MAX) {
|
112
112
|
return 0;
|
113
113
|
}
|
114
|
-
buff = Load<uint64_t>((
|
114
|
+
buff = Load<uint64_t>(const_data_ptr_cast(&x));
|
115
115
|
if (buff < (1ull << 63)) { //! +0 and positive numbers
|
116
116
|
buff += (1ull << 63);
|
117
117
|
} else { //! negative numbers
|
@@ -24,12 +24,15 @@ private:
|
|
24
24
|
template <class T>
|
25
25
|
void Write(T element) {
|
26
26
|
static_assert(std::is_trivially_destructible<T>(), "Write element must be trivially destructible");
|
27
|
-
WriteData((
|
27
|
+
WriteData(const_data_ptr_cast(&element), sizeof(T));
|
28
28
|
}
|
29
29
|
void WriteData(const_data_ptr_t buffer, idx_t write_size) {
|
30
30
|
data.insert(data.end(), buffer, buffer + write_size);
|
31
31
|
stack.back().size += write_size;
|
32
32
|
}
|
33
|
+
void WriteData(const char *ptr, idx_t write_size) {
|
34
|
+
WriteData(const_data_ptr_cast(ptr), write_size);
|
35
|
+
}
|
33
36
|
|
34
37
|
explicit BinarySerializer() {
|
35
38
|
serialize_enum_as_string = false;
|
@@ -46,16 +46,16 @@ public:
|
|
46
46
|
void Write(T element) {
|
47
47
|
static_assert(std::is_trivially_destructible<T>(), "Write element must be trivially destructible");
|
48
48
|
|
49
|
-
WriteData((
|
49
|
+
WriteData(const_data_ptr_cast(&element), sizeof(T));
|
50
50
|
}
|
51
51
|
|
52
52
|
//! Write data from a string buffer directly (without length prefix)
|
53
53
|
void WriteBufferData(const string &str) {
|
54
|
-
WriteData((
|
54
|
+
WriteData(const_data_ptr_cast(str.c_str()), str.size());
|
55
55
|
}
|
56
56
|
//! Write a string with a length prefix
|
57
57
|
void WriteString(const string &val) {
|
58
|
-
WriteStringLen((
|
58
|
+
WriteStringLen(const_data_ptr_cast(val.c_str()), val.size());
|
59
59
|
}
|
60
60
|
void WriteStringLen(const_data_ptr_t val, idx_t len) {
|
61
61
|
Write<uint32_t>((uint32_t)len);
|
@@ -127,7 +127,7 @@ public:
|
|
127
127
|
template <class T>
|
128
128
|
T Read() {
|
129
129
|
T value;
|
130
|
-
ReadData((
|
130
|
+
ReadData(data_ptr_cast(&value), sizeof(T));
|
131
131
|
return value;
|
132
132
|
}
|
133
133
|
|
@@ -28,4 +28,34 @@ typedef idx_t column_t;
|
|
28
28
|
//! Type used for storage (column) identifiers
|
29
29
|
typedef idx_t storage_t;
|
30
30
|
|
31
|
+
template <class SRC>
|
32
|
+
data_ptr_t data_ptr_cast(SRC *src) {
|
33
|
+
return reinterpret_cast<data_ptr_t>(src);
|
34
|
+
}
|
35
|
+
|
36
|
+
template <class SRC>
|
37
|
+
const_data_ptr_t const_data_ptr_cast(const SRC *src) {
|
38
|
+
return reinterpret_cast<const_data_ptr_t>(src);
|
39
|
+
}
|
40
|
+
|
41
|
+
template <class SRC>
|
42
|
+
char *char_ptr_cast(SRC *src) {
|
43
|
+
return reinterpret_cast<char *>(src);
|
44
|
+
}
|
45
|
+
|
46
|
+
template <class SRC>
|
47
|
+
const char *const_char_ptr_cast(const SRC *src) {
|
48
|
+
return reinterpret_cast<const char *>(src);
|
49
|
+
}
|
50
|
+
|
51
|
+
template <class SRC>
|
52
|
+
const unsigned char *const_uchar_ptr_cast(const SRC *src) {
|
53
|
+
return reinterpret_cast<const unsigned char *>(src);
|
54
|
+
}
|
55
|
+
|
56
|
+
template <class SRC>
|
57
|
+
uintptr_t CastPointerToValue(SRC *src) {
|
58
|
+
return uintptr_t(src);
|
59
|
+
}
|
60
|
+
|
31
61
|
} // namespace duckdb
|
@@ -108,6 +108,18 @@ protected:
|
|
108
108
|
mutex lock;
|
109
109
|
shared_ptr<PartitionColumnDataAllocators> allocators;
|
110
110
|
vector<unique_ptr<ColumnDataCollection>> partitions;
|
111
|
+
|
112
|
+
public:
|
113
|
+
template <class TARGET>
|
114
|
+
TARGET &Cast() {
|
115
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
116
|
+
return reinterpret_cast<TARGET &>(*this);
|
117
|
+
}
|
118
|
+
template <class TARGET>
|
119
|
+
const TARGET &Cast() const {
|
120
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
121
|
+
return reinterpret_cast<const TARGET &>(*this);
|
122
|
+
}
|
111
123
|
};
|
112
124
|
|
113
125
|
} // namespace duckdb
|
@@ -12,6 +12,10 @@
|
|
12
12
|
#include "duckdb/common/types/vector.hpp"
|
13
13
|
#include "hyperloglog.hpp"
|
14
14
|
|
15
|
+
namespace duckdb_hll {
|
16
|
+
struct robj;
|
17
|
+
}
|
18
|
+
|
15
19
|
namespace duckdb {
|
16
20
|
|
17
21
|
enum class HLLStorageType { UNCOMPRESSED = 1 };
|
@@ -58,9 +62,9 @@ public:
|
|
58
62
|
void AddToLog(UnifiedVectorFormat &vdata, idx_t count, uint64_t indices[], uint8_t counts[]);
|
59
63
|
|
60
64
|
private:
|
61
|
-
explicit HyperLogLog(
|
65
|
+
explicit HyperLogLog(duckdb_hll::robj *hll);
|
62
66
|
|
63
|
-
|
67
|
+
duckdb_hll::robj *hll;
|
64
68
|
mutex lock;
|
65
69
|
};
|
66
70
|
} // namespace duckdb
|
@@ -135,6 +135,18 @@ protected:
|
|
135
135
|
mutex lock;
|
136
136
|
shared_ptr<PartitionTupleDataAllocators> allocators;
|
137
137
|
vector<unique_ptr<TupleDataCollection>> partitions;
|
138
|
+
|
139
|
+
public:
|
140
|
+
template <class TARGET>
|
141
|
+
TARGET &Cast() {
|
142
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
143
|
+
return reinterpret_cast<TARGET &>(*this);
|
144
|
+
}
|
145
|
+
template <class TARGET>
|
146
|
+
const TARGET &Cast() const {
|
147
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
148
|
+
return reinterpret_cast<const TARGET &>(*this);
|
149
|
+
}
|
138
150
|
};
|
139
151
|
|
140
152
|
} // namespace duckdb
|
@@ -55,7 +55,7 @@ public:
|
|
55
55
|
#else
|
56
56
|
memset(value.pointer.prefix, 0, PREFIX_BYTES);
|
57
57
|
#endif
|
58
|
-
value.pointer.ptr = (char *)data;
|
58
|
+
value.pointer.ptr = (char *)data; // NOLINT
|
59
59
|
}
|
60
60
|
}
|
61
61
|
string_t(const char *data) : string_t(data, strlen(data)) { // NOLINT: Allow implicit conversion from `const char*`
|
@@ -69,14 +69,14 @@ public:
|
|
69
69
|
}
|
70
70
|
|
71
71
|
const char *GetData() const {
|
72
|
-
return IsInlined() ? (
|
72
|
+
return IsInlined() ? const_char_ptr_cast(value.inlined.inlined) : value.pointer.ptr;
|
73
73
|
}
|
74
74
|
const char *GetDataUnsafe() const {
|
75
75
|
return GetData();
|
76
76
|
}
|
77
77
|
|
78
78
|
char *GetDataWriteable() const {
|
79
|
-
return IsInlined() ? (char *)value.inlined.inlined : value.pointer.ptr;
|
79
|
+
return IsInlined() ? (char *)value.inlined.inlined : value.pointer.ptr; // NOLINT
|
80
80
|
}
|
81
81
|
|
82
82
|
const char *GetPrefix() const {
|
@@ -110,7 +110,7 @@ public:
|
|
110
110
|
} else {
|
111
111
|
// copy the data into the prefix
|
112
112
|
#ifndef DUCKDB_DEBUG_NO_INLINE
|
113
|
-
auto dataptr =
|
113
|
+
auto dataptr = GetData();
|
114
114
|
memcpy(value.pointer.prefix, dataptr, PREFIX_LENGTH);
|
115
115
|
#else
|
116
116
|
memset(value.pointer.prefix, 0, PREFIX_BYTES);
|
@@ -128,15 +128,15 @@ public:
|
|
128
128
|
return false;
|
129
129
|
return (memcmp(a.GetData(), b.GetData(), a.GetSize()) == 0);
|
130
130
|
#endif
|
131
|
-
uint64_t A = Load<uint64_t>((
|
132
|
-
uint64_t B = Load<uint64_t>((
|
131
|
+
uint64_t A = Load<uint64_t>(const_data_ptr_cast(&a));
|
132
|
+
uint64_t B = Load<uint64_t>(const_data_ptr_cast(&b));
|
133
133
|
if (A != B) {
|
134
134
|
// Either length or prefix are different -> not equal
|
135
135
|
return false;
|
136
136
|
}
|
137
137
|
// they have the same length and same prefix!
|
138
|
-
A = Load<uint64_t>((
|
139
|
-
B = Load<uint64_t>((
|
138
|
+
A = Load<uint64_t>(const_data_ptr_cast(&a) + 8u);
|
139
|
+
B = Load<uint64_t>(const_data_ptr_cast(&b) + 8u);
|
140
140
|
if (A == B) {
|
141
141
|
// either they are both inlined (so compare equal) or point to the same string (so compare equal)
|
142
142
|
return true;
|
@@ -159,8 +159,8 @@ public:
|
|
159
159
|
const uint32_t min_length = std::min<uint32_t>(left_length, right_length);
|
160
160
|
|
161
161
|
#ifndef DUCKDB_DEBUG_NO_INLINE
|
162
|
-
uint32_t A = Load<uint32_t>((
|
163
|
-
uint32_t B = Load<uint32_t>((
|
162
|
+
uint32_t A = Load<uint32_t>(const_data_ptr_cast(left.GetPrefix()));
|
163
|
+
uint32_t B = Load<uint32_t>(const_data_ptr_cast(right.GetPrefix()));
|
164
164
|
|
165
165
|
// Utility to move 0xa1b2c3d4 into 0xd4c3b2a1, basically inverting the order byte-a-byte
|
166
166
|
auto bswap = [](uint32_t v) -> uint32_t {
|
@@ -166,7 +166,7 @@ public:
|
|
166
166
|
//! Create a blob Value from a data pointer and a length: no bytes are interpreted
|
167
167
|
DUCKDB_API static Value BLOB(const_data_ptr_t data, idx_t len);
|
168
168
|
static Value BLOB_RAW(const string &data) { // NOLINT
|
169
|
-
return Value::BLOB((
|
169
|
+
return Value::BLOB(const_data_ptr_cast(data.c_str()), data.size());
|
170
170
|
}
|
171
171
|
//! Creates a blob by casting a specified string to a blob (i.e. interpreting \x characters)
|
172
172
|
DUCKDB_API static Value BLOB(const string &data);
|
@@ -24,6 +24,15 @@ struct UnifiedVectorFormat {
|
|
24
24
|
data_ptr_t data;
|
25
25
|
ValidityMask validity;
|
26
26
|
SelectionVector owned_sel;
|
27
|
+
|
28
|
+
template <class T>
|
29
|
+
static inline const T *GetData(const UnifiedVectorFormat &format) {
|
30
|
+
return reinterpret_cast<const T *>(format.data);
|
31
|
+
}
|
32
|
+
template <class T>
|
33
|
+
static inline T *GetDataNoConst(UnifiedVectorFormat &format) {
|
34
|
+
return reinterpret_cast<T *>(format.data);
|
35
|
+
}
|
27
36
|
};
|
28
37
|
|
29
38
|
class VectorCache;
|
@@ -52,7 +52,7 @@ public:
|
|
52
52
|
if (type != TARGET::TYPE) {
|
53
53
|
throw InternalException("Failed to cast vector auxiliary data to type - type mismatch");
|
54
54
|
}
|
55
|
-
return
|
55
|
+
return reinterpret_cast<TARGET &>(*this);
|
56
56
|
}
|
57
57
|
|
58
58
|
template <class TARGET>
|
@@ -60,7 +60,7 @@ public:
|
|
60
60
|
if (type != TARGET::TYPE) {
|
61
61
|
throw InternalException("Failed to cast vector auxiliary data to type - type mismatch");
|
62
62
|
}
|
63
|
-
return
|
63
|
+
return reinterpret_cast<const TARGET &>(*this);
|
64
64
|
}
|
65
65
|
};
|
66
66
|
|
@@ -121,6 +121,18 @@ protected:
|
|
121
121
|
VectorBufferType buffer_type;
|
122
122
|
unique_ptr<VectorAuxiliaryData> aux_data;
|
123
123
|
unsafe_unique_array<data_t> data;
|
124
|
+
|
125
|
+
public:
|
126
|
+
template <class TARGET>
|
127
|
+
TARGET &Cast() {
|
128
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
129
|
+
return reinterpret_cast<TARGET &>(*this);
|
130
|
+
}
|
131
|
+
template <class TARGET>
|
132
|
+
const TARGET &Cast() const {
|
133
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
134
|
+
return reinterpret_cast<const TARGET &>(*this);
|
135
|
+
}
|
124
136
|
};
|
125
137
|
|
126
138
|
//! The DictionaryBuffer holds a selection vector
|
@@ -154,7 +166,7 @@ private:
|
|
154
166
|
class VectorStringBuffer : public VectorBuffer {
|
155
167
|
public:
|
156
168
|
VectorStringBuffer();
|
157
|
-
VectorStringBuffer(VectorBufferType type);
|
169
|
+
explicit VectorStringBuffer(VectorBufferType type);
|
158
170
|
|
159
171
|
public:
|
160
172
|
string_t AddString(const char *data, idx_t len) {
|
@@ -207,7 +219,7 @@ private:
|
|
207
219
|
class VectorStructBuffer : public VectorBuffer {
|
208
220
|
public:
|
209
221
|
VectorStructBuffer();
|
210
|
-
VectorStructBuffer(const LogicalType &struct_type, idx_t capacity = STANDARD_VECTOR_SIZE);
|
222
|
+
explicit VectorStructBuffer(const LogicalType &struct_type, idx_t capacity = STANDARD_VECTOR_SIZE);
|
211
223
|
VectorStructBuffer(Vector &other, const SelectionVector &sel, idx_t count);
|
212
224
|
~VectorStructBuffer() override;
|
213
225
|
|
@@ -226,8 +238,8 @@ private:
|
|
226
238
|
|
227
239
|
class VectorListBuffer : public VectorBuffer {
|
228
240
|
public:
|
229
|
-
VectorListBuffer(unique_ptr<Vector> vector, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
|
230
|
-
VectorListBuffer(const LogicalType &list_type, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
|
241
|
+
explicit VectorListBuffer(unique_ptr<Vector> vector, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
|
242
|
+
explicit VectorListBuffer(const LogicalType &list_type, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
|
231
243
|
~VectorListBuffer() override;
|
232
244
|
|
233
245
|
public:
|