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
@@ -6,6 +6,7 @@
|
|
6
6
|
#include "duckdb/planner/expression_iterator.hpp"
|
7
7
|
#include "duckdb/storage/statistics/base_statistics.hpp"
|
8
8
|
#include "duckdb/planner/expression/list.hpp"
|
9
|
+
#include "duckdb/parser/expression_util.hpp"
|
9
10
|
|
10
11
|
namespace duckdb {
|
11
12
|
|
@@ -165,4 +166,18 @@ unique_ptr<Expression> Expression::Deserialize(Deserializer &source, PlanDeseria
|
|
165
166
|
return result;
|
166
167
|
}
|
167
168
|
|
169
|
+
bool Expression::Equals(const unique_ptr<Expression> &left, const unique_ptr<Expression> &right) {
|
170
|
+
if (left.get() == right.get()) {
|
171
|
+
return true;
|
172
|
+
}
|
173
|
+
if (!left || !right) {
|
174
|
+
return false;
|
175
|
+
}
|
176
|
+
return left->Equals(*right);
|
177
|
+
}
|
178
|
+
|
179
|
+
bool Expression::ListEquals(const vector<unique_ptr<Expression>> &left, const vector<unique_ptr<Expression>> &right) {
|
180
|
+
return ExpressionUtil::ListEquals(left, right);
|
181
|
+
}
|
182
|
+
|
168
183
|
} // namespace duckdb
|
@@ -62,8 +62,8 @@ idx_t BaseSelectBinder::TryBindGroup(ParsedExpression &expr, idx_t depth) {
|
|
62
62
|
}
|
63
63
|
#ifdef DEBUG
|
64
64
|
for (auto entry : info.map) {
|
65
|
-
D_ASSERT(!entry.first.get().Equals(
|
66
|
-
D_ASSERT(!expr.Equals(
|
65
|
+
D_ASSERT(!entry.first.get().Equals(expr));
|
66
|
+
D_ASSERT(!expr.Equals(entry.first.get()));
|
67
67
|
}
|
68
68
|
#endif
|
69
69
|
return DConstants::INVALID_INDEX;
|
@@ -230,12 +230,12 @@ void ExpressionIterator::EnumerateQueryNodeChildren(BoundQueryNode &node,
|
|
230
230
|
for (idx_t i = 0; i < node.modifiers.size(); i++) {
|
231
231
|
switch (node.modifiers[i]->type) {
|
232
232
|
case ResultModifierType::DISTINCT_MODIFIER:
|
233
|
-
for (auto &expr :
|
233
|
+
for (auto &expr : node.modifiers[i]->Cast<BoundDistinctModifier>().target_distincts) {
|
234
234
|
EnumerateExpression(expr, callback);
|
235
235
|
}
|
236
236
|
break;
|
237
237
|
case ResultModifierType::ORDER_MODIFIER:
|
238
|
-
for (auto &order :
|
238
|
+
for (auto &order : node.modifiers[i]->Cast<BoundOrderModifier>().orders) {
|
239
239
|
EnumerateExpression(order.expression, callback);
|
240
240
|
}
|
241
241
|
break;
|
@@ -35,7 +35,7 @@ bool ConjunctionOrFilter::Equals(const TableFilter &other_p) const {
|
|
35
35
|
if (!ConjunctionFilter::Equals(other_p)) {
|
36
36
|
return false;
|
37
37
|
}
|
38
|
-
auto &other = (
|
38
|
+
auto &other = other_p.Cast<ConjunctionOrFilter>();
|
39
39
|
if (other.child_filters.size() != child_filters.size()) {
|
40
40
|
return false;
|
41
41
|
}
|
@@ -90,7 +90,7 @@ bool ConjunctionAndFilter::Equals(const TableFilter &other_p) const {
|
|
90
90
|
if (!ConjunctionFilter::Equals(other_p)) {
|
91
91
|
return false;
|
92
92
|
}
|
93
|
-
auto &other = (
|
93
|
+
auto &other = other_p.Cast<ConjunctionAndFilter>();
|
94
94
|
if (other.child_filters.size() != child_filters.size()) {
|
95
95
|
return false;
|
96
96
|
}
|
@@ -39,7 +39,7 @@ bool ConstantFilter::Equals(const TableFilter &other_p) const {
|
|
39
39
|
if (!TableFilter::Equals(other_p)) {
|
40
40
|
return false;
|
41
41
|
}
|
42
|
-
auto &other = (
|
42
|
+
auto &other = other_p.Cast<ConstantFilter>();
|
43
43
|
return other.comparison_type == comparison_type && other.constant == constant;
|
44
44
|
}
|
45
45
|
|
@@ -109,13 +109,12 @@ void LogicalOperator::Verify(ClientContext &context) {
|
|
109
109
|
// copy should be identical to original
|
110
110
|
D_ASSERT(expressions[expr_idx]->ToString() == copy->ToString());
|
111
111
|
D_ASSERT(original_hash == copy_hash);
|
112
|
-
D_ASSERT(Expression::Equals(expressions[expr_idx]
|
112
|
+
D_ASSERT(Expression::Equals(expressions[expr_idx], copy));
|
113
113
|
|
114
|
-
D_ASSERT(!Expression::Equals(expressions[expr_idx].get(), nullptr));
|
115
114
|
for (idx_t other_idx = 0; other_idx < expr_idx; other_idx++) {
|
116
115
|
// comparison with other expressions
|
117
116
|
auto other_hash = expressions[other_idx]->Hash();
|
118
|
-
bool expr_equal = Expression::Equals(expressions[expr_idx]
|
117
|
+
bool expr_equal = Expression::Equals(expressions[expr_idx], expressions[other_idx]);
|
119
118
|
if (original_hash != other_hash) {
|
120
119
|
// if the hashes are not equal the expressions should not be equal either
|
121
120
|
D_ASSERT(!expr_equal);
|
@@ -144,7 +143,7 @@ void LogicalOperator::Verify(ClientContext &context) {
|
|
144
143
|
auto deserialized_expression = Expression::Deserialize(deserializer, state);
|
145
144
|
// FIXME: expressions might not be equal yet because of statistics propagation
|
146
145
|
continue;
|
147
|
-
D_ASSERT(Expression::Equals(expressions[expr_idx]
|
146
|
+
D_ASSERT(Expression::Equals(expressions[expr_idx], deserialized_expression));
|
148
147
|
D_ASSERT(expressions[expr_idx]->Hash() == deserialized_expression->Hash());
|
149
148
|
}
|
150
149
|
D_ASSERT(!ToString().empty());
|
@@ -97,7 +97,7 @@ void LogicalOperatorVisitor::EnumerateExpressions(LogicalOperator &op,
|
|
97
97
|
break;
|
98
98
|
}
|
99
99
|
case LogicalOperatorType::LOGICAL_LIMIT_PERCENT: {
|
100
|
-
auto &limit = (
|
100
|
+
auto &limit = op.Cast<LogicalLimitPercent>();
|
101
101
|
if (limit.limit) {
|
102
102
|
callback(&limit.limit);
|
103
103
|
}
|
@@ -14,7 +14,7 @@ void TableFilterSet::PushFilter(idx_t column_index, unique_ptr<TableFilter> filt
|
|
14
14
|
} else {
|
15
15
|
// there is already a filter: AND it together
|
16
16
|
if (entry->second->filter_type == TableFilterType::CONJUNCTION_AND) {
|
17
|
-
auto &and_filter =
|
17
|
+
auto &and_filter = entry->second->Cast<ConjunctionAndFilter>();
|
18
18
|
and_filter.child_filters.push_back(std::move(filter));
|
19
19
|
} else {
|
20
20
|
auto and_filter = make_uniq<ConjunctionAndFilter>();
|
@@ -31,7 +31,7 @@ struct ArenaAllocatorData : public PrivateAllocatorData {
|
|
31
31
|
};
|
32
32
|
|
33
33
|
static data_ptr_t ArenaAllocatorAllocate(PrivateAllocatorData *private_data, idx_t size) {
|
34
|
-
auto &allocator_data = (
|
34
|
+
auto &allocator_data = private_data->Cast<ArenaAllocatorData>();
|
35
35
|
return allocator_data.allocator.Allocate(size);
|
36
36
|
}
|
37
37
|
|
@@ -41,7 +41,7 @@ static void ArenaAllocatorFree(PrivateAllocatorData *, data_ptr_t, idx_t) {
|
|
41
41
|
|
42
42
|
static data_ptr_t ArenaAllocateReallocate(PrivateAllocatorData *private_data, data_ptr_t pointer, idx_t old_size,
|
43
43
|
idx_t size) {
|
44
|
-
auto &allocator_data = (
|
44
|
+
auto &allocator_data = private_data->Cast<ArenaAllocatorData>();
|
45
45
|
return allocator_data.allocator.Reallocate(pointer, old_size, size);
|
46
46
|
}
|
47
47
|
//===--------------------------------------------------------------------===//
|
@@ -49,7 +49,7 @@ unique_ptr<Block> AllocateBlock(BlockManager &block_manager, unique_ptr<FileBuff
|
|
49
49
|
// re-usable buffer: re-use it
|
50
50
|
if (reusable_buffer->type == FileBufferType::BLOCK) {
|
51
51
|
// we can reuse the buffer entirely
|
52
|
-
auto &block =
|
52
|
+
auto &block = reinterpret_cast<Block &>(*reusable_buffer);
|
53
53
|
block.id = block_id;
|
54
54
|
return unique_ptr_cast<FileBuffer, Block>(std::move(reusable_buffer));
|
55
55
|
}
|
@@ -33,8 +33,8 @@ void WriteOverflowStringsToDisk::WriteString(string_t string, block_id_t &result
|
|
33
33
|
size_t compressed_size = 0;
|
34
34
|
compressed_size = s.MaxCompressedLength(uncompressed_size);
|
35
35
|
auto compressed_buf = make_unsafe_uniq_array<data_t>(compressed_size);
|
36
|
-
s.Compress(
|
37
|
-
string_t compressed_string((
|
36
|
+
s.Compress(string.GetData(), uncompressed_size, char_ptr_cast(compressed_buf.get()), &compressed_size);
|
37
|
+
string_t compressed_string(const_char_ptr_cast(compressed_buf.get()), compressed_size);
|
38
38
|
|
39
39
|
// store sizes
|
40
40
|
auto data_ptr = handle.Ptr();
|
@@ -41,7 +41,7 @@ SingleFileCheckpointWriter::SingleFileCheckpointWriter(AttachedDatabase &db, Blo
|
|
41
41
|
}
|
42
42
|
|
43
43
|
BlockManager &SingleFileCheckpointWriter::GetBlockManager() {
|
44
|
-
auto &storage_manager =
|
44
|
+
auto &storage_manager = db.GetStorageManager().Cast<SingleFileStorageManager>();
|
45
45
|
return *storage_manager.block_manager;
|
46
46
|
}
|
47
47
|
|
@@ -55,7 +55,7 @@ unique_ptr<TableDataWriter> SingleFileCheckpointWriter::GetTableDataWriter(Table
|
|
55
55
|
|
56
56
|
void SingleFileCheckpointWriter::CreateCheckpoint() {
|
57
57
|
auto &config = DBConfig::Get(db);
|
58
|
-
auto &storage_manager =
|
58
|
+
auto &storage_manager = db.GetStorageManager().Cast<SingleFileStorageManager>();
|
59
59
|
if (storage_manager.InMemory()) {
|
60
60
|
return;
|
61
61
|
}
|
@@ -73,7 +73,7 @@ void SingleFileCheckpointWriter::CreateCheckpoint() {
|
|
73
73
|
|
74
74
|
vector<reference<SchemaCatalogEntry>> schemas;
|
75
75
|
// we scan the set of committed schemas
|
76
|
-
auto &catalog =
|
76
|
+
auto &catalog = Catalog::GetCatalog(db).Cast<DuckCatalog>();
|
77
77
|
catalog.ScanSchemas([&](SchemaCatalogEntry &entry) { schemas.push_back(entry); });
|
78
78
|
// write the actual data into the database
|
79
79
|
// write the amount of schemas
|
@@ -68,7 +68,7 @@ static bitpacking_metadata_encoded_t EncodeMeta(bitpacking_metadata_t metadata)
|
|
68
68
|
}
|
69
69
|
static bitpacking_metadata_t DecodeMeta(bitpacking_metadata_encoded_t *metadata_encoded) {
|
70
70
|
bitpacking_metadata_t metadata;
|
71
|
-
metadata.mode = Load<BitpackingMode>((
|
71
|
+
metadata.mode = Load<BitpackingMode>(data_ptr_cast(metadata_encoded) + 3);
|
72
72
|
metadata.offset = *metadata_encoded & 0x00FFFFFF;
|
73
73
|
return metadata;
|
74
74
|
}
|
@@ -324,7 +324,7 @@ bool BitpackingAnalyze(AnalyzeState &state, Vector &input, idx_t count) {
|
|
324
324
|
UnifiedVectorFormat vdata;
|
325
325
|
input.ToUnifiedFormat(count, vdata);
|
326
326
|
|
327
|
-
auto data = (
|
327
|
+
auto data = UnifiedVectorFormat::GetData<T>(vdata);
|
328
328
|
for (idx_t i = 0; i < count; i++) {
|
329
329
|
auto idx = vdata.sel->get_index(i);
|
330
330
|
if (!analyze_state.state.template Update<EmptyBitpackingWriter>(data[idx], vdata.validity.RowIsValid(idx))) {
|
@@ -482,7 +482,7 @@ public:
|
|
482
482
|
}
|
483
483
|
|
484
484
|
void Append(UnifiedVectorFormat &vdata, idx_t count) {
|
485
|
-
auto data = (
|
485
|
+
auto data = UnifiedVectorFormat::GetData<T>(vdata);
|
486
486
|
|
487
487
|
for (idx_t i = 0; i < count; i++) {
|
488
488
|
auto idx = vdata.sel->get_index(i);
|
@@ -690,7 +690,7 @@ public:
|
|
690
690
|
idx_t decompress_offset = current_group_offset - extra_count;
|
691
691
|
bool skip_sign_extension = true;
|
692
692
|
|
693
|
-
BitpackingPrimitives::UnPackBuffer<T>((
|
693
|
+
BitpackingPrimitives::UnPackBuffer<T>(data_ptr_cast(decompression_buffer),
|
694
694
|
current_group_ptr + decompress_offset, decompress_count,
|
695
695
|
current_width, skip_sign_extension);
|
696
696
|
|
@@ -795,11 +795,11 @@ void BitpackingScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t
|
|
795
795
|
|
796
796
|
if (to_scan == BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE && offset_in_compression_group == 0) {
|
797
797
|
// Decompress directly into result vector
|
798
|
-
BitpackingPrimitives::UnPackBlock<T>((
|
798
|
+
BitpackingPrimitives::UnPackBlock<T>(data_ptr_cast(current_result_ptr), decompression_group_start_pointer,
|
799
799
|
scan_state.current_width, skip_sign_extend);
|
800
800
|
} else {
|
801
801
|
// Decompress compression algorithm to buffer
|
802
|
-
BitpackingPrimitives::UnPackBlock<T>((
|
802
|
+
BitpackingPrimitives::UnPackBlock<T>(data_ptr_cast(scan_state.decompression_buffer),
|
803
803
|
decompression_group_start_pointer, scan_state.current_width,
|
804
804
|
skip_sign_extend);
|
805
805
|
|
@@ -860,8 +860,8 @@ void BitpackingFetchRow(ColumnSegment &segment, ColumnFetchState &state, row_t r
|
|
860
860
|
D_ASSERT(scan_state.current_group.mode == BitpackingMode::FOR ||
|
861
861
|
scan_state.current_group.mode == BitpackingMode::DELTA_FOR);
|
862
862
|
|
863
|
-
BitpackingPrimitives::UnPackBlock<T>((
|
864
|
-
scan_state.current_width, skip_sign_extend);
|
863
|
+
BitpackingPrimitives::UnPackBlock<T>(data_ptr_cast(scan_state.decompression_buffer),
|
864
|
+
decompression_group_start_pointer, scan_state.current_width, skip_sign_extend);
|
865
865
|
|
866
866
|
*current_result_ptr = *(T *)(scan_state.decompression_buffer + offset_in_compression_group);
|
867
867
|
*current_result_ptr += scan_state.current_frame_of_reference;
|
@@ -18,7 +18,7 @@ public:
|
|
18
18
|
bool UpdateState(Vector &scan_vector, idx_t count) {
|
19
19
|
UnifiedVectorFormat vdata;
|
20
20
|
scan_vector.ToUnifiedFormat(count, vdata);
|
21
|
-
auto data = (
|
21
|
+
auto data = UnifiedVectorFormat::GetData<string_t>(vdata);
|
22
22
|
Verify();
|
23
23
|
|
24
24
|
for (idx_t i = 0; i < count; i++) {
|
@@ -274,7 +274,7 @@ public:
|
|
274
274
|
|
275
275
|
// calculate ptr and offsets
|
276
276
|
auto base_ptr = handle.Ptr();
|
277
|
-
auto header_ptr =
|
277
|
+
auto header_ptr = reinterpret_cast<dictionary_compression_header_t *>(base_ptr);
|
278
278
|
auto compressed_selection_buffer_offset = DictionaryCompressionStorage::DICTIONARY_HEADER_SIZE;
|
279
279
|
auto index_buffer_offset = compressed_selection_buffer_offset + compressed_selection_buffer_size;
|
280
280
|
|
@@ -287,9 +287,9 @@ public:
|
|
287
287
|
memcpy(base_ptr + index_buffer_offset, index_buffer.data(), index_buffer_size);
|
288
288
|
|
289
289
|
// Store sizes and offsets in segment header
|
290
|
-
Store<uint32_t>(index_buffer_offset, (
|
291
|
-
Store<uint32_t>(index_buffer.size(), (
|
292
|
-
Store<uint32_t>((uint32_t)current_width, (
|
290
|
+
Store<uint32_t>(index_buffer_offset, data_ptr_cast(&header_ptr->index_buffer_offset));
|
291
|
+
Store<uint32_t>(index_buffer.size(), data_ptr_cast(&header_ptr->index_buffer_count));
|
292
|
+
Store<uint32_t>((uint32_t)current_width, data_ptr_cast(&header_ptr->bitpacking_width));
|
293
293
|
|
294
294
|
D_ASSERT(current_width == BitpackingPrimitives::MinimumBitWidth(index_buffer.size() - 1));
|
295
295
|
D_ASSERT(DictionaryCompressionStorage::HasEnoughSpace(current_segment->count, index_buffer.size(),
|
@@ -391,12 +391,12 @@ unique_ptr<AnalyzeState> DictionaryCompressionStorage::StringInitAnalyze(ColumnD
|
|
391
391
|
}
|
392
392
|
|
393
393
|
bool DictionaryCompressionStorage::StringAnalyze(AnalyzeState &state_p, Vector &input, idx_t count) {
|
394
|
-
auto &state = (
|
394
|
+
auto &state = state_p.Cast<DictionaryCompressionAnalyzeState>();
|
395
395
|
return state.analyze_state->UpdateState(input, count);
|
396
396
|
}
|
397
397
|
|
398
398
|
idx_t DictionaryCompressionStorage::StringFinalAnalyze(AnalyzeState &state_p) {
|
399
|
-
auto &analyze_state = (
|
399
|
+
auto &analyze_state = state_p.Cast<DictionaryCompressionAnalyzeState>();
|
400
400
|
auto &state = *analyze_state.analyze_state;
|
401
401
|
|
402
402
|
auto width = BitpackingPrimitives::MinimumBitWidth(state.current_unique_count + 1);
|
@@ -415,12 +415,12 @@ unique_ptr<CompressionState> DictionaryCompressionStorage::InitCompression(Colum
|
|
415
415
|
}
|
416
416
|
|
417
417
|
void DictionaryCompressionStorage::Compress(CompressionState &state_p, Vector &scan_vector, idx_t count) {
|
418
|
-
auto &state = (
|
418
|
+
auto &state = state_p.Cast<DictionaryCompressionCompressState>();
|
419
419
|
state.UpdateState(scan_vector, count);
|
420
420
|
}
|
421
421
|
|
422
422
|
void DictionaryCompressionStorage::FinalizeCompress(CompressionState &state_p) {
|
423
|
-
auto &state = (
|
423
|
+
auto &state = state_p.Cast<DictionaryCompressionCompressState>();
|
424
424
|
state.Flush(true);
|
425
425
|
}
|
426
426
|
|
@@ -444,12 +444,12 @@ unique_ptr<SegmentScanState> DictionaryCompressionStorage::StringInitScan(Column
|
|
444
444
|
|
445
445
|
// Load header values
|
446
446
|
auto dict = DictionaryCompressionStorage::GetDictionary(segment, state->handle);
|
447
|
-
auto header_ptr =
|
448
|
-
auto index_buffer_offset = Load<uint32_t>((
|
449
|
-
auto index_buffer_count = Load<uint32_t>((
|
450
|
-
state->current_width = (bitpacking_width_t)(Load<uint32_t>((
|
447
|
+
auto header_ptr = reinterpret_cast<dictionary_compression_header_t *>(baseptr);
|
448
|
+
auto index_buffer_offset = Load<uint32_t>(data_ptr_cast(&header_ptr->index_buffer_offset));
|
449
|
+
auto index_buffer_count = Load<uint32_t>(data_ptr_cast(&header_ptr->index_buffer_count));
|
450
|
+
state->current_width = (bitpacking_width_t)(Load<uint32_t>(data_ptr_cast(&header_ptr->bitpacking_width)));
|
451
451
|
|
452
|
-
auto index_buffer_ptr =
|
452
|
+
auto index_buffer_ptr = reinterpret_cast<uint32_t *>(baseptr + index_buffer_offset);
|
453
453
|
|
454
454
|
state->dictionary = make_buffer<Vector>(segment.type, index_buffer_count);
|
455
455
|
auto dict_child_data = FlatVector::GetData<string_t>(*(state->dictionary));
|
@@ -470,17 +470,17 @@ template <bool ALLOW_DICT_VECTORS>
|
|
470
470
|
void DictionaryCompressionStorage::StringScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count,
|
471
471
|
Vector &result, idx_t result_offset) {
|
472
472
|
// clear any previously locked buffers and get the primary buffer handle
|
473
|
-
auto &scan_state =
|
473
|
+
auto &scan_state = state.scan_state->Cast<CompressedStringScanState>();
|
474
474
|
auto start = segment.GetRelativeIndex(state.row_index);
|
475
475
|
|
476
476
|
auto baseptr = scan_state.handle.Ptr() + segment.GetBlockOffset();
|
477
477
|
auto dict = DictionaryCompressionStorage::GetDictionary(segment, scan_state.handle);
|
478
478
|
|
479
|
-
auto header_ptr =
|
480
|
-
auto index_buffer_offset = Load<uint32_t>((
|
481
|
-
auto index_buffer_ptr =
|
479
|
+
auto header_ptr = reinterpret_cast<dictionary_compression_header_t *>(baseptr);
|
480
|
+
auto index_buffer_offset = Load<uint32_t>(data_ptr_cast(&header_ptr->index_buffer_offset));
|
481
|
+
auto index_buffer_ptr = reinterpret_cast<uint32_t *>(baseptr + index_buffer_offset);
|
482
482
|
|
483
|
-
auto base_data = (
|
483
|
+
auto base_data = data_ptr_cast(baseptr + DICTIONARY_HEADER_SIZE);
|
484
484
|
auto result_data = FlatVector::GetData<string_t>(result);
|
485
485
|
|
486
486
|
if (!ALLOW_DICT_VECTORS || scan_count != STANDARD_VECTOR_SIZE ||
|
@@ -502,7 +502,7 @@ void DictionaryCompressionStorage::StringScanPartial(ColumnSegment &segment, Col
|
|
502
502
|
data_ptr_t src = &base_data[((start - start_offset) * scan_state.current_width) / 8];
|
503
503
|
sel_t *sel_vec_ptr = scan_state.sel_vec->data();
|
504
504
|
|
505
|
-
BitpackingPrimitives::UnPackBuffer<sel_t>((
|
505
|
+
BitpackingPrimitives::UnPackBuffer<sel_t>(data_ptr_cast(sel_vec_ptr), src, decompress_count,
|
506
506
|
scan_state.current_width);
|
507
507
|
|
508
508
|
for (idx_t i = 0; i < scan_count; i++) {
|
@@ -527,8 +527,8 @@ void DictionaryCompressionStorage::StringScanPartial(ColumnSegment &segment, Col
|
|
527
527
|
}
|
528
528
|
|
529
529
|
// Scanning 1024 values, emitting a dict vector
|
530
|
-
data_ptr_t dst = (
|
531
|
-
data_ptr_t src = (
|
530
|
+
data_ptr_t dst = data_ptr_cast(scan_state.sel_vec->data());
|
531
|
+
data_ptr_t src = data_ptr_cast(&base_data[(start * scan_state.current_width) / 8]);
|
532
532
|
|
533
533
|
BitpackingPrimitives::UnPackBuffer<sel_t>(dst, src, scan_count, scan_state.current_width);
|
534
534
|
|
@@ -551,12 +551,12 @@ void DictionaryCompressionStorage::StringFetchRow(ColumnSegment &segment, Column
|
|
551
551
|
auto &handle = state.GetOrInsertHandle(segment);
|
552
552
|
|
553
553
|
auto baseptr = handle.Ptr() + segment.GetBlockOffset();
|
554
|
-
auto header_ptr =
|
554
|
+
auto header_ptr = reinterpret_cast<dictionary_compression_header_t *>(baseptr);
|
555
555
|
auto dict = DictionaryCompressionStorage::GetDictionary(segment, handle);
|
556
|
-
auto index_buffer_offset = Load<uint32_t>((
|
557
|
-
auto width = (bitpacking_width_t)
|
558
|
-
auto index_buffer_ptr =
|
559
|
-
auto base_data = (
|
556
|
+
auto index_buffer_offset = Load<uint32_t>(data_ptr_cast(&header_ptr->index_buffer_offset));
|
557
|
+
auto width = (bitpacking_width_t)Load<uint32_t>(data_ptr_cast(&header_ptr->bitpacking_width));
|
558
|
+
auto index_buffer_ptr = reinterpret_cast<uint32_t *>(baseptr + index_buffer_offset);
|
559
|
+
auto base_data = data_ptr_cast(baseptr + DICTIONARY_HEADER_SIZE);
|
560
560
|
auto result_data = FlatVector::GetData<string_t>(result);
|
561
561
|
|
562
562
|
// Handling non-bitpacking-group-aligned start values;
|
@@ -564,8 +564,8 @@ void DictionaryCompressionStorage::StringFetchRow(ColumnSegment &segment, Column
|
|
564
564
|
|
565
565
|
// Decompress part of selection buffer we need for this value.
|
566
566
|
sel_t decompression_buffer[BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE];
|
567
|
-
data_ptr_t src = (
|
568
|
-
BitpackingPrimitives::UnPackBuffer<sel_t>((
|
567
|
+
data_ptr_t src = data_ptr_cast(&base_data[((row_id - start_offset) * width) / 8]);
|
568
|
+
BitpackingPrimitives::UnPackBuffer<sel_t>(data_ptr_cast(decompression_buffer), src,
|
569
569
|
BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE, width);
|
570
570
|
|
571
571
|
auto selection_value = decompression_buffer[start_offset];
|
@@ -595,18 +595,18 @@ idx_t DictionaryCompressionStorage::RequiredSpace(idx_t current_count, idx_t ind
|
|
595
595
|
}
|
596
596
|
|
597
597
|
StringDictionaryContainer DictionaryCompressionStorage::GetDictionary(ColumnSegment &segment, BufferHandle &handle) {
|
598
|
-
auto header_ptr =
|
598
|
+
auto header_ptr = reinterpret_cast<dictionary_compression_header_t *>(handle.Ptr() + segment.GetBlockOffset());
|
599
599
|
StringDictionaryContainer container;
|
600
|
-
container.size = Load<uint32_t>((
|
601
|
-
container.end = Load<uint32_t>((
|
600
|
+
container.size = Load<uint32_t>(data_ptr_cast(&header_ptr->dict_size));
|
601
|
+
container.end = Load<uint32_t>(data_ptr_cast(&header_ptr->dict_end));
|
602
602
|
return container;
|
603
603
|
}
|
604
604
|
|
605
605
|
void DictionaryCompressionStorage::SetDictionary(ColumnSegment &segment, BufferHandle &handle,
|
606
606
|
StringDictionaryContainer container) {
|
607
|
-
auto header_ptr =
|
608
|
-
Store<uint32_t>(container.size, (
|
609
|
-
Store<uint32_t>(container.end, (
|
607
|
+
auto header_ptr = reinterpret_cast<dictionary_compression_header_t *>(handle.Ptr() + segment.GetBlockOffset());
|
608
|
+
Store<uint32_t>(container.size, data_ptr_cast(&header_ptr->dict_size));
|
609
|
+
Store<uint32_t>(container.end, data_ptr_cast(&header_ptr->dict_end));
|
610
610
|
}
|
611
611
|
|
612
612
|
string_t DictionaryCompressionStorage::FetchStringFromDict(ColumnSegment &segment, StringDictionaryContainer dict,
|
@@ -621,7 +621,7 @@ string_t DictionaryCompressionStorage::FetchStringFromDict(ColumnSegment &segmen
|
|
621
621
|
auto dict_end = baseptr + dict.end;
|
622
622
|
auto dict_pos = dict_end - dict_offset;
|
623
623
|
|
624
|
-
auto str_ptr = (
|
624
|
+
auto str_ptr = char_ptr_cast(dict_pos);
|
625
625
|
return string_t(str_ptr, string_len);
|
626
626
|
}
|
627
627
|
|
@@ -28,14 +28,14 @@ unique_ptr<AnalyzeState> FixedSizeInitAnalyze(ColumnData &col_data, PhysicalType
|
|
28
28
|
}
|
29
29
|
|
30
30
|
bool FixedSizeAnalyze(AnalyzeState &state_p, Vector &input, idx_t count) {
|
31
|
-
auto &state = (
|
31
|
+
auto &state = state_p.Cast<FixedSizeAnalyzeState>();
|
32
32
|
state.count += count;
|
33
33
|
return true;
|
34
34
|
}
|
35
35
|
|
36
36
|
template <class T>
|
37
37
|
idx_t FixedSizeFinalAnalyze(AnalyzeState &state_p) {
|
38
|
-
auto &state = (
|
38
|
+
auto &state = state_p.template Cast<FixedSizeAnalyzeState>();
|
39
39
|
return sizeof(T) * state.count;
|
40
40
|
}
|
41
41
|
|
@@ -64,7 +64,7 @@ void UncompressedCompressState::CreateEmptySegment(idx_t row_start) {
|
|
64
64
|
auto &type = checkpointer.GetType();
|
65
65
|
auto compressed_segment = ColumnSegment::CreateTransientSegment(db, type, row_start);
|
66
66
|
if (type.InternalType() == PhysicalType::VARCHAR) {
|
67
|
-
auto &state =
|
67
|
+
auto &state = compressed_segment->GetSegmentState()->Cast<UncompressedStringSegmentState>();
|
68
68
|
state.overflow_writer = make_uniq<WriteOverflowStringsToDisk>(checkpointer.GetColumnData().GetBlockManager());
|
69
69
|
}
|
70
70
|
current_segment = std::move(compressed_segment);
|
@@ -87,7 +87,7 @@ unique_ptr<CompressionState> UncompressedFunctions::InitCompression(ColumnDataCh
|
|
87
87
|
}
|
88
88
|
|
89
89
|
void UncompressedFunctions::Compress(CompressionState &state_p, Vector &data, idx_t count) {
|
90
|
-
auto &state = (
|
90
|
+
auto &state = state_p.Cast<UncompressedCompressState>();
|
91
91
|
UnifiedVectorFormat vdata;
|
92
92
|
data.ToUnifiedFormat(count, vdata);
|
93
93
|
|
@@ -110,7 +110,7 @@ void UncompressedFunctions::Compress(CompressionState &state_p, Vector &data, id
|
|
110
110
|
}
|
111
111
|
|
112
112
|
void UncompressedFunctions::FinalizeCompress(CompressionState &state_p) {
|
113
|
-
auto &state = (
|
113
|
+
auto &state = state_p.Cast<UncompressedCompressState>();
|
114
114
|
state.Finalize(state.current_segment->FinalizeAppend(state.append_state));
|
115
115
|
}
|
116
116
|
|
@@ -134,7 +134,7 @@ unique_ptr<SegmentScanState> FixedSizeInitScan(ColumnSegment &segment) {
|
|
134
134
|
template <class T>
|
135
135
|
void FixedSizeScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result,
|
136
136
|
idx_t result_offset) {
|
137
|
-
auto &scan_state =
|
137
|
+
auto &scan_state = state.scan_state->Cast<FixedSizeScanState>();
|
138
138
|
auto start = segment.GetRelativeIndex(state.row_index);
|
139
139
|
|
140
140
|
auto data = scan_state.handle.Ptr() + segment.GetBlockOffset();
|
@@ -147,7 +147,7 @@ void FixedSizeScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t
|
|
147
147
|
|
148
148
|
template <class T>
|
149
149
|
void FixedSizeScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result) {
|
150
|
-
auto &scan_state =
|
150
|
+
auto &scan_state = state.scan_state->template Cast<FixedSizeScanState>();
|
151
151
|
auto start = segment.GetRelativeIndex(state.row_index);
|
152
152
|
|
153
153
|
auto data = scan_state.handle.Ptr() + segment.GetBlockOffset();
|
@@ -185,8 +185,8 @@ struct StandardFixedSizeAppend {
|
|
185
185
|
template <class T>
|
186
186
|
static void Append(SegmentStatistics &stats, data_ptr_t target, idx_t target_offset, UnifiedVectorFormat &adata,
|
187
187
|
idx_t offset, idx_t count) {
|
188
|
-
auto sdata = (
|
189
|
-
auto tdata =
|
188
|
+
auto sdata = UnifiedVectorFormat::GetData<T>(adata);
|
189
|
+
auto tdata = reinterpret_cast<T *>(target);
|
190
190
|
if (!adata.validity.AllValid()) {
|
191
191
|
for (idx_t i = 0; i < count; i++) {
|
192
192
|
auto source_idx = adata.sel->get_index(offset + i);
|
@@ -216,8 +216,8 @@ struct ListFixedSizeAppend {
|
|
216
216
|
template <class T>
|
217
217
|
static void Append(SegmentStatistics &stats, data_ptr_t target, idx_t target_offset, UnifiedVectorFormat &adata,
|
218
218
|
idx_t offset, idx_t count) {
|
219
|
-
auto sdata = (
|
220
|
-
auto tdata =
|
219
|
+
auto sdata = UnifiedVectorFormat::GetData<uint64_t>(adata);
|
220
|
+
auto tdata = reinterpret_cast<uint64_t *>(target);
|
221
221
|
for (idx_t i = 0; i < count; i++) {
|
222
222
|
auto source_idx = adata.sel->get_index(offset + i);
|
223
223
|
auto target_idx = target_offset + i;
|