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
@@ -193,8 +193,8 @@ void ColumnWriter::CompressPage(BufferedSerializer &temp_writer, size_t &compres
|
|
193
193
|
case CompressionCodec::SNAPPY: {
|
194
194
|
compressed_size = duckdb_snappy::MaxCompressedLength(temp_writer.blob.size);
|
195
195
|
compressed_buf = duckdb::unique_ptr<data_t[]>(new data_t[compressed_size]);
|
196
|
-
duckdb_snappy::RawCompress((
|
197
|
-
(
|
196
|
+
duckdb_snappy::RawCompress(const_char_ptr_cast(temp_writer.blob.data.get()), temp_writer.blob.size,
|
197
|
+
char_ptr_cast(compressed_buf.get()), &compressed_size);
|
198
198
|
compressed_data = compressed_buf.get();
|
199
199
|
D_ASSERT(compressed_size <= duckdb_snappy::MaxCompressedLength(temp_writer.blob.size));
|
200
200
|
break;
|
@@ -203,8 +203,8 @@ void ColumnWriter::CompressPage(BufferedSerializer &temp_writer, size_t &compres
|
|
203
203
|
MiniZStream s;
|
204
204
|
compressed_size = s.MaxCompressedLength(temp_writer.blob.size);
|
205
205
|
compressed_buf = duckdb::unique_ptr<data_t[]>(new data_t[compressed_size]);
|
206
|
-
s.Compress((
|
207
|
-
&compressed_size);
|
206
|
+
s.Compress(const_char_ptr_cast(temp_writer.blob.data.get()), temp_writer.blob.size,
|
207
|
+
char_ptr_cast(compressed_buf.get()), &compressed_size);
|
208
208
|
compressed_data = compressed_buf.get();
|
209
209
|
break;
|
210
210
|
}
|
@@ -280,6 +280,18 @@ class ColumnWriterPageState {
|
|
280
280
|
public:
|
281
281
|
virtual ~ColumnWriterPageState() {
|
282
282
|
}
|
283
|
+
|
284
|
+
public:
|
285
|
+
template <class TARGET>
|
286
|
+
TARGET &Cast() {
|
287
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
288
|
+
return reinterpret_cast<TARGET &>(*this);
|
289
|
+
}
|
290
|
+
template <class TARGET>
|
291
|
+
const TARGET &Cast() const {
|
292
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
293
|
+
return reinterpret_cast<const TARGET &>(*this);
|
294
|
+
}
|
283
295
|
};
|
284
296
|
|
285
297
|
struct PageInformation {
|
@@ -412,7 +424,7 @@ void BasicColumnWriter::FlushPageState(Serializer &temp_writer, ColumnWriterPage
|
|
412
424
|
}
|
413
425
|
|
414
426
|
void BasicColumnWriter::Prepare(ColumnWriterState &state_p, ColumnWriterState *parent, Vector &vector, idx_t count) {
|
415
|
-
auto &state = (
|
427
|
+
auto &state = state_p.Cast<BasicColumnWriterState>();
|
416
428
|
auto &col_chunk = state.row_group.columns[state.col_idx];
|
417
429
|
|
418
430
|
idx_t start = 0;
|
@@ -448,7 +460,7 @@ duckdb_parquet::format::Encoding::type BasicColumnWriter::GetEncoding(BasicColum
|
|
448
460
|
}
|
449
461
|
|
450
462
|
void BasicColumnWriter::BeginWrite(ColumnWriterState &state_p) {
|
451
|
-
auto &state = (
|
463
|
+
auto &state = state_p.Cast<BasicColumnWriterState>();
|
452
464
|
|
453
465
|
// set up the page write info
|
454
466
|
state.stats_state = InitializeStatsState();
|
@@ -576,7 +588,7 @@ idx_t BasicColumnWriter::GetRowSize(Vector &vector, idx_t index, BasicColumnWrit
|
|
576
588
|
}
|
577
589
|
|
578
590
|
void BasicColumnWriter::Write(ColumnWriterState &state_p, Vector &vector, idx_t count) {
|
579
|
-
auto &state = (
|
591
|
+
auto &state = state_p.Cast<BasicColumnWriterState>();
|
580
592
|
|
581
593
|
idx_t remaining = count;
|
582
594
|
idx_t offset = 0;
|
@@ -640,7 +652,7 @@ void BasicColumnWriter::SetParquetStatistics(BasicColumnWriterState &state,
|
|
640
652
|
}
|
641
653
|
|
642
654
|
void BasicColumnWriter::FinalizeWrite(ColumnWriterState &state_p) {
|
643
|
-
auto &state = (
|
655
|
+
auto &state = state_p.Cast<BasicColumnWriterState>();
|
644
656
|
auto &column_chunk = state.row_group.columns[state.col_idx];
|
645
657
|
|
646
658
|
// flush the last page (if any remains)
|
@@ -863,10 +875,10 @@ public:
|
|
863
875
|
return GetMaxValue();
|
864
876
|
}
|
865
877
|
string GetMinValue() override {
|
866
|
-
return HasStats() ? string((
|
878
|
+
return HasStats() ? string(const_char_ptr_cast(&min), sizeof(bool)) : string();
|
867
879
|
}
|
868
880
|
string GetMaxValue() override {
|
869
|
-
return HasStats() ? string((
|
881
|
+
return HasStats() ? string(const_char_ptr_cast(&max), sizeof(bool)) : string();
|
870
882
|
}
|
871
883
|
};
|
872
884
|
|
@@ -891,8 +903,8 @@ public:
|
|
891
903
|
|
892
904
|
void WriteVector(Serializer &temp_writer, ColumnWriterStatistics *stats_p, ColumnWriterPageState *state_p,
|
893
905
|
Vector &input_column, idx_t chunk_start, idx_t chunk_end) override {
|
894
|
-
auto &stats = (
|
895
|
-
auto &state = (
|
906
|
+
auto &stats = stats_p->Cast<BooleanStatisticsState>();
|
907
|
+
auto &state = state_p->Cast<BooleanWriterPageState>();
|
896
908
|
auto &mask = FlatVector::Validity(input_column);
|
897
909
|
|
898
910
|
auto *ptr = FlatVector::GetData<bool>(input_column);
|
@@ -921,7 +933,7 @@ public:
|
|
921
933
|
}
|
922
934
|
|
923
935
|
void FlushPageState(Serializer &temp_writer, ColumnWriterPageState *state_p) override {
|
924
|
-
auto &state = (
|
936
|
+
auto &state = state_p->Cast<BooleanWriterPageState>();
|
925
937
|
if (state.byte_pos > 0) {
|
926
938
|
temp_writer.Write<uint8_t>(state.byte);
|
927
939
|
state.byte = 0;
|
@@ -971,7 +983,7 @@ public:
|
|
971
983
|
string GetStats(hugeint_t &input) {
|
972
984
|
data_t buffer[16];
|
973
985
|
WriteParquetDecimal(input, buffer);
|
974
|
-
return string((
|
986
|
+
return string(const_char_ptr_cast(buffer), 16);
|
975
987
|
}
|
976
988
|
|
977
989
|
bool HasStats() {
|
@@ -1018,7 +1030,7 @@ public:
|
|
1018
1030
|
Vector &input_column, idx_t chunk_start, idx_t chunk_end) override {
|
1019
1031
|
auto &mask = FlatVector::Validity(input_column);
|
1020
1032
|
auto *ptr = FlatVector::GetData<hugeint_t>(input_column);
|
1021
|
-
auto &stats = (
|
1033
|
+
auto &stats = stats_p->Cast<FixedDecimalStatistics>();
|
1022
1034
|
|
1023
1035
|
data_t temp_buffer[16];
|
1024
1036
|
for (idx_t r = chunk_start; r < chunk_end; r++) {
|
@@ -1247,7 +1259,7 @@ public:
|
|
1247
1259
|
}
|
1248
1260
|
|
1249
1261
|
void Analyze(ColumnWriterState &state_p, ColumnWriterState *parent, Vector &vector, idx_t count) override {
|
1250
|
-
auto &state = (
|
1262
|
+
auto &state = state_p.Cast<StringColumnWriterState>();
|
1251
1263
|
|
1252
1264
|
idx_t vcount = parent ? parent->definition_levels.size() - state.definition_levels.size() : count;
|
1253
1265
|
idx_t parent_index = state.definition_levels.size();
|
@@ -1295,7 +1307,7 @@ public:
|
|
1295
1307
|
}
|
1296
1308
|
|
1297
1309
|
void FinalizeAnalyze(ColumnWriterState &state_p) override {
|
1298
|
-
auto &state = (
|
1310
|
+
auto &state = state_p.Cast<StringColumnWriterState>();
|
1299
1311
|
|
1300
1312
|
// check if a dictionary will require more space than a plain write, or if the dictionary page is going to
|
1301
1313
|
// be too large
|
@@ -1311,9 +1323,9 @@ public:
|
|
1311
1323
|
|
1312
1324
|
void WriteVector(Serializer &temp_writer, ColumnWriterStatistics *stats_p, ColumnWriterPageState *page_state_p,
|
1313
1325
|
Vector &input_column, idx_t chunk_start, idx_t chunk_end) override {
|
1314
|
-
auto &page_state = (
|
1326
|
+
auto &page_state = page_state_p->Cast<StringWriterPageState>();
|
1315
1327
|
auto &mask = FlatVector::Validity(input_column);
|
1316
|
-
auto &stats = (
|
1328
|
+
auto &stats = stats_p->Cast<StringStatisticsState>();
|
1317
1329
|
|
1318
1330
|
auto *ptr = FlatVector::GetData<string_t>(input_column);
|
1319
1331
|
if (page_state.IsDictionaryEncoded()) {
|
@@ -1342,18 +1354,18 @@ public:
|
|
1342
1354
|
}
|
1343
1355
|
stats.Update(ptr[r]);
|
1344
1356
|
temp_writer.Write<uint32_t>(ptr[r].GetSize());
|
1345
|
-
temp_writer.WriteData((
|
1357
|
+
temp_writer.WriteData(const_data_ptr_cast(ptr[r].GetData()), ptr[r].GetSize());
|
1346
1358
|
}
|
1347
1359
|
}
|
1348
1360
|
}
|
1349
1361
|
|
1350
1362
|
duckdb::unique_ptr<ColumnWriterPageState> InitializePageState(BasicColumnWriterState &state_p) override {
|
1351
|
-
auto &state = (
|
1363
|
+
auto &state = state_p.Cast<StringColumnWriterState>();
|
1352
1364
|
return make_uniq<StringWriterPageState>(state.key_bit_width, state.dictionary);
|
1353
1365
|
}
|
1354
1366
|
|
1355
1367
|
void FlushPageState(Serializer &temp_writer, ColumnWriterPageState *state_p) override {
|
1356
|
-
auto &page_state = (
|
1368
|
+
auto &page_state = state_p->Cast<StringWriterPageState>();
|
1357
1369
|
if (page_state.bit_width != 0) {
|
1358
1370
|
if (!page_state.written_value) {
|
1359
1371
|
// all values are null
|
@@ -1366,24 +1378,24 @@ public:
|
|
1366
1378
|
}
|
1367
1379
|
|
1368
1380
|
duckdb_parquet::format::Encoding::type GetEncoding(BasicColumnWriterState &state_p) override {
|
1369
|
-
auto &state = (
|
1381
|
+
auto &state = state_p.Cast<StringColumnWriterState>();
|
1370
1382
|
return state.IsDictionaryEncoded() ? Encoding::RLE_DICTIONARY : Encoding::PLAIN;
|
1371
1383
|
}
|
1372
1384
|
|
1373
1385
|
bool HasDictionary(BasicColumnWriterState &state_p) override {
|
1374
|
-
auto &state = (
|
1386
|
+
auto &state = state_p.Cast<StringColumnWriterState>();
|
1375
1387
|
return state.IsDictionaryEncoded();
|
1376
1388
|
}
|
1377
1389
|
|
1378
1390
|
idx_t DictionarySize(BasicColumnWriterState &state_p) override {
|
1379
|
-
auto &state = (
|
1391
|
+
auto &state = state_p.Cast<StringColumnWriterState>();
|
1380
1392
|
D_ASSERT(state.IsDictionaryEncoded());
|
1381
1393
|
return state.dictionary.size();
|
1382
1394
|
}
|
1383
1395
|
|
1384
1396
|
void FlushDictionary(BasicColumnWriterState &state_p, ColumnWriterStatistics *stats_p) override {
|
1385
|
-
auto &stats = (
|
1386
|
-
auto &state = (
|
1397
|
+
auto &stats = stats_p->Cast<StringStatisticsState>();
|
1398
|
+
auto &state = state_p.Cast<StringColumnWriterState>();
|
1387
1399
|
if (!state.IsDictionaryEncoded()) {
|
1388
1400
|
return;
|
1389
1401
|
}
|
@@ -1401,14 +1413,14 @@ public:
|
|
1401
1413
|
stats.Update(value);
|
1402
1414
|
// write this string value to the dictionary
|
1403
1415
|
temp_writer->Write<uint32_t>(value.GetSize());
|
1404
|
-
temp_writer->WriteData((
|
1416
|
+
temp_writer->WriteData(const_data_ptr_cast((value.GetData())), value.GetSize());
|
1405
1417
|
}
|
1406
1418
|
// flush the dictionary page and add it to the to-be-written pages
|
1407
1419
|
WriteDictionary(state, std::move(temp_writer), values.size());
|
1408
1420
|
}
|
1409
1421
|
|
1410
1422
|
idx_t GetRowSize(Vector &vector, idx_t index, BasicColumnWriterState &state_p) override {
|
1411
|
-
auto &state = (
|
1423
|
+
auto &state = state_p.Cast<StringColumnWriterState>();
|
1412
1424
|
if (state.IsDictionaryEncoded()) {
|
1413
1425
|
return (state.key_bit_width + 7) / 8;
|
1414
1426
|
} else {
|
@@ -1471,7 +1483,7 @@ public:
|
|
1471
1483
|
|
1472
1484
|
void WriteVector(Serializer &temp_writer, ColumnWriterStatistics *stats_p, ColumnWriterPageState *page_state_p,
|
1473
1485
|
Vector &input_column, idx_t chunk_start, idx_t chunk_end) override {
|
1474
|
-
auto &page_state = (
|
1486
|
+
auto &page_state = page_state_p->Cast<EnumWriterPageState>();
|
1475
1487
|
switch (enum_type.InternalType()) {
|
1476
1488
|
case PhysicalType::UINT8:
|
1477
1489
|
WriteEnumInternal<uint8_t>(temp_writer, input_column, chunk_start, chunk_end, page_state);
|
@@ -1492,7 +1504,7 @@ public:
|
|
1492
1504
|
}
|
1493
1505
|
|
1494
1506
|
void FlushPageState(Serializer &temp_writer, ColumnWriterPageState *state_p) override {
|
1495
|
-
auto &page_state = (
|
1507
|
+
auto &page_state = state_p->Cast<EnumWriterPageState>();
|
1496
1508
|
if (!page_state.written_value) {
|
1497
1509
|
// all values are null
|
1498
1510
|
// just write the bit width
|
@@ -1515,7 +1527,7 @@ public:
|
|
1515
1527
|
}
|
1516
1528
|
|
1517
1529
|
void FlushDictionary(BasicColumnWriterState &state, ColumnWriterStatistics *stats_p) override {
|
1518
|
-
auto &stats = (
|
1530
|
+
auto &stats = stats_p->Cast<StringStatisticsState>();
|
1519
1531
|
// write the enum values to a dictionary page
|
1520
1532
|
auto &enum_values = EnumType::GetValuesInsertOrder(enum_type);
|
1521
1533
|
auto enum_count = EnumType::GetSize(enum_type);
|
@@ -1528,7 +1540,7 @@ public:
|
|
1528
1540
|
stats.Update(string_values[r]);
|
1529
1541
|
// write this string value to the dictionary
|
1530
1542
|
temp_writer->Write<uint32_t>(string_values[r].GetSize());
|
1531
|
-
temp_writer->WriteData((
|
1543
|
+
temp_writer->WriteData(const_data_ptr_cast(string_values[r].GetData()), string_values[r].GetSize());
|
1532
1544
|
}
|
1533
1545
|
// flush the dictionary page and add it to the to-be-written pages
|
1534
1546
|
WriteDictionary(state, std::move(temp_writer), enum_count);
|
@@ -1599,7 +1611,7 @@ bool StructColumnWriter::HasAnalyze() {
|
|
1599
1611
|
}
|
1600
1612
|
|
1601
1613
|
void StructColumnWriter::Analyze(ColumnWriterState &state_p, ColumnWriterState *parent, Vector &vector, idx_t count) {
|
1602
|
-
auto &state = (
|
1614
|
+
auto &state = state_p.Cast<StructColumnWriterState>();
|
1603
1615
|
auto &child_vectors = StructVector::GetEntries(vector);
|
1604
1616
|
for (idx_t child_idx = 0; child_idx < child_writers.size(); child_idx++) {
|
1605
1617
|
// Need to check again. It might be that just one child needs it but the rest not
|
@@ -1611,7 +1623,7 @@ void StructColumnWriter::Analyze(ColumnWriterState &state_p, ColumnWriterState *
|
|
1611
1623
|
}
|
1612
1624
|
|
1613
1625
|
void StructColumnWriter::FinalizeAnalyze(ColumnWriterState &state_p) {
|
1614
|
-
auto &state = (
|
1626
|
+
auto &state = state_p.Cast<StructColumnWriterState>();
|
1615
1627
|
for (idx_t child_idx = 0; child_idx < child_writers.size(); child_idx++) {
|
1616
1628
|
// Need to check again. It might be that just one child needs it but the rest not
|
1617
1629
|
if (child_writers[child_idx]->HasAnalyze()) {
|
@@ -1621,7 +1633,7 @@ void StructColumnWriter::FinalizeAnalyze(ColumnWriterState &state_p) {
|
|
1621
1633
|
}
|
1622
1634
|
|
1623
1635
|
void StructColumnWriter::Prepare(ColumnWriterState &state_p, ColumnWriterState *parent, Vector &vector, idx_t count) {
|
1624
|
-
auto &state = (
|
1636
|
+
auto &state = state_p.Cast<StructColumnWriterState>();
|
1625
1637
|
|
1626
1638
|
auto &validity = FlatVector::Validity(vector);
|
1627
1639
|
if (parent) {
|
@@ -1639,14 +1651,14 @@ void StructColumnWriter::Prepare(ColumnWriterState &state_p, ColumnWriterState *
|
|
1639
1651
|
}
|
1640
1652
|
|
1641
1653
|
void StructColumnWriter::BeginWrite(ColumnWriterState &state_p) {
|
1642
|
-
auto &state = (
|
1654
|
+
auto &state = state_p.Cast<StructColumnWriterState>();
|
1643
1655
|
for (idx_t child_idx = 0; child_idx < child_writers.size(); child_idx++) {
|
1644
1656
|
child_writers[child_idx]->BeginWrite(*state.child_states[child_idx]);
|
1645
1657
|
}
|
1646
1658
|
}
|
1647
1659
|
|
1648
1660
|
void StructColumnWriter::Write(ColumnWriterState &state_p, Vector &vector, idx_t count) {
|
1649
|
-
auto &state = (
|
1661
|
+
auto &state = state_p.Cast<StructColumnWriterState>();
|
1650
1662
|
auto &child_vectors = StructVector::GetEntries(vector);
|
1651
1663
|
for (idx_t child_idx = 0; child_idx < child_writers.size(); child_idx++) {
|
1652
1664
|
child_writers[child_idx]->Write(*state.child_states[child_idx], *child_vectors[child_idx], count);
|
@@ -1654,7 +1666,7 @@ void StructColumnWriter::Write(ColumnWriterState &state_p, Vector &vector, idx_t
|
|
1654
1666
|
}
|
1655
1667
|
|
1656
1668
|
void StructColumnWriter::FinalizeWrite(ColumnWriterState &state_p) {
|
1657
|
-
auto &state = (
|
1669
|
+
auto &state = state_p.Cast<StructColumnWriterState>();
|
1658
1670
|
for (idx_t child_idx = 0; child_idx < child_writers.size(); child_idx++) {
|
1659
1671
|
// we add the null count of the struct to the null count of the children
|
1660
1672
|
child_writers[child_idx]->null_count += null_count;
|
@@ -1713,19 +1725,19 @@ bool ListColumnWriter::HasAnalyze() {
|
|
1713
1725
|
return child_writer->HasAnalyze();
|
1714
1726
|
}
|
1715
1727
|
void ListColumnWriter::Analyze(ColumnWriterState &state_p, ColumnWriterState *parent, Vector &vector, idx_t count) {
|
1716
|
-
auto &state = (
|
1728
|
+
auto &state = state_p.Cast<ListColumnWriterState>();
|
1717
1729
|
auto &list_child = ListVector::GetEntry(vector);
|
1718
1730
|
auto list_count = ListVector::GetListSize(vector);
|
1719
1731
|
child_writer->Analyze(*state.child_state, &state_p, list_child, list_count);
|
1720
1732
|
}
|
1721
1733
|
|
1722
1734
|
void ListColumnWriter::FinalizeAnalyze(ColumnWriterState &state_p) {
|
1723
|
-
auto &state = (
|
1735
|
+
auto &state = state_p.Cast<ListColumnWriterState>();
|
1724
1736
|
child_writer->FinalizeAnalyze(*state.child_state);
|
1725
1737
|
}
|
1726
1738
|
|
1727
1739
|
void ListColumnWriter::Prepare(ColumnWriterState &state_p, ColumnWriterState *parent, Vector &vector, idx_t count) {
|
1728
|
-
auto &state = (
|
1740
|
+
auto &state = state_p.Cast<ListColumnWriterState>();
|
1729
1741
|
|
1730
1742
|
auto list_data = FlatVector::GetData<list_entry_t>(vector);
|
1731
1743
|
auto &validity = FlatVector::Validity(vector);
|
@@ -1782,12 +1794,12 @@ void ListColumnWriter::Prepare(ColumnWriterState &state_p, ColumnWriterState *pa
|
|
1782
1794
|
}
|
1783
1795
|
|
1784
1796
|
void ListColumnWriter::BeginWrite(ColumnWriterState &state_p) {
|
1785
|
-
auto &state = (
|
1797
|
+
auto &state = state_p.Cast<ListColumnWriterState>();
|
1786
1798
|
child_writer->BeginWrite(*state.child_state);
|
1787
1799
|
}
|
1788
1800
|
|
1789
1801
|
void ListColumnWriter::Write(ColumnWriterState &state_p, Vector &vector, idx_t count) {
|
1790
|
-
auto &state = (
|
1802
|
+
auto &state = state_p.Cast<ListColumnWriterState>();
|
1791
1803
|
|
1792
1804
|
auto &list_child = ListVector::GetEntry(vector);
|
1793
1805
|
Vector child_list(list_child);
|
@@ -1796,7 +1808,7 @@ void ListColumnWriter::Write(ColumnWriterState &state_p, Vector &vector, idx_t c
|
|
1796
1808
|
}
|
1797
1809
|
|
1798
1810
|
void ListColumnWriter::FinalizeWrite(ColumnWriterState &state_p) {
|
1799
|
-
auto &state = (
|
1811
|
+
auto &state = state_p.Cast<ListColumnWriterState>();
|
1800
1812
|
child_writer->FinalizeWrite(*state.child_state);
|
1801
1813
|
}
|
1802
1814
|
|
@@ -28,7 +28,7 @@ public:
|
|
28
28
|
unique_ptr<BaseStatistics> Stats(idx_t row_group_idx_p, const vector<ColumnChunk> &columns) override;
|
29
29
|
void InitializeRead(idx_t row_group_idx_p, const vector<ColumnChunk> &columns, TProtocol &protocol_p) override;
|
30
30
|
|
31
|
-
idx_t Read(uint64_t num_values, parquet_filter_t &filter,
|
31
|
+
idx_t Read(uint64_t num_values, parquet_filter_t &filter, data_ptr_t define_out, data_ptr_t repeat_out,
|
32
32
|
Vector &result) override;
|
33
33
|
|
34
34
|
void Skip(idx_t num_values) override;
|
@@ -51,7 +51,7 @@ public:
|
|
51
51
|
const SchemaElement &schema_p, idx_t schema_idx_p, idx_t max_define,
|
52
52
|
idx_t max_repeat);
|
53
53
|
virtual void InitializeRead(idx_t row_group_index, const vector<ColumnChunk> &columns, TProtocol &protocol_p);
|
54
|
-
virtual idx_t Read(uint64_t num_values, parquet_filter_t &filter,
|
54
|
+
virtual idx_t Read(uint64_t num_values, parquet_filter_t &filter, data_ptr_t define_out, data_ptr_t repeat_out,
|
55
55
|
Vector &result_out);
|
56
56
|
|
57
57
|
virtual void Skip(idx_t num_values);
|
@@ -143,7 +143,8 @@ private:
|
|
143
143
|
void PreparePage(PageHeader &page_hdr);
|
144
144
|
void PrepareDataPage(PageHeader &page_hdr);
|
145
145
|
void PreparePageV2(PageHeader &page_hdr);
|
146
|
-
void DecompressInternal(CompressionCodec::type codec,
|
146
|
+
void DecompressInternal(CompressionCodec::type codec, const_data_ptr_t src, idx_t src_size, data_ptr_t dst,
|
147
|
+
idx_t dst_size);
|
147
148
|
|
148
149
|
const duckdb_parquet::format::ColumnChunk *chunk = nullptr;
|
149
150
|
|
@@ -174,7 +175,7 @@ public:
|
|
174
175
|
if (TARGET::TYPE != PhysicalType::INVALID && type.InternalType() != TARGET::TYPE) {
|
175
176
|
throw InternalException("Failed to cast column reader to type - type mismatch");
|
176
177
|
}
|
177
|
-
return
|
178
|
+
return reinterpret_cast<TARGET &>(*this);
|
178
179
|
}
|
179
180
|
|
180
181
|
template <class TARGET>
|
@@ -182,7 +183,7 @@ public:
|
|
182
183
|
if (TARGET::TYPE != PhysicalType::INVALID && type.InternalType() != TARGET::TYPE) {
|
183
184
|
throw InternalException("Failed to cast column reader to type - type mismatch");
|
184
185
|
}
|
185
|
-
return
|
186
|
+
return reinterpret_cast<const TARGET &>(*this);
|
186
187
|
}
|
187
188
|
};
|
188
189
|
|
@@ -24,6 +24,18 @@ public:
|
|
24
24
|
vector<uint16_t> definition_levels;
|
25
25
|
vector<uint16_t> repetition_levels;
|
26
26
|
vector<bool> is_empty;
|
27
|
+
|
28
|
+
public:
|
29
|
+
template <class TARGET>
|
30
|
+
TARGET &Cast() {
|
31
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
32
|
+
return reinterpret_cast<TARGET &>(*this);
|
33
|
+
}
|
34
|
+
template <class TARGET>
|
35
|
+
const TARGET &Cast() const {
|
36
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
37
|
+
return reinterpret_cast<const TARGET &>(*this);
|
38
|
+
}
|
27
39
|
};
|
28
40
|
|
29
41
|
class ColumnWriterStatistics {
|
@@ -34,6 +46,18 @@ public:
|
|
34
46
|
virtual string GetMax();
|
35
47
|
virtual string GetMinValue();
|
36
48
|
virtual string GetMaxValue();
|
49
|
+
|
50
|
+
public:
|
51
|
+
template <class TARGET>
|
52
|
+
TARGET &Cast() {
|
53
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
54
|
+
return reinterpret_cast<TARGET &>(*this);
|
55
|
+
}
|
56
|
+
template <class TARGET>
|
57
|
+
const TARGET &Cast() const {
|
58
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
59
|
+
return reinterpret_cast<const TARGET &>(*this);
|
60
|
+
}
|
37
61
|
};
|
38
62
|
|
39
63
|
class ColumnWriter {
|
@@ -21,7 +21,7 @@ public:
|
|
21
21
|
ListColumnReader(ParquetReader &reader, LogicalType type_p, const SchemaElement &schema_p, idx_t schema_idx_p,
|
22
22
|
idx_t max_define_p, idx_t max_repeat_p, duckdb::unique_ptr<ColumnReader> child_column_reader_p);
|
23
23
|
|
24
|
-
idx_t Read(uint64_t num_values, parquet_filter_t &filter,
|
24
|
+
idx_t Read(uint64_t num_values, parquet_filter_t &filter, data_ptr_t define_out, data_ptr_t repeat_out,
|
25
25
|
Vector &result_out) override;
|
26
26
|
|
27
27
|
void ApplyPendingSkips(idx_t num_values) override;
|
@@ -4,7 +4,7 @@
|
|
4
4
|
namespace duckdb {
|
5
5
|
class DbpDecoder {
|
6
6
|
public:
|
7
|
-
DbpDecoder(
|
7
|
+
DbpDecoder(data_ptr_t buffer, uint32_t buffer_len) : buffer_(buffer, buffer_len) {
|
8
8
|
//<block size in values> <number of miniblocks in a block> <total value count> <first value>
|
9
9
|
// overall header
|
10
10
|
block_value_count = ParquetDecodeUtils::VarintDecode<uint64_t>(buffer_);
|
@@ -35,8 +35,8 @@ public:
|
|
35
35
|
}
|
36
36
|
|
37
37
|
template <typename T>
|
38
|
-
void GetBatch(
|
39
|
-
auto values =
|
38
|
+
void GetBatch(data_ptr_t values_target_ptr, uint32_t batch_size) {
|
39
|
+
auto values = reinterpret_cast<T *>(values_target_ptr);
|
40
40
|
|
41
41
|
if (batch_size == 0) {
|
42
42
|
return;
|
@@ -97,7 +97,7 @@ public:
|
|
97
97
|
return;
|
98
98
|
}
|
99
99
|
auto data = duckdb::unique_ptr<uint32_t[]>(new uint32_t[values_left_in_miniblock]);
|
100
|
-
GetBatch<uint32_t>((
|
100
|
+
GetBatch<uint32_t>(data_ptr_cast(data.get()), values_left_in_miniblock);
|
101
101
|
}
|
102
102
|
|
103
103
|
uint64_t TotalValues() {
|
@@ -18,9 +18,8 @@ class RleBpDecoder {
|
|
18
18
|
public:
|
19
19
|
/// Create a decoder object. buffer/buffer_len is the decoded data.
|
20
20
|
/// bit_width is the width of each value (before encoding).
|
21
|
-
RleBpDecoder(
|
22
|
-
: buffer_(
|
23
|
-
literal_count_(0) {
|
21
|
+
RleBpDecoder(data_ptr_t buffer, uint32_t buffer_len, uint32_t bit_width)
|
22
|
+
: buffer_(buffer, buffer_len), bit_width_(bit_width), current_value_(0), repeat_count_(0), literal_count_(0) {
|
24
23
|
if (bit_width >= 64) {
|
25
24
|
throw std::runtime_error("Decode bit width too large");
|
26
25
|
}
|
@@ -29,8 +28,8 @@ public:
|
|
29
28
|
}
|
30
29
|
|
31
30
|
template <typename T>
|
32
|
-
void GetBatch(
|
33
|
-
auto values =
|
31
|
+
void GetBatch(data_ptr_t values_target_ptr, uint32_t batch_size) {
|
32
|
+
auto values = reinterpret_cast<T *>(values_target_ptr);
|
34
33
|
uint32_t values_read = 0;
|
35
34
|
|
36
35
|
while (values_read < batch_size) {
|
@@ -19,9 +19,9 @@ namespace duckdb {
|
|
19
19
|
class ByteBuffer { // on to the 10 thousandth impl
|
20
20
|
public:
|
21
21
|
ByteBuffer() {};
|
22
|
-
ByteBuffer(
|
22
|
+
ByteBuffer(data_ptr_t ptr, uint64_t len) : ptr(ptr), len(len) {};
|
23
23
|
|
24
|
-
|
24
|
+
data_ptr_t ptr = nullptr;
|
25
25
|
uint64_t len = 0;
|
26
26
|
|
27
27
|
public:
|
@@ -41,7 +41,7 @@ public:
|
|
41
41
|
template <class T>
|
42
42
|
T get() {
|
43
43
|
available(sizeof(T));
|
44
|
-
T val = Load<T>(
|
44
|
+
T val = Load<T>(ptr);
|
45
45
|
return val;
|
46
46
|
}
|
47
47
|
|
@@ -76,7 +76,7 @@ public:
|
|
76
76
|
if (new_size > alloc_len) {
|
77
77
|
alloc_len = NextPowerOfTwo(new_size);
|
78
78
|
allocated_data = allocator.Allocate(alloc_len);
|
79
|
-
ptr =
|
79
|
+
ptr = allocated_data.get();
|
80
80
|
}
|
81
81
|
}
|
82
82
|
|
@@ -26,7 +26,7 @@ public:
|
|
26
26
|
idx_t max_define_p, idx_t max_repeat_p);
|
27
27
|
|
28
28
|
public:
|
29
|
-
idx_t Read(uint64_t num_values, parquet_filter_t &filter,
|
29
|
+
idx_t Read(uint64_t num_values, parquet_filter_t &filter, data_ptr_t define_out, data_ptr_t repeat_out,
|
30
30
|
Vector &result) override;
|
31
31
|
|
32
32
|
unique_ptr<BaseStatistics> Stats(idx_t row_group_idx_p, const vector<ColumnChunk> &columns) override;
|
@@ -29,7 +29,7 @@ public:
|
|
29
29
|
|
30
30
|
void InitializeRead(idx_t row_group_idx_p, const vector<ColumnChunk> &columns, TProtocol &protocol_p) override;
|
31
31
|
|
32
|
-
idx_t Read(uint64_t num_values, parquet_filter_t &filter,
|
32
|
+
idx_t Read(uint64_t num_values, parquet_filter_t &filter, data_ptr_t define_out, data_ptr_t repeat_out,
|
33
33
|
Vector &result) override;
|
34
34
|
|
35
35
|
void Skip(idx_t num_values) override;
|
@@ -343,7 +343,7 @@ public:
|
|
343
343
|
|
344
344
|
static unique_ptr<GlobalTableFunctionState> ParquetScanInitGlobal(ClientContext &context,
|
345
345
|
TableFunctionInitInput &input) {
|
346
|
-
auto &bind_data =
|
346
|
+
auto &bind_data = input.bind_data->CastNoConst<ParquetReadBindData>();
|
347
347
|
auto result = make_uniq<ParquetReadGlobalState>();
|
348
348
|
|
349
349
|
result->file_opening = vector<bool>(bind_data.files.size(), false);
|
@@ -19,7 +19,7 @@ struct ParquetMetaDataBindData : public TableFunctionData {
|
|
19
19
|
|
20
20
|
public:
|
21
21
|
bool Equals(const FunctionData &other_p) const override {
|
22
|
-
auto &other = (
|
22
|
+
auto &other = other_p.Cast<ParquetMetaDataBindData>();
|
23
23
|
return other.return_types == return_types && files == other.files;
|
24
24
|
}
|
25
25
|
};
|