duckdb 0.8.1-dev51.0 → 0.8.1-dev96.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 +52 -51
- 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/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_set.cpp +1 -1
- package/src/duckdb/src/catalog/dependency_manager.cpp +2 -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/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 +98 -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/distributive/approx_count.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +4 -4
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +12 -11
- package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +7 -7
- package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +14 -14
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +21 -21
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +18 -19
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +3 -4
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +4 -4
- package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +4 -4
- package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +1 -1
- 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 +28 -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/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 +2 -2
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +5 -5
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +8 -8
- 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 -4
- 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.hpp +2 -2
- 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 +2 -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 +20 -19
- 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 +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +2 -2
- 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/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/optimizer/deliminator.cpp +12 -12
- 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/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 +69 -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 +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +2 -2
- 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/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 +3 -3
- 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/pcg/pcg_extras.hpp +1 -1
@@ -94,12 +94,12 @@ unique_ptr<AnalyzeState> FSSTStorage::StringInitAnalyze(ColumnData &col_data, Ph
|
|
94
94
|
}
|
95
95
|
|
96
96
|
bool FSSTStorage::StringAnalyze(AnalyzeState &state_p, Vector &input, idx_t count) {
|
97
|
-
auto &state = (
|
97
|
+
auto &state = state_p.Cast<FSSTAnalyzeState>();
|
98
98
|
UnifiedVectorFormat vdata;
|
99
99
|
input.ToUnifiedFormat(count, vdata);
|
100
100
|
|
101
101
|
state.count += count;
|
102
|
-
auto data = (
|
102
|
+
auto data = UnifiedVectorFormat::GetData<string_t>(vdata);
|
103
103
|
|
104
104
|
// Note that we ignore the sampling in case we have not found any valid strings yet, this solves the issue of
|
105
105
|
// not having seen any valid strings here leading to an empty fsst symbol table.
|
@@ -138,7 +138,7 @@ bool FSSTStorage::StringAnalyze(AnalyzeState &state_p, Vector &input, idx_t coun
|
|
138
138
|
}
|
139
139
|
|
140
140
|
idx_t FSSTStorage::StringFinalAnalyze(AnalyzeState &state_p) {
|
141
|
-
auto &state = (
|
141
|
+
auto &state = state_p.Cast<FSSTAnalyzeState>();
|
142
142
|
|
143
143
|
size_t compressed_dict_size = 0;
|
144
144
|
size_t max_compressed_string_length = 0;
|
@@ -155,7 +155,7 @@ idx_t FSSTStorage::StringFinalAnalyze(AnalyzeState &state_p) {
|
|
155
155
|
vector<unsigned char *> fsst_string_ptrs;
|
156
156
|
for (auto &str : state.fsst_strings) {
|
157
157
|
fsst_string_sizes.push_back(str.GetSize());
|
158
|
-
fsst_string_ptrs.push_back((unsigned char *)str.GetData());
|
158
|
+
fsst_string_ptrs.push_back((unsigned char *)str.GetData()); // NOLINT
|
159
159
|
}
|
160
160
|
|
161
161
|
state.fsst_encoder = duckdb_fsst_create(string_count, &fsst_string_sizes[0], &fsst_string_ptrs[0], 0);
|
@@ -332,14 +332,14 @@ public:
|
|
332
332
|
|
333
333
|
// calculate ptr and offsets
|
334
334
|
auto base_ptr = handle.Ptr();
|
335
|
-
auto header_ptr =
|
335
|
+
auto header_ptr = reinterpret_cast<fsst_compression_header_t *>(base_ptr);
|
336
336
|
auto compressed_index_buffer_offset = sizeof(fsst_compression_header_t);
|
337
337
|
auto symbol_table_offset = compressed_index_buffer_offset + compressed_index_buffer_size;
|
338
338
|
|
339
339
|
D_ASSERT(current_segment->count == index_buffer.size());
|
340
340
|
BitpackingPrimitives::PackBuffer<sel_t, false>(base_ptr + compressed_index_buffer_offset,
|
341
|
-
|
342
|
-
current_width);
|
341
|
+
reinterpret_cast<uint32_t *>(index_buffer.data()),
|
342
|
+
current_segment->count, current_width);
|
343
343
|
|
344
344
|
// Write the fsst symbol table or nothing
|
345
345
|
if (fsst_encoder != nullptr) {
|
@@ -348,8 +348,8 @@ public:
|
|
348
348
|
memset(base_ptr + symbol_table_offset, 0, fsst_serialized_symbol_table_size);
|
349
349
|
}
|
350
350
|
|
351
|
-
Store<uint32_t>(symbol_table_offset, (
|
352
|
-
Store<uint32_t>((uint32_t)current_width, (
|
351
|
+
Store<uint32_t>(symbol_table_offset, data_ptr_cast(&header_ptr->fsst_symbol_table_offset));
|
352
|
+
Store<uint32_t>((uint32_t)current_width, data_ptr_cast(&header_ptr->bitpacking_width));
|
353
353
|
|
354
354
|
if (total_size >= FSSTStorage::COMPACTION_FLUSH_LIMIT) {
|
355
355
|
// the block is full enough, don't bother moving around the dictionary
|
@@ -408,12 +408,12 @@ unique_ptr<CompressionState> FSSTStorage::InitCompression(ColumnDataCheckpointer
|
|
408
408
|
}
|
409
409
|
|
410
410
|
void FSSTStorage::Compress(CompressionState &state_p, Vector &scan_vector, idx_t count) {
|
411
|
-
auto &state = (
|
411
|
+
auto &state = state_p.Cast<FSSTCompressionState>();
|
412
412
|
|
413
413
|
// Get vector data
|
414
414
|
UnifiedVectorFormat vdata;
|
415
415
|
scan_vector.ToUnifiedFormat(count, vdata);
|
416
|
-
auto data = (
|
416
|
+
auto data = UnifiedVectorFormat::GetData<string_t>(vdata);
|
417
417
|
|
418
418
|
// Collect pointers to strings to compress
|
419
419
|
vector<size_t> sizes_in;
|
@@ -431,7 +431,7 @@ void FSSTStorage::Compress(CompressionState &state_p, Vector &scan_vector, idx_t
|
|
431
431
|
total_count++;
|
432
432
|
total_size += data[idx].GetSize();
|
433
433
|
sizes_in.push_back(data[idx].GetSize());
|
434
|
-
strings_in.push_back((unsigned char *)data[idx].GetData());
|
434
|
+
strings_in.push_back((unsigned char *)data[idx].GetData()); // NOLINT
|
435
435
|
}
|
436
436
|
|
437
437
|
// Only Nulls or empty strings in this vector, nothing to compress
|
@@ -486,7 +486,7 @@ void FSSTStorage::Compress(CompressionState &state_p, Vector &scan_vector, idx_t
|
|
486
486
|
}
|
487
487
|
|
488
488
|
void FSSTStorage::FinalizeCompress(CompressionState &state_p) {
|
489
|
-
auto &state = (
|
489
|
+
auto &state = state_p.Cast<FSSTCompressionState>();
|
490
490
|
state.Flush(true);
|
491
491
|
}
|
492
492
|
|
@@ -522,8 +522,8 @@ unique_ptr<SegmentScanState> FSSTStorage::StringInitScan(ColumnSegment &segment)
|
|
522
522
|
auto base_ptr = state->handle.Ptr() + segment.GetBlockOffset();
|
523
523
|
|
524
524
|
state->duckdb_fsst_decoder = make_buffer<duckdb_fsst_decoder_t>();
|
525
|
-
auto retval = ParseFSSTSegmentHeader(
|
526
|
-
|
525
|
+
auto retval = ParseFSSTSegmentHeader(
|
526
|
+
base_ptr, reinterpret_cast<duckdb_fsst_decoder_t *>(state->duckdb_fsst_decoder.get()), &state->current_width);
|
527
527
|
if (!retval) {
|
528
528
|
state->duckdb_fsst_decoder = nullptr;
|
529
529
|
}
|
@@ -551,7 +551,7 @@ template <bool ALLOW_FSST_VECTORS>
|
|
551
551
|
void FSSTStorage::StringScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result,
|
552
552
|
idx_t result_offset) {
|
553
553
|
|
554
|
-
auto &scan_state =
|
554
|
+
auto &scan_state = state.scan_state->Cast<FSSTScanState>();
|
555
555
|
auto start = segment.GetRelativeIndex(state.row_index);
|
556
556
|
|
557
557
|
bool enable_fsst_vectors;
|
@@ -564,7 +564,7 @@ void FSSTStorage::StringScanPartial(ColumnSegment &segment, ColumnScanState &sta
|
|
564
564
|
|
565
565
|
auto baseptr = scan_state.handle.Ptr() + segment.GetBlockOffset();
|
566
566
|
auto dict = GetDictionary(segment, scan_state.handle);
|
567
|
-
auto base_data = (
|
567
|
+
auto base_data = data_ptr_cast(baseptr + sizeof(fsst_compression_header_t));
|
568
568
|
string_t *result_data;
|
569
569
|
|
570
570
|
if (scan_count == 0) {
|
@@ -594,7 +594,7 @@ void FSSTStorage::StringScanPartial(ColumnSegment &segment, ColumnScanState &sta
|
|
594
594
|
auto offsets = CalculateBpDeltaOffsets(scan_state.last_known_row, start, scan_count);
|
595
595
|
|
596
596
|
auto bitunpack_buffer = unique_ptr<uint32_t[]>(new uint32_t[offsets.total_bitunpack_count]);
|
597
|
-
BitUnpackRange(base_data, (
|
597
|
+
BitUnpackRange(base_data, data_ptr_cast(bitunpack_buffer.get()), offsets.total_bitunpack_count,
|
598
598
|
offsets.bitunpack_start_row, scan_state.current_width);
|
599
599
|
auto delta_decode_buffer = unique_ptr<uint32_t[]>(new uint32_t[offsets.total_delta_decode_count]);
|
600
600
|
DeltaDecodeIndices(bitunpack_buffer.get() + offsets.bitunpack_alignment_offset, delta_decode_buffer.get(),
|
@@ -617,8 +617,8 @@ void FSSTStorage::StringScanPartial(ColumnSegment &segment, ColumnScanState &sta
|
|
617
617
|
dict, baseptr, delta_decode_buffer[i + offsets.unused_delta_decoded_values]);
|
618
618
|
|
619
619
|
if (str_len > 0) {
|
620
|
-
result_data[i + result_offset] =
|
621
|
-
scan_state.duckdb_fsst_decoder.get(), result,
|
620
|
+
result_data[i + result_offset] =
|
621
|
+
FSSTPrimitives::DecompressValue(scan_state.duckdb_fsst_decoder.get(), result, str_ptr, str_len);
|
622
622
|
} else {
|
623
623
|
result_data[i + result_offset] = string_t(nullptr, 0);
|
624
624
|
}
|
@@ -642,7 +642,7 @@ void FSSTStorage::StringFetchRow(ColumnSegment &segment, ColumnFetchState &state
|
|
642
642
|
auto &buffer_manager = BufferManager::GetBufferManager(segment.db);
|
643
643
|
auto handle = buffer_manager.Pin(segment.block);
|
644
644
|
auto base_ptr = handle.Ptr() + segment.GetBlockOffset();
|
645
|
-
auto base_data = (
|
645
|
+
auto base_data = data_ptr_cast(base_ptr + sizeof(fsst_compression_header_t));
|
646
646
|
auto dict = GetDictionary(segment, handle);
|
647
647
|
|
648
648
|
duckdb_fsst_decoder_t decoder;
|
@@ -657,7 +657,7 @@ void FSSTStorage::StringFetchRow(ColumnSegment &segment, ColumnFetchState &state
|
|
657
657
|
auto offsets = CalculateBpDeltaOffsets(-1, row_id, 1);
|
658
658
|
|
659
659
|
auto bitunpack_buffer = unique_ptr<uint32_t[]>(new uint32_t[offsets.total_bitunpack_count]);
|
660
|
-
BitUnpackRange(base_data, (
|
660
|
+
BitUnpackRange(base_data, data_ptr_cast(bitunpack_buffer.get()), offsets.total_bitunpack_count,
|
661
661
|
offsets.bitunpack_start_row, width);
|
662
662
|
auto delta_decode_buffer = unique_ptr<uint32_t[]>(new uint32_t[offsets.total_delta_decode_count]);
|
663
663
|
DeltaDecodeIndices(bitunpack_buffer.get() + offsets.bitunpack_alignment_offset, delta_decode_buffer.get(),
|
@@ -668,8 +668,8 @@ void FSSTStorage::StringFetchRow(ColumnSegment &segment, ColumnFetchState &state
|
|
668
668
|
string_t compressed_string = UncompressedStringStorage::FetchStringFromDict(
|
669
669
|
segment, dict, result, base_ptr, delta_decode_buffer[offsets.unused_delta_decoded_values], string_length);
|
670
670
|
|
671
|
-
result_data[result_idx] = FSSTPrimitives::DecompressValue(
|
672
|
-
|
671
|
+
result_data[result_idx] = FSSTPrimitives::DecompressValue((void *)&decoder, result, compressed_string.GetData(),
|
672
|
+
compressed_string.GetSize());
|
673
673
|
} else {
|
674
674
|
// There's no fsst symtable, this only happens for empty strings or nulls, we can just emit an empty string
|
675
675
|
result_data[result_idx] = string_t(nullptr, 0);
|
@@ -696,16 +696,16 @@ bool FSSTFun::TypeIsSupported(PhysicalType type) {
|
|
696
696
|
// Helper Functions
|
697
697
|
//===--------------------------------------------------------------------===//
|
698
698
|
void FSSTStorage::SetDictionary(ColumnSegment &segment, BufferHandle &handle, StringDictionaryContainer container) {
|
699
|
-
auto header_ptr =
|
700
|
-
Store<uint32_t>(container.size, (
|
701
|
-
Store<uint32_t>(container.end, (
|
699
|
+
auto header_ptr = reinterpret_cast<fsst_compression_header_t *>(handle.Ptr() + segment.GetBlockOffset());
|
700
|
+
Store<uint32_t>(container.size, data_ptr_cast(&header_ptr->dict_size));
|
701
|
+
Store<uint32_t>(container.end, data_ptr_cast(&header_ptr->dict_end));
|
702
702
|
}
|
703
703
|
|
704
704
|
StringDictionaryContainer FSSTStorage::GetDictionary(ColumnSegment &segment, BufferHandle &handle) {
|
705
|
-
auto header_ptr =
|
705
|
+
auto header_ptr = reinterpret_cast<fsst_compression_header_t *>(handle.Ptr() + segment.GetBlockOffset());
|
706
706
|
StringDictionaryContainer container;
|
707
|
-
container.size = Load<uint32_t>((
|
708
|
-
container.end = Load<uint32_t>((
|
707
|
+
container.size = Load<uint32_t>(data_ptr_cast(&header_ptr->dict_size));
|
708
|
+
container.end = Load<uint32_t>(data_ptr_cast(&header_ptr->dict_end));
|
709
709
|
return container;
|
710
710
|
}
|
711
711
|
|
@@ -716,15 +716,15 @@ char *FSSTStorage::FetchStringPointer(StringDictionaryContainer dict, data_ptr_t
|
|
716
716
|
|
717
717
|
auto dict_end = baseptr + dict.end;
|
718
718
|
auto dict_pos = dict_end - dict_offset;
|
719
|
-
return (
|
719
|
+
return char_ptr_cast(dict_pos);
|
720
720
|
}
|
721
721
|
|
722
722
|
// Returns false if no symbol table was found. This means all strings are either empty or null
|
723
723
|
bool FSSTStorage::ParseFSSTSegmentHeader(data_ptr_t base_ptr, duckdb_fsst_decoder_t *decoder_out,
|
724
724
|
bitpacking_width_t *width_out) {
|
725
|
-
auto header_ptr =
|
726
|
-
auto fsst_symbol_table_offset = Load<uint32_t>((
|
727
|
-
*width_out = (bitpacking_width_t)(Load<uint32_t>((
|
725
|
+
auto header_ptr = reinterpret_cast<fsst_compression_header_t *>(base_ptr);
|
726
|
+
auto fsst_symbol_table_offset = Load<uint32_t>(data_ptr_cast(&header_ptr->fsst_symbol_table_offset));
|
727
|
+
*width_out = (bitpacking_width_t)(Load<uint32_t>(data_ptr_cast(&header_ptr->bitpacking_width)));
|
728
728
|
return duckdb_fsst_import(decoder_out, base_ptr + fsst_symbol_table_offset);
|
729
729
|
}
|
730
730
|
|
@@ -40,7 +40,7 @@ public:
|
|
40
40
|
}
|
41
41
|
|
42
42
|
template <class OP = EmptyRLEWriter>
|
43
|
-
void Update(T *data, ValidityMask &validity, idx_t idx) {
|
43
|
+
void Update(const T *data, ValidityMask &validity, idx_t idx) {
|
44
44
|
if (validity.RowIsValid(idx)) {
|
45
45
|
if (all_null) {
|
46
46
|
// no value seen yet
|
@@ -94,11 +94,11 @@ unique_ptr<AnalyzeState> RLEInitAnalyze(ColumnData &col_data, PhysicalType type)
|
|
94
94
|
|
95
95
|
template <class T>
|
96
96
|
bool RLEAnalyze(AnalyzeState &state, Vector &input, idx_t count) {
|
97
|
-
auto &rle_state =
|
97
|
+
auto &rle_state = state.template Cast<RLEAnalyzeState<T>>();
|
98
98
|
UnifiedVectorFormat vdata;
|
99
99
|
input.ToUnifiedFormat(count, vdata);
|
100
100
|
|
101
|
-
auto data = (
|
101
|
+
auto data = UnifiedVectorFormat::GetData<T>(vdata);
|
102
102
|
for (idx_t i = 0; i < count; i++) {
|
103
103
|
auto idx = vdata.sel->get_index(i);
|
104
104
|
rle_state.state.Update(data, vdata.validity, idx);
|
@@ -108,7 +108,7 @@ bool RLEAnalyze(AnalyzeState &state, Vector &input, idx_t count) {
|
|
108
108
|
|
109
109
|
template <class T>
|
110
110
|
idx_t RLEFinalAnalyze(AnalyzeState &state) {
|
111
|
-
auto &rle_state =
|
111
|
+
auto &rle_state = state.template Cast<RLEAnalyzeState<T>>();
|
112
112
|
return (sizeof(rle_count_t) + sizeof(T)) * rle_state.state.seen_count;
|
113
113
|
}
|
114
114
|
|
@@ -124,7 +124,7 @@ struct RLECompressState : public CompressionState {
|
|
124
124
|
struct RLEWriter {
|
125
125
|
template <class VALUE_TYPE>
|
126
126
|
static void Operation(VALUE_TYPE value, rle_count_t count, void *dataptr, bool is_null) {
|
127
|
-
auto state =
|
127
|
+
auto state = reinterpret_cast<RLECompressState<T, WRITE_STATISTICS> *>(dataptr);
|
128
128
|
state->WriteValue(value, count, is_null);
|
129
129
|
}
|
130
130
|
};
|
@@ -156,7 +156,7 @@ struct RLECompressState : public CompressionState {
|
|
156
156
|
}
|
157
157
|
|
158
158
|
void Append(UnifiedVectorFormat &vdata, idx_t count) {
|
159
|
-
auto data = (
|
159
|
+
auto data = UnifiedVectorFormat::GetData<T>(vdata);
|
160
160
|
for (idx_t i = 0; i < count; i++) {
|
161
161
|
auto idx = vdata.sel->get_index(i);
|
162
162
|
state.template Update<RLECompressState<T, WRITE_STATISTICS>::RLEWriter>(data, vdata.validity, idx);
|
@@ -289,14 +289,14 @@ unique_ptr<SegmentScanState> RLEInitScan(ColumnSegment &segment) {
|
|
289
289
|
//===--------------------------------------------------------------------===//
|
290
290
|
template <class T>
|
291
291
|
void RLESkip(ColumnSegment &segment, ColumnScanState &state, idx_t skip_count) {
|
292
|
-
auto &scan_state =
|
292
|
+
auto &scan_state = state.scan_state->Cast<RLEScanState<T>>();
|
293
293
|
scan_state.Skip(segment, skip_count);
|
294
294
|
}
|
295
295
|
|
296
296
|
template <class T>
|
297
297
|
void RLEScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result,
|
298
298
|
idx_t result_offset) {
|
299
|
-
auto &scan_state =
|
299
|
+
auto &scan_state = state.scan_state->Cast<RLEScanState<T>>();
|
300
300
|
|
301
301
|
auto data = scan_state.handle.Ptr() + segment.GetBlockOffset();
|
302
302
|
auto data_pointer = (T *)(data + RLEConstants::RLE_HEADER_SIZE);
|
@@ -33,12 +33,12 @@ unique_ptr<AnalyzeState> UncompressedStringStorage::StringInitAnalyze(ColumnData
|
|
33
33
|
}
|
34
34
|
|
35
35
|
bool UncompressedStringStorage::StringAnalyze(AnalyzeState &state_p, Vector &input, idx_t count) {
|
36
|
-
auto &state = (
|
36
|
+
auto &state = state_p.Cast<StringAnalyzeState>();
|
37
37
|
UnifiedVectorFormat vdata;
|
38
38
|
input.ToUnifiedFormat(count, vdata);
|
39
39
|
|
40
40
|
state.count += count;
|
41
|
-
auto data = (
|
41
|
+
auto data = UnifiedVectorFormat::GetData<string_t>(vdata);
|
42
42
|
for (idx_t i = 0; i < count; i++) {
|
43
43
|
auto idx = vdata.sel->get_index(i);
|
44
44
|
if (vdata.validity.RowIsValid(idx)) {
|
@@ -53,7 +53,7 @@ bool UncompressedStringStorage::StringAnalyze(AnalyzeState &state_p, Vector &inp
|
|
53
53
|
}
|
54
54
|
|
55
55
|
idx_t UncompressedStringStorage::StringFinalAnalyze(AnalyzeState &state_p) {
|
56
|
-
auto &state = (
|
56
|
+
auto &state = state_p.Cast<StringAnalyzeState>();
|
57
57
|
return state.count * sizeof(int32_t) + state.total_string_size + state.overflow_strings * BIG_STRING_MARKER_SIZE;
|
58
58
|
}
|
59
59
|
|
@@ -73,12 +73,12 @@ unique_ptr<SegmentScanState> UncompressedStringStorage::StringInitScan(ColumnSeg
|
|
73
73
|
void UncompressedStringStorage::StringScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count,
|
74
74
|
Vector &result, idx_t result_offset) {
|
75
75
|
// clear any previously locked buffers and get the primary buffer handle
|
76
|
-
auto &scan_state =
|
76
|
+
auto &scan_state = state.scan_state->Cast<StringScanState>();
|
77
77
|
auto start = segment.GetRelativeIndex(state.row_index);
|
78
78
|
|
79
79
|
auto baseptr = scan_state.handle.Ptr() + segment.GetBlockOffset();
|
80
80
|
auto dict = GetDictionary(segment, scan_state.handle);
|
81
|
-
auto base_data =
|
81
|
+
auto base_data = reinterpret_cast<int32_t *>(baseptr + DICTIONARY_HEADER_SIZE);
|
82
82
|
auto result_data = FlatVector::GetData<string_t>(result);
|
83
83
|
|
84
84
|
int32_t previous_offset = start > 0 ? base_data[start - 1] : 0;
|
@@ -124,7 +124,7 @@ void UncompressedStringStorage::StringFetchRow(ColumnSegment &segment, ColumnFet
|
|
124
124
|
|
125
125
|
auto baseptr = handle.Ptr() + segment.GetBlockOffset();
|
126
126
|
auto dict = GetDictionary(segment, handle);
|
127
|
-
auto base_data =
|
127
|
+
auto base_data = reinterpret_cast<int32_t *>(baseptr + DICTIONARY_HEADER_SIZE);
|
128
128
|
auto result_data = FlatVector::GetData<string_t>(result);
|
129
129
|
|
130
130
|
auto dict_offset = base_data[row_id];
|
@@ -223,7 +223,7 @@ idx_t UncompressedStringStorage::RemainingSpace(ColumnSegment &segment, BufferHa
|
|
223
223
|
|
224
224
|
void UncompressedStringStorage::WriteString(ColumnSegment &segment, string_t string, block_id_t &result_block,
|
225
225
|
int32_t &result_offset) {
|
226
|
-
auto &state =
|
226
|
+
auto &state = segment.GetSegmentState()->Cast<UncompressedStringSegmentState>();
|
227
227
|
if (state.overflow_writer) {
|
228
228
|
// overflow writer is set: write string there
|
229
229
|
state.overflow_writer->WriteString(string, result_block, result_offset);
|
@@ -240,7 +240,7 @@ void UncompressedStringStorage::WriteStringMemory(ColumnSegment &segment, string
|
|
240
240
|
BufferHandle handle;
|
241
241
|
|
242
242
|
auto &buffer_manager = BufferManager::GetBufferManager(segment.db);
|
243
|
-
auto &state =
|
243
|
+
auto &state = segment.GetSegmentState()->Cast<UncompressedStringSegmentState>();
|
244
244
|
// check if the string fits in the current block
|
245
245
|
if (!state.head || state.head->offset + total_length >= state.head->size) {
|
246
246
|
// string does not fit, allocate space for it
|
@@ -278,7 +278,7 @@ string_t UncompressedStringStorage::ReadOverflowString(ColumnSegment &segment, V
|
|
278
278
|
|
279
279
|
auto &block_manager = segment.GetBlockManager();
|
280
280
|
auto &buffer_manager = block_manager.buffer_manager;
|
281
|
-
auto &state =
|
281
|
+
auto &state = segment.GetSegmentState()->Cast<UncompressedStringSegmentState>();
|
282
282
|
if (block < MAXIMUM_BLOCK) {
|
283
283
|
// read the overflow string from disk
|
284
284
|
// pin the initial handle and read the length
|
@@ -325,7 +325,7 @@ string_t UncompressedStringStorage::ReadOverflowString(ColumnSegment &segment, V
|
|
325
325
|
buffer_manager.Allocate(MaxValue<idx_t>(Storage::BLOCK_SIZE, uncompressed_size));
|
326
326
|
auto decompressed_target_ptr = decompressed_target_handle.Ptr();
|
327
327
|
MiniZStream s;
|
328
|
-
s.Decompress((
|
328
|
+
s.Decompress(const_char_ptr_cast(decompression_ptr), compressed_size, char_ptr_cast(decompressed_target_ptr),
|
329
329
|
uncompressed_size);
|
330
330
|
|
331
331
|
auto final_buffer = decompressed_target_handle.Ptr();
|
@@ -345,14 +345,14 @@ string_t UncompressedStringStorage::ReadOverflowString(ColumnSegment &segment, V
|
|
345
345
|
|
346
346
|
string_t UncompressedStringStorage::ReadString(data_ptr_t target, int32_t offset, uint32_t string_length) {
|
347
347
|
auto ptr = target + offset;
|
348
|
-
auto str_ptr = (
|
348
|
+
auto str_ptr = char_ptr_cast(ptr);
|
349
349
|
return string_t(str_ptr, string_length);
|
350
350
|
}
|
351
351
|
|
352
352
|
string_t UncompressedStringStorage::ReadStringWithLength(data_ptr_t target, int32_t offset) {
|
353
353
|
auto ptr = target + offset;
|
354
354
|
auto str_length = Load<uint32_t>(ptr);
|
355
|
-
auto str_ptr = (
|
355
|
+
auto str_ptr = char_ptr_cast(ptr + sizeof(uint32_t));
|
356
356
|
return string_t(str_ptr, str_length);
|
357
357
|
}
|
358
358
|
|
@@ -403,7 +403,7 @@ string_t UncompressedStringStorage::FetchString(ColumnSegment &segment, StringDi
|
|
403
403
|
auto dict_end = baseptr + dict.end;
|
404
404
|
auto dict_pos = dict_end - location.offset;
|
405
405
|
|
406
|
-
auto str_ptr = (
|
406
|
+
auto str_ptr = char_ptr_cast(dict_pos);
|
407
407
|
return string_t(str_ptr, string_length);
|
408
408
|
}
|
409
409
|
}
|
@@ -188,13 +188,13 @@ unique_ptr<AnalyzeState> ValidityInitAnalyze(ColumnData &col_data, PhysicalType
|
|
188
188
|
}
|
189
189
|
|
190
190
|
bool ValidityAnalyze(AnalyzeState &state_p, Vector &input, idx_t count) {
|
191
|
-
auto &state = (
|
191
|
+
auto &state = state_p.Cast<ValidityAnalyzeState>();
|
192
192
|
state.count += count;
|
193
193
|
return true;
|
194
194
|
}
|
195
195
|
|
196
196
|
idx_t ValidityFinalAnalyze(AnalyzeState &state_p) {
|
197
|
-
auto &state = (
|
197
|
+
auto &state = state_p.Cast<ValidityAnalyzeState>();
|
198
198
|
return (state.count + 7) / 8;
|
199
199
|
}
|
200
200
|
|
@@ -222,12 +222,12 @@ void ValidityScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t s
|
|
222
222
|
auto start = segment.GetRelativeIndex(state.row_index);
|
223
223
|
|
224
224
|
static_assert(sizeof(validity_t) == sizeof(uint64_t), "validity_t should be 64-bit");
|
225
|
-
auto &scan_state =
|
225
|
+
auto &scan_state = state.scan_state->Cast<ValidityScanState>();
|
226
226
|
|
227
227
|
auto &result_mask = FlatVector::Validity(result);
|
228
228
|
auto buffer_ptr = scan_state.handle.Ptr() + segment.GetBlockOffset();
|
229
229
|
D_ASSERT(scan_state.block_id == segment.block->BlockId());
|
230
|
-
auto input_data =
|
230
|
+
auto input_data = reinterpret_cast<validity_t *>(buffer_ptr);
|
231
231
|
|
232
232
|
#ifdef DEBUG
|
233
233
|
// this method relies on all the bits we are going to write to being set to valid
|
@@ -345,7 +345,7 @@ void ValidityScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_cou
|
|
345
345
|
|
346
346
|
auto start = segment.GetRelativeIndex(state.row_index);
|
347
347
|
if (start % ValidityMask::BITS_PER_VALUE == 0) {
|
348
|
-
auto &scan_state =
|
348
|
+
auto &scan_state = state.scan_state->Cast<ValidityScanState>();
|
349
349
|
|
350
350
|
// aligned scan: no need to do anything fancy
|
351
351
|
// note: this is only an optimization which avoids having to do messy bitshifting in the common case
|
@@ -353,8 +353,8 @@ void ValidityScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_cou
|
|
353
353
|
auto &result_mask = FlatVector::Validity(result);
|
354
354
|
auto buffer_ptr = scan_state.handle.Ptr() + segment.GetBlockOffset();
|
355
355
|
D_ASSERT(scan_state.block_id == segment.block->BlockId());
|
356
|
-
auto input_data =
|
357
|
-
auto result_data =
|
356
|
+
auto input_data = reinterpret_cast<validity_t *>(buffer_ptr);
|
357
|
+
auto result_data = result_mask.GetData();
|
358
358
|
idx_t start_offset = start / ValidityMask::BITS_PER_VALUE;
|
359
359
|
idx_t entry_scan_count = (scan_count + ValidityMask::BITS_PER_VALUE - 1) / ValidityMask::BITS_PER_VALUE;
|
360
360
|
for (idx_t i = 0; i < entry_scan_count; i++) {
|
@@ -364,7 +364,7 @@ void ValidityScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_cou
|
|
364
364
|
}
|
365
365
|
if (!result_data) {
|
366
366
|
result_mask.Initialize(MaxValue<idx_t>(STANDARD_VECTOR_SIZE, scan_count));
|
367
|
-
result_data =
|
367
|
+
result_data = result_mask.GetData();
|
368
368
|
}
|
369
369
|
result_data[i] = input_entry;
|
370
370
|
}
|
@@ -382,7 +382,7 @@ void ValidityFetchRow(ColumnSegment &segment, ColumnFetchState &state, row_t row
|
|
382
382
|
auto &buffer_manager = BufferManager::GetBufferManager(segment.db);
|
383
383
|
auto handle = buffer_manager.Pin(segment.block);
|
384
384
|
auto dataptr = handle.Ptr() + segment.GetBlockOffset();
|
385
|
-
ValidityMask mask(
|
385
|
+
ValidityMask mask(reinterpret_cast<validity_t *>(dataptr));
|
386
386
|
auto &result_mask = FlatVector::Validity(result);
|
387
387
|
if (!mask.RowIsValidUnsafe(row_id)) {
|
388
388
|
result_mask.SetInvalid(result_idx);
|
@@ -421,7 +421,7 @@ idx_t ValidityAppend(CompressionAppendState &append_state, ColumnSegment &segmen
|
|
421
421
|
return append_count;
|
422
422
|
}
|
423
423
|
|
424
|
-
ValidityMask mask(
|
424
|
+
ValidityMask mask(reinterpret_cast<validity_t *>(append_state.handle.Ptr()));
|
425
425
|
for (idx_t i = 0; i < append_count; i++) {
|
426
426
|
auto idx = data.sel->get_index(offset + i);
|
427
427
|
if (!data.validity.RowIsValidUnsafe(idx)) {
|
@@ -450,7 +450,7 @@ void ValidityRevertAppend(ColumnSegment &segment, idx_t start_row) {
|
|
450
450
|
idx_t byte_pos = start_bit / 8;
|
451
451
|
idx_t bit_start = byte_pos * 8;
|
452
452
|
idx_t bit_end = (byte_pos + 1) * 8;
|
453
|
-
ValidityMask mask(
|
453
|
+
ValidityMask mask(reinterpret_cast<validity_t *>(handle.Ptr() + byte_pos));
|
454
454
|
for (idx_t i = start_bit; i < bit_end; i++) {
|
455
455
|
mask.SetValid(i - bit_start);
|
456
456
|
}
|
@@ -302,7 +302,7 @@ static void VerifyCheckConstraint(ClientContext &context, TableCatalogEntry &tab
|
|
302
302
|
UnifiedVectorFormat vdata;
|
303
303
|
result.ToUnifiedFormat(chunk.size(), vdata);
|
304
304
|
|
305
|
-
auto dataptr = (
|
305
|
+
auto dataptr = UnifiedVectorFormat::GetData<int32_t>(vdata);
|
306
306
|
for (idx_t i = 0; i < chunk.size(); i++) {
|
307
307
|
auto idx = vdata.sel->get_index(i);
|
308
308
|
if (vdata.validity.RowIsValid(idx) && dataptr[idx] == 0) {
|
@@ -834,7 +834,7 @@ void DataTable::RevertAppend(idx_t start_row, idx_t count) {
|
|
834
834
|
if (!info->indexes.Empty()) {
|
835
835
|
idx_t current_row_base = start_row;
|
836
836
|
row_t row_data[STANDARD_VECTOR_SIZE];
|
837
|
-
Vector row_identifiers(LogicalType::ROW_TYPE, (
|
837
|
+
Vector row_identifiers(LogicalType::ROW_TYPE, data_ptr_cast(row_data));
|
838
838
|
ScanTableSegment(start_row, count, [&](DataChunk &chunk) {
|
839
839
|
for (idx_t i = 0; i < chunk.size(); i++) {
|
840
840
|
row_data[i] = current_row_base + i;
|
@@ -29,6 +29,7 @@ LocalTableStorage::LocalTableStorage(DataTable &table)
|
|
29
29
|
if (art.constraint_type != IndexConstraintType::NONE) {
|
30
30
|
// unique index: create a local ART index that maintains the same unique constraint
|
31
31
|
vector<unique_ptr<Expression>> unbound_expressions;
|
32
|
+
unbound_expressions.reserve(art.unbound_expressions.size());
|
32
33
|
for (auto &expr : art.unbound_expressions) {
|
33
34
|
unbound_expressions.push_back(expr->Copy());
|
34
35
|
}
|
@@ -252,7 +253,7 @@ shared_ptr<LocalTableStorage> LocalTableManager::MoveEntry(DataTable &table) {
|
|
252
253
|
return nullptr;
|
253
254
|
}
|
254
255
|
auto storage_entry = std::move(entry->second);
|
255
|
-
table_storage.erase(
|
256
|
+
table_storage.erase(entry);
|
256
257
|
return storage_entry;
|
257
258
|
}
|
258
259
|
|
@@ -16,7 +16,7 @@ DataFileType MagicBytes::CheckMagicBytes(FileSystem *fs_p, const string &path) {
|
|
16
16
|
char buffer[MAGIC_BYTES_READ_SIZE];
|
17
17
|
|
18
18
|
handle->Read(buffer, MAGIC_BYTES_READ_SIZE);
|
19
|
-
if (memcmp(buffer, "SQLite format 3\0
|
19
|
+
if (memcmp(buffer, "SQLite format 3\0", 16) == 0) {
|
20
20
|
return DataFileType::SQLITE_FILE;
|
21
21
|
}
|
22
22
|
if (memcmp(buffer, "PAR1", 4) == 0) {
|
@@ -19,7 +19,7 @@ namespace duckdb {
|
|
19
19
|
const char MainHeader::MAGIC_BYTES[] = "DUCK";
|
20
20
|
|
21
21
|
void MainHeader::Serialize(Serializer &ser) {
|
22
|
-
ser.WriteData((
|
22
|
+
ser.WriteData(const_data_ptr_cast(MAGIC_BYTES), MAGIC_BYTE_SIZE);
|
23
23
|
ser.Write<uint64_t>(version_number);
|
24
24
|
FieldWriter writer(ser);
|
25
25
|
for (idx_t i = 0; i < FLAG_COUNT; i++) {
|
@@ -170,7 +170,7 @@ void SingleFileBlockManager::CreateNewDatabase() {
|
|
170
170
|
h2.free_list = INVALID_BLOCK;
|
171
171
|
h2.block_count = 0;
|
172
172
|
SerializeHeaderStructure<DatabaseHeader>(h2, header_buffer.buffer);
|
173
|
-
ChecksumAndWrite(header_buffer, Storage::FILE_HEADER_SIZE *
|
173
|
+
ChecksumAndWrite(header_buffer, Storage::FILE_HEADER_SIZE * 2ULL);
|
174
174
|
// ensure that writing to disk is completed before returning
|
175
175
|
handle->Sync();
|
176
176
|
// we start with h2 as active_header, this way our initial write will be in h1
|
@@ -197,7 +197,7 @@ void SingleFileBlockManager::LoadExistingDatabase() {
|
|
197
197
|
DatabaseHeader h1, h2;
|
198
198
|
ReadAndChecksum(header_buffer, Storage::FILE_HEADER_SIZE);
|
199
199
|
h1 = DeserializeHeaderStructure<DatabaseHeader>(header_buffer.buffer);
|
200
|
-
ReadAndChecksum(header_buffer, Storage::FILE_HEADER_SIZE *
|
200
|
+
ReadAndChecksum(header_buffer, Storage::FILE_HEADER_SIZE * 2ULL);
|
201
201
|
h2 = DeserializeHeaderStructure<DatabaseHeader>(header_buffer.buffer);
|
202
202
|
// check the header with the highest iteration count
|
203
203
|
if (h1.iteration > h2.iteration) {
|
@@ -751,7 +751,7 @@ void StandardBufferManager::FreeReservedMemory(idx_t size) {
|
|
751
751
|
// Buffer Allocator
|
752
752
|
//===--------------------------------------------------------------------===//
|
753
753
|
data_ptr_t StandardBufferManager::BufferAllocatorAllocate(PrivateAllocatorData *private_data, idx_t size) {
|
754
|
-
auto &data = (
|
754
|
+
auto &data = private_data->Cast<BufferAllocatorData>();
|
755
755
|
auto reservation = data.manager.EvictBlocksOrThrow(size, nullptr, "failed to allocate data of size %s%s",
|
756
756
|
StringUtil::BytesToHumanReadableString(size));
|
757
757
|
// We rely on manual tracking of this one. :(
|
@@ -760,7 +760,7 @@ data_ptr_t StandardBufferManager::BufferAllocatorAllocate(PrivateAllocatorData *
|
|
760
760
|
}
|
761
761
|
|
762
762
|
void StandardBufferManager::BufferAllocatorFree(PrivateAllocatorData *private_data, data_ptr_t pointer, idx_t size) {
|
763
|
-
auto &data = (
|
763
|
+
auto &data = private_data->Cast<BufferAllocatorData>();
|
764
764
|
BufferPoolReservation r(data.manager.GetBufferPool());
|
765
765
|
r.size = size;
|
766
766
|
r.Resize(0);
|
@@ -772,7 +772,7 @@ data_ptr_t StandardBufferManager::BufferAllocatorRealloc(PrivateAllocatorData *p
|
|
772
772
|
if (old_size == size) {
|
773
773
|
return pointer;
|
774
774
|
}
|
775
|
-
auto &data = (
|
775
|
+
auto &data = private_data->Cast<BufferAllocatorData>();
|
776
776
|
BufferPoolReservation r(data.manager.GetBufferPool());
|
777
777
|
r.size = old_size;
|
778
778
|
r.Resize(size);
|
@@ -90,7 +90,7 @@ void ListStats::Verify(const BaseStatistics &stats, Vector &vector, const Select
|
|
90
90
|
UnifiedVectorFormat vdata;
|
91
91
|
vector.ToUnifiedFormat(count, vdata);
|
92
92
|
|
93
|
-
auto list_data = (
|
93
|
+
auto list_data = UnifiedVectorFormat::GetData<list_entry_t>(vdata);
|
94
94
|
idx_t total_list_count = 0;
|
95
95
|
for (idx_t i = 0; i < count; i++) {
|
96
96
|
auto idx = sel.get_index(i);
|
@@ -525,7 +525,7 @@ void NumericStats::TemplatedVerify(const BaseStatistics &stats, Vector &vector,
|
|
525
525
|
UnifiedVectorFormat vdata;
|
526
526
|
vector.ToUnifiedFormat(count, vdata);
|
527
527
|
|
528
|
-
auto data = (
|
528
|
+
auto data = UnifiedVectorFormat::GetData<T>(vdata);
|
529
529
|
auto min_value = NumericStats::MinOrNull(stats);
|
530
530
|
auto max_value = NumericStats::MaxOrNull(stats);
|
531
531
|
for (idx_t i = 0; i < count; i++) {
|