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
@@ -58,7 +58,7 @@ static shared_ptr<ParquetFileMetadataCache> LoadMetadata(Allocator &allocator, F
|
|
58
58
|
auto current_time = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
|
59
59
|
|
60
60
|
auto proto = CreateThriftProtocol(allocator, file_handle, false);
|
61
|
-
auto &transport =
|
61
|
+
auto &transport = reinterpret_cast<ThriftFileTransport &>(*proto->getTransport());
|
62
62
|
auto file_size = transport.GetSize();
|
63
63
|
if (file_size < 12) {
|
64
64
|
throw InvalidInputException("File '%s' too small to be a Parquet file", file_handle.path);
|
@@ -71,11 +71,11 @@ static shared_ptr<ParquetFileMetadataCache> LoadMetadata(Allocator &allocator, F
|
|
71
71
|
transport.SetLocation(file_size - 8);
|
72
72
|
transport.read((uint8_t *)buf.ptr, 8);
|
73
73
|
|
74
|
-
if (
|
74
|
+
if (memcmp(buf.ptr + 4, "PAR1", 4) != 0) {
|
75
75
|
throw InvalidInputException("No magic bytes found at end of file '%s'", file_handle.path);
|
76
76
|
}
|
77
77
|
// read four-byte footer length from just before the end magic bytes
|
78
|
-
auto footer_len = *
|
78
|
+
auto footer_len = *reinterpret_cast<uint32_t *>(buf.ptr);
|
79
79
|
if (footer_len <= 0 || file_size < 12 + footer_len) {
|
80
80
|
throw InvalidInputException("Footer length error in file '%s'", file_handle.path);
|
81
81
|
}
|
@@ -484,7 +484,7 @@ unique_ptr<BaseStatistics> ParquetReader::ReadStatistics(const string &name) {
|
|
484
484
|
unique_ptr<BaseStatistics> column_stats;
|
485
485
|
auto file_meta_data = GetFileMetadata();
|
486
486
|
auto root_reader = CreateReader();
|
487
|
-
auto column_reader = (
|
487
|
+
auto column_reader = root_reader->Cast<StructColumnReader>().GetChildReader(file_col_idx);
|
488
488
|
|
489
489
|
for (idx_t row_group_idx = 0; row_group_idx < file_meta_data->row_groups.size(); row_group_idx++) {
|
490
490
|
auto &row_group = file_meta_data->row_groups[row_group_idx];
|
@@ -573,7 +573,7 @@ idx_t ParquetReader::GetGroupOffset(ParquetReaderScanState &state) {
|
|
573
573
|
void ParquetReader::PrepareRowGroupBuffer(ParquetReaderScanState &state, idx_t col_idx) {
|
574
574
|
auto &group = GetGroup(state);
|
575
575
|
auto column_id = reader_data.column_ids[col_idx];
|
576
|
-
auto column_reader =
|
576
|
+
auto column_reader = state.root_reader->Cast<StructColumnReader>().GetChildReader(column_id);
|
577
577
|
|
578
578
|
// TODO move this to columnreader too
|
579
579
|
if (reader_data.filters) {
|
@@ -760,14 +760,14 @@ static void FilterOperationSwitch(Vector &v, Value &constant, parquet_filter_t &
|
|
760
760
|
static void ApplyFilter(Vector &v, TableFilter &filter, parquet_filter_t &filter_mask, idx_t count) {
|
761
761
|
switch (filter.filter_type) {
|
762
762
|
case TableFilterType::CONJUNCTION_AND: {
|
763
|
-
auto &conjunction = (
|
763
|
+
auto &conjunction = filter.Cast<ConjunctionAndFilter>();
|
764
764
|
for (auto &child_filter : conjunction.child_filters) {
|
765
765
|
ApplyFilter(v, *child_filter, filter_mask, count);
|
766
766
|
}
|
767
767
|
break;
|
768
768
|
}
|
769
769
|
case TableFilterType::CONJUNCTION_OR: {
|
770
|
-
auto &conjunction = (
|
770
|
+
auto &conjunction = filter.Cast<ConjunctionOrFilter>();
|
771
771
|
parquet_filter_t or_mask;
|
772
772
|
for (auto &child_filter : conjunction.child_filters) {
|
773
773
|
parquet_filter_t child_mask = filter_mask;
|
@@ -778,7 +778,7 @@ static void ApplyFilter(Vector &v, TableFilter &filter, parquet_filter_t &filter
|
|
778
778
|
break;
|
779
779
|
}
|
780
780
|
case TableFilterType::CONSTANT_COMPARISON: {
|
781
|
-
auto &constant_filter = (
|
781
|
+
auto &constant_filter = filter.Cast<ConstantFilter>();
|
782
782
|
switch (constant_filter.comparison_type) {
|
783
783
|
case ExpressionType::COMPARE_EQUAL:
|
784
784
|
FilterOperationSwitch<Equals>(v, constant_filter.constant, filter_mask, count);
|
@@ -831,7 +831,7 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
|
|
831
831
|
state.current_group++;
|
832
832
|
state.group_offset = 0;
|
833
833
|
|
834
|
-
auto &trans =
|
834
|
+
auto &trans = reinterpret_cast<ThriftFileTransport &>(*state.thrift_file_proto->getTransport());
|
835
835
|
trans.ClearPrefetch();
|
836
836
|
state.current_group_prefetched = false;
|
837
837
|
|
@@ -846,8 +846,8 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
|
|
846
846
|
|
847
847
|
auto file_col_idx = reader_data.column_ids[col_idx];
|
848
848
|
|
849
|
-
auto root_reader =
|
850
|
-
to_scan_compressed_bytes += root_reader
|
849
|
+
auto &root_reader = state.root_reader->Cast<StructColumnReader>();
|
850
|
+
to_scan_compressed_bytes += root_reader.GetChildReader(file_col_idx)->TotalCompressedSize();
|
851
851
|
}
|
852
852
|
|
853
853
|
auto &group = GetGroup(state);
|
@@ -880,14 +880,14 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
|
|
880
880
|
// Prefetch column-wise
|
881
881
|
for (idx_t col_idx = 0; col_idx < reader_data.column_ids.size(); col_idx++) {
|
882
882
|
auto file_col_idx = reader_data.column_ids[col_idx];
|
883
|
-
auto root_reader =
|
883
|
+
auto &root_reader = state.root_reader->Cast<StructColumnReader>();
|
884
884
|
|
885
885
|
bool has_filter = false;
|
886
886
|
if (reader_data.filters) {
|
887
887
|
auto entry = reader_data.filters->filters.find(reader_data.column_mapping[col_idx]);
|
888
888
|
has_filter = entry != reader_data.filters->filters.end();
|
889
889
|
}
|
890
|
-
root_reader
|
890
|
+
root_reader.GetChildReader(file_col_idx)->RegisterPrefetch(trans, !(lazy_fetch && !has_filter));
|
891
891
|
}
|
892
892
|
|
893
893
|
trans.FinalizeRegistration();
|
@@ -924,7 +924,7 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
|
|
924
924
|
auto define_ptr = (uint8_t *)state.define_buf.ptr;
|
925
925
|
auto repeat_ptr = (uint8_t *)state.repeat_buf.ptr;
|
926
926
|
|
927
|
-
auto root_reader =
|
927
|
+
auto &root_reader = state.root_reader->Cast<StructColumnReader>();
|
928
928
|
|
929
929
|
if (reader_data.filters) {
|
930
930
|
vector<bool> need_to_read(reader_data.column_ids.size(), true);
|
@@ -947,7 +947,7 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
|
|
947
947
|
auto result_idx = reader_data.column_mapping[id];
|
948
948
|
|
949
949
|
auto &result_vector = result.data[result_idx];
|
950
|
-
auto child_reader = root_reader
|
950
|
+
auto child_reader = root_reader.GetChildReader(file_col_idx);
|
951
951
|
child_reader->Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
|
952
952
|
need_to_read[id] = false;
|
953
953
|
|
@@ -962,11 +962,11 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
|
|
962
962
|
}
|
963
963
|
auto file_col_idx = reader_data.column_ids[col_idx];
|
964
964
|
if (filter_mask.none()) {
|
965
|
-
root_reader
|
965
|
+
root_reader.GetChildReader(file_col_idx)->Skip(result.size());
|
966
966
|
continue;
|
967
967
|
}
|
968
968
|
auto &result_vector = result.data[reader_data.column_mapping[col_idx]];
|
969
|
-
auto child_reader = root_reader
|
969
|
+
auto child_reader = root_reader.GetChildReader(file_col_idx);
|
970
970
|
child_reader->Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
|
971
971
|
}
|
972
972
|
|
@@ -982,7 +982,7 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
|
|
982
982
|
for (idx_t col_idx = 0; col_idx < reader_data.column_ids.size(); col_idx++) {
|
983
983
|
auto file_col_idx = reader_data.column_ids[col_idx];
|
984
984
|
auto &result_vector = result.data[reader_data.column_mapping[col_idx]];
|
985
|
-
auto child_reader = root_reader
|
985
|
+
auto child_reader = root_reader.GetChildReader(file_col_idx);
|
986
986
|
auto rows_read = child_reader->Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
|
987
987
|
if (rows_read != result.size()) {
|
988
988
|
throw InvalidInputException("Mismatch in parquet read for column %llu, expected %llu rows, got %llu",
|
@@ -48,12 +48,13 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
|
|
48
48
|
if (stats.empty()) {
|
49
49
|
return Value();
|
50
50
|
}
|
51
|
+
auto stats_data = const_data_ptr_cast(stats.c_str());
|
51
52
|
switch (type.id()) {
|
52
53
|
case LogicalTypeId::BOOLEAN: {
|
53
54
|
if (stats.size() != sizeof(bool)) {
|
54
55
|
throw InternalException("Incorrect stats size for type BOOLEAN");
|
55
56
|
}
|
56
|
-
return Value::BOOLEAN(Load<bool>(
|
57
|
+
return Value::BOOLEAN(Load<bool>(stats_data));
|
57
58
|
}
|
58
59
|
case LogicalTypeId::UTINYINT:
|
59
60
|
case LogicalTypeId::USMALLINT:
|
@@ -61,29 +62,29 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
|
|
61
62
|
if (stats.size() != sizeof(uint32_t)) {
|
62
63
|
throw InternalException("Incorrect stats size for type UINTEGER");
|
63
64
|
}
|
64
|
-
return Value::UINTEGER(Load<uint32_t>(
|
65
|
+
return Value::UINTEGER(Load<uint32_t>(stats_data));
|
65
66
|
case LogicalTypeId::UBIGINT:
|
66
67
|
if (stats.size() != sizeof(uint64_t)) {
|
67
68
|
throw InternalException("Incorrect stats size for type UBIGINT");
|
68
69
|
}
|
69
|
-
return Value::UBIGINT(Load<uint64_t>(
|
70
|
+
return Value::UBIGINT(Load<uint64_t>(stats_data));
|
70
71
|
case LogicalTypeId::TINYINT:
|
71
72
|
case LogicalTypeId::SMALLINT:
|
72
73
|
case LogicalTypeId::INTEGER:
|
73
74
|
if (stats.size() != sizeof(int32_t)) {
|
74
75
|
throw InternalException("Incorrect stats size for type INTEGER");
|
75
76
|
}
|
76
|
-
return Value::INTEGER(Load<int32_t>(
|
77
|
+
return Value::INTEGER(Load<int32_t>(stats_data));
|
77
78
|
case LogicalTypeId::BIGINT:
|
78
79
|
if (stats.size() != sizeof(int64_t)) {
|
79
80
|
throw InternalException("Incorrect stats size for type BIGINT");
|
80
81
|
}
|
81
|
-
return Value::BIGINT(Load<int64_t>(
|
82
|
+
return Value::BIGINT(Load<int64_t>(stats_data));
|
82
83
|
case LogicalTypeId::FLOAT: {
|
83
84
|
if (stats.size() != sizeof(float)) {
|
84
85
|
throw InternalException("Incorrect stats size for type FLOAT");
|
85
86
|
}
|
86
|
-
auto val = Load<float>(
|
87
|
+
auto val = Load<float>(stats_data);
|
87
88
|
if (!Value::FloatIsFinite(val)) {
|
88
89
|
return Value();
|
89
90
|
}
|
@@ -93,7 +94,7 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
|
|
93
94
|
if (stats.size() != sizeof(double)) {
|
94
95
|
throw InternalException("Incorrect stats size for type DOUBLE");
|
95
96
|
}
|
96
|
-
auto val = Load<double>(
|
97
|
+
auto val = Load<double>(stats_data);
|
97
98
|
if (!Value::DoubleIsFinite(val)) {
|
98
99
|
return Value();
|
99
100
|
}
|
@@ -107,13 +108,13 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
|
|
107
108
|
if (stats.size() != sizeof(int32_t)) {
|
108
109
|
throw InternalException("Incorrect stats size for type %s", type.ToString());
|
109
110
|
}
|
110
|
-
return Value::DECIMAL(Load<int32_t>(
|
111
|
+
return Value::DECIMAL(Load<int32_t>(stats_data), width, scale);
|
111
112
|
}
|
112
113
|
case Type::INT64: {
|
113
114
|
if (stats.size() != sizeof(int64_t)) {
|
114
115
|
throw InternalException("Incorrect stats size for type %s", type.ToString());
|
115
116
|
}
|
116
|
-
return Value::DECIMAL(Load<int64_t>(
|
117
|
+
return Value::DECIMAL(Load<int64_t>(stats_data), width, scale);
|
117
118
|
}
|
118
119
|
case Type::BYTE_ARRAY:
|
119
120
|
case Type::FIXED_LEN_BYTE_ARRAY:
|
@@ -122,21 +123,17 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
|
|
122
123
|
}
|
123
124
|
switch (type.InternalType()) {
|
124
125
|
case PhysicalType::INT16:
|
125
|
-
return Value::DECIMAL(
|
126
|
-
|
127
|
-
width, scale);
|
126
|
+
return Value::DECIMAL(ParquetDecimalUtils::ReadDecimalValue<int16_t>(stats_data, stats.size()), width,
|
127
|
+
scale);
|
128
128
|
case PhysicalType::INT32:
|
129
|
-
return Value::DECIMAL(
|
130
|
-
|
131
|
-
width, scale);
|
129
|
+
return Value::DECIMAL(ParquetDecimalUtils::ReadDecimalValue<int32_t>(stats_data, stats.size()), width,
|
130
|
+
scale);
|
132
131
|
case PhysicalType::INT64:
|
133
|
-
return Value::DECIMAL(
|
134
|
-
|
135
|
-
width, scale);
|
132
|
+
return Value::DECIMAL(ParquetDecimalUtils::ReadDecimalValue<int64_t>(stats_data, stats.size()), width,
|
133
|
+
scale);
|
136
134
|
case PhysicalType::INT128:
|
137
|
-
return Value::DECIMAL(
|
138
|
-
|
139
|
-
width, scale);
|
135
|
+
return Value::DECIMAL(ParquetDecimalUtils::ReadDecimalValue<hugeint_t>(stats_data, stats.size()), width,
|
136
|
+
scale);
|
140
137
|
default:
|
141
138
|
throw InternalException("Unsupported internal type for decimal");
|
142
139
|
}
|
@@ -155,14 +152,14 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
|
|
155
152
|
if (stats.size() != sizeof(int32_t)) {
|
156
153
|
throw InternalException("Incorrect stats size for type DATE");
|
157
154
|
}
|
158
|
-
return Value::DATE(date_t(Load<int32_t>(
|
155
|
+
return Value::DATE(date_t(Load<int32_t>(stats_data)));
|
159
156
|
case LogicalTypeId::TIME:
|
160
157
|
case LogicalTypeId::TIME_TZ: {
|
161
158
|
int64_t val;
|
162
159
|
if (stats.size() == sizeof(int32_t)) {
|
163
|
-
val = Load<int32_t>(
|
160
|
+
val = Load<int32_t>(stats_data);
|
164
161
|
} else if (stats.size() == sizeof(int64_t)) {
|
165
|
-
val = Load<int64_t>(
|
162
|
+
val = Load<int64_t>(stats_data);
|
166
163
|
} else {
|
167
164
|
throw InternalException("Incorrect stats size for type TIME");
|
168
165
|
}
|
@@ -190,13 +187,13 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
|
|
190
187
|
if (stats.size() != sizeof(Int96)) {
|
191
188
|
throw InternalException("Incorrect stats size for type TIMESTAMP");
|
192
189
|
}
|
193
|
-
return Value::TIMESTAMP(ImpalaTimestampToTimestamp(Load<Int96>(
|
190
|
+
return Value::TIMESTAMP(ImpalaTimestampToTimestamp(Load<Int96>(stats_data)));
|
194
191
|
} else {
|
195
192
|
D_ASSERT(schema_ele.type == Type::INT64);
|
196
193
|
if (stats.size() != sizeof(int64_t)) {
|
197
194
|
throw InternalException("Incorrect stats size for type TIMESTAMP");
|
198
195
|
}
|
199
|
-
auto val = Load<int64_t>(
|
196
|
+
auto val = Load<int64_t>(stats_data);
|
200
197
|
if (schema_ele.__isset.logicalType && schema_ele.logicalType.__isset.TIMESTAMP) {
|
201
198
|
// logical type
|
202
199
|
if (schema_ele.logicalType.TIMESTAMP.unit.__isset.MILLIS) {
|
@@ -17,7 +17,7 @@ static constexpr int64_t NANOSECONDS_PER_MICRO = 1000LL;
|
|
17
17
|
|
18
18
|
static int64_t ImpalaTimestampToMicroseconds(const Int96 &impala_timestamp) {
|
19
19
|
int64_t days_since_epoch = impala_timestamp.value[2] - JULIAN_TO_UNIX_EPOCH_DAYS;
|
20
|
-
auto nanoseconds = Load<int64_t>((
|
20
|
+
auto nanoseconds = Load<int64_t>(const_data_ptr_cast(impala_timestamp.value));
|
21
21
|
auto microseconds = nanoseconds / NANOSECONDS_PER_MICRO;
|
22
22
|
return days_since_epoch * MICROSECONDS_PER_DAY + microseconds;
|
23
23
|
}
|
@@ -35,7 +35,7 @@ Int96 TimestampToImpalaTimestamp(timestamp_t &ts) {
|
|
35
35
|
// first two uint32 in Int96 are nanoseconds since midnights
|
36
36
|
// last uint32 is number of days since year 4713 BC ("Julian date")
|
37
37
|
Int96 impala_ts;
|
38
|
-
Store<uint64_t>(ms_since_midnight * 1000000, (
|
38
|
+
Store<uint64_t>(ms_since_midnight * 1000000, data_ptr_cast(impala_ts.value));
|
39
39
|
impala_ts.value[2] = days_since_epoch + JULIAN_TO_UNIX_EPOCH_DAYS;
|
40
40
|
return impala_ts;
|
41
41
|
}
|
@@ -45,7 +45,7 @@ public:
|
|
45
45
|
}
|
46
46
|
|
47
47
|
void write_virt(const uint8_t *buf, uint32_t len) override {
|
48
|
-
serializer.WriteData((
|
48
|
+
serializer.WriteData(const_data_ptr_cast(buf), len);
|
49
49
|
}
|
50
50
|
|
51
51
|
private:
|
@@ -232,7 +232,7 @@ ParquetWriter::ParquetWriter(FileSystem &fs, string file_name_p, vector<LogicalT
|
|
232
232
|
writer = make_uniq<BufferedFileWriter>(fs, file_name.c_str(),
|
233
233
|
FileFlags::FILE_FLAGS_WRITE | FileFlags::FILE_FLAGS_FILE_CREATE_NEW);
|
234
234
|
// parquet files start with the string "PAR1"
|
235
|
-
writer->WriteData((
|
235
|
+
writer->WriteData(const_data_ptr_cast("PAR1"), 4);
|
236
236
|
TCompactProtocolFactoryT<MyTransport> tproto_factory;
|
237
237
|
protocol = tproto_factory.getProtocol(make_shared<MyTransport>(*writer));
|
238
238
|
|
@@ -327,7 +327,7 @@ void ParquetWriter::Finalize() {
|
|
327
327
|
writer->Write<uint32_t>(writer->GetTotalWritten() - start_offset);
|
328
328
|
|
329
329
|
// parquet files also end with the string "PAR1"
|
330
|
-
writer->WriteData((
|
330
|
+
writer->WriteData(const_data_ptr_cast("PAR1"), 4);
|
331
331
|
|
332
332
|
// flush to disk
|
333
333
|
writer->Sync();
|
@@ -61,9 +61,9 @@ bool ZstdStreamWrapper::Read(StreamData &sd) {
|
|
61
61
|
throw IOException(duckdb_zstd::ZSTD_getErrorName(res));
|
62
62
|
}
|
63
63
|
|
64
|
-
sd.in_buff_start = (data_ptr_t)in_buffer.src + in_buffer.pos;
|
65
|
-
sd.in_buff_end = (data_ptr_t)in_buffer.src + in_buffer.size;
|
66
|
-
sd.out_buff_end = (data_ptr_t)out_buffer.dst + out_buffer.pos;
|
64
|
+
sd.in_buff_start = (data_ptr_t)in_buffer.src + in_buffer.pos; // NOLINT
|
65
|
+
sd.in_buff_end = (data_ptr_t)in_buffer.src + in_buffer.size; // NOLINT
|
66
|
+
sd.out_buff_end = (data_ptr_t)out_buffer.dst + out_buffer.pos; // NOLINT
|
67
67
|
return false;
|
68
68
|
}
|
69
69
|
|
@@ -42,7 +42,7 @@ private:
|
|
42
42
|
};
|
43
43
|
|
44
44
|
CatalogSet::CatalogSet(Catalog &catalog_p, unique_ptr<DefaultGenerator> defaults)
|
45
|
-
: catalog((
|
45
|
+
: catalog(catalog_p.Cast<DuckCatalog>()), defaults(std::move(defaults)) {
|
46
46
|
D_ASSERT(catalog_p.IsDuckCatalog());
|
47
47
|
}
|
48
48
|
CatalogSet::~CatalogSet() {
|
@@ -220,8 +220,8 @@ void DependencyManager::AddOwnership(CatalogTransaction transaction, CatalogEntr
|
|
220
220
|
// Emplace guarantees that the same object cannot be inserted twice in the unordered_set
|
221
221
|
// In the case AddOwnership is called twice, because of emplace, the object will not be repeated in the set.
|
222
222
|
// We use an automatic dependency because if the Owner gets deleted, then the owned objects are also deleted
|
223
|
-
dependents_map[owner].emplace(
|
224
|
-
dependents_map[entry].emplace(
|
223
|
+
dependents_map[owner].emplace(entry, DependencyType::DEPENDENCY_OWNS);
|
224
|
+
dependents_map[entry].emplace(owner, DependencyType::DEPENDENCY_OWNED_BY);
|
225
225
|
dependencies_map[owner].emplace(entry);
|
226
226
|
}
|
227
227
|
|
@@ -162,8 +162,8 @@ struct ArrowScalarBaseData {
|
|
162
162
|
|
163
163
|
// append the main data
|
164
164
|
append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(TGT) * size);
|
165
|
-
auto data = (
|
166
|
-
auto result_data =
|
165
|
+
auto data = UnifiedVectorFormat::GetData<SRC>(format);
|
166
|
+
auto result_data = append_data.main_buffer.GetData<TGT>();
|
167
167
|
|
168
168
|
for (idx_t i = from; i < to; i++) {
|
169
169
|
auto source_idx = format.sel->get_index(i);
|
@@ -210,8 +210,8 @@ struct ArrowEnumData : public ArrowScalarBaseData<TGT> {
|
|
210
210
|
|
211
211
|
// resize the offset buffer - the offset buffer holds the offsets into the child array
|
212
212
|
append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(uint32_t) * (size + 1));
|
213
|
-
auto data =
|
214
|
-
auto offset_data =
|
213
|
+
auto data = FlatVector::GetData<string_t>(input);
|
214
|
+
auto offset_data = append_data.main_buffer.GetData<uint32_t>();
|
215
215
|
if (append_data.row_count == 0) {
|
216
216
|
// first entry
|
217
217
|
offset_data[0] = 0;
|
@@ -269,10 +269,10 @@ struct ArrowBoolData {
|
|
269
269
|
// we initialize both the validity and the bit set to 1's
|
270
270
|
ResizeValidity(append_data.validity, append_data.row_count + size);
|
271
271
|
ResizeValidity(append_data.main_buffer, append_data.row_count + size);
|
272
|
-
auto data = (
|
272
|
+
auto data = UnifiedVectorFormat::GetData<bool>(format);
|
273
273
|
|
274
|
-
auto result_data =
|
275
|
-
auto validity_data =
|
274
|
+
auto result_data = append_data.main_buffer.GetData<uint8_t>();
|
275
|
+
auto validity_data = append_data.validity.GetData<uint8_t>();
|
276
276
|
uint8_t current_bit;
|
277
277
|
idx_t current_byte;
|
278
278
|
GetBitPosition(append_data.row_count, current_byte, current_bit);
|
@@ -318,7 +318,7 @@ struct ArrowUUIDConverter {
|
|
318
318
|
|
319
319
|
template <class SRC>
|
320
320
|
static void WriteData(data_ptr_t target, SRC input) {
|
321
|
-
UUID::ToString(input, (
|
321
|
+
UUID::ToString(input, char_ptr_cast(target));
|
322
322
|
}
|
323
323
|
};
|
324
324
|
|
@@ -341,8 +341,8 @@ struct ArrowVarcharData {
|
|
341
341
|
|
342
342
|
// resize the offset buffer - the offset buffer holds the offsets into the child array
|
343
343
|
append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(BUFTYPE) * (size + 1));
|
344
|
-
auto data = (
|
345
|
-
auto offset_data =
|
344
|
+
auto data = UnifiedVectorFormat::GetData<SRC>(format);
|
345
|
+
auto offset_data = append_data.main_buffer.GetData<BUFTYPE>();
|
346
346
|
if (append_data.row_count == 0) {
|
347
347
|
// first entry
|
348
348
|
offset_data[0] = 0;
|
@@ -441,8 +441,8 @@ void AppendListOffsets(ArrowAppendData &append_data, UnifiedVectorFormat &format
|
|
441
441
|
// resize the offset buffer - the offset buffer holds the offsets into the child array
|
442
442
|
idx_t size = to - from;
|
443
443
|
append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(uint32_t) * (size + 1));
|
444
|
-
auto data = (
|
445
|
-
auto offset_data =
|
444
|
+
auto data = UnifiedVectorFormat::GetData<list_entry_t>(format);
|
445
|
+
auto offset_data = append_data.main_buffer.GetData<uint32_t>();
|
446
446
|
if (append_data.row_count == 0) {
|
447
447
|
// first entry
|
448
448
|
offset_data[0] = 0;
|
@@ -77,7 +77,7 @@ int ResultArrowArrayStreamWrapper::MyStreamGetSchema(struct ArrowArrayStream *st
|
|
77
77
|
if (!stream->release) {
|
78
78
|
return -1;
|
79
79
|
}
|
80
|
-
auto my_stream =
|
80
|
+
auto my_stream = reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
|
81
81
|
if (!my_stream->column_types.empty()) {
|
82
82
|
ArrowConverter::ToArrowSchema(out, my_stream->column_types, my_stream->column_names,
|
83
83
|
my_stream->timezone_config);
|
@@ -90,7 +90,7 @@ int ResultArrowArrayStreamWrapper::MyStreamGetSchema(struct ArrowArrayStream *st
|
|
90
90
|
return -1;
|
91
91
|
}
|
92
92
|
if (result.type == QueryResultType::STREAM_RESULT) {
|
93
|
-
auto &stream_result = (
|
93
|
+
auto &stream_result = result.Cast<StreamQueryResult>();
|
94
94
|
if (!stream_result.IsOpen()) {
|
95
95
|
my_stream->last_error = PreservedError("Query Stream is closed");
|
96
96
|
return -1;
|
@@ -108,14 +108,14 @@ int ResultArrowArrayStreamWrapper::MyStreamGetNext(struct ArrowArrayStream *stre
|
|
108
108
|
if (!stream->release) {
|
109
109
|
return -1;
|
110
110
|
}
|
111
|
-
auto my_stream =
|
111
|
+
auto my_stream = reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
|
112
112
|
auto &result = *my_stream->result;
|
113
113
|
if (result.HasError()) {
|
114
114
|
my_stream->last_error = result.GetErrorObject();
|
115
115
|
return -1;
|
116
116
|
}
|
117
117
|
if (result.type == QueryResultType::STREAM_RESULT) {
|
118
|
-
auto &stream_result = (
|
118
|
+
auto &stream_result = result.Cast<StreamQueryResult>();
|
119
119
|
if (!stream_result.IsOpen()) {
|
120
120
|
// Nothing to output
|
121
121
|
out->release = nullptr;
|
@@ -145,7 +145,7 @@ void ResultArrowArrayStreamWrapper::MyStreamRelease(struct ArrowArrayStream *str
|
|
145
145
|
return;
|
146
146
|
}
|
147
147
|
stream->release = nullptr;
|
148
|
-
delete
|
148
|
+
delete reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
|
149
149
|
}
|
150
150
|
|
151
151
|
const char *ResultArrowArrayStreamWrapper::MyStreamGetLastError(struct ArrowArrayStream *stream) {
|
@@ -153,7 +153,7 @@ const char *ResultArrowArrayStreamWrapper::MyStreamGetLastError(struct ArrowArra
|
|
153
153
|
return "stream was released";
|
154
154
|
}
|
155
155
|
D_ASSERT(stream->private_data);
|
156
|
-
auto my_stream =
|
156
|
+
auto my_stream = reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
|
157
157
|
return my_stream->last_error.Message().c_str();
|
158
158
|
}
|
159
159
|
|
@@ -175,7 +175,7 @@ ResultArrowArrayStreamWrapper::ResultArrowArrayStreamWrapper(unique_ptr<QueryRes
|
|
175
175
|
|
176
176
|
bool ArrowUtil::TryFetchNext(QueryResult &result, unique_ptr<DataChunk> &chunk, PreservedError &error) {
|
177
177
|
if (result.type == QueryResultType::STREAM_RESULT) {
|
178
|
-
auto &stream_result = (
|
178
|
+
auto &stream_result = result.Cast<StreamQueryResult>();
|
179
179
|
if (!stream_result.IsOpen()) {
|
180
180
|
return true;
|
181
181
|
}
|
@@ -9,7 +9,7 @@ hash_t Checksum(uint64_t x) {
|
|
9
9
|
|
10
10
|
uint64_t Checksum(uint8_t *buffer, size_t size) {
|
11
11
|
uint64_t result = 5381;
|
12
|
-
uint64_t *ptr =
|
12
|
+
uint64_t *ptr = reinterpret_cast<uint64_t *>(buffer);
|
13
13
|
size_t i;
|
14
14
|
// for efficiency, we first checksum uint64_t values
|
15
15
|
for (i = 0; i < size / 8; i++) {
|
@@ -115,28 +115,28 @@ void CompressedFile::Close() {
|
|
115
115
|
}
|
116
116
|
|
117
117
|
int64_t CompressedFileSystem::Read(FileHandle &handle, void *buffer, int64_t nr_bytes) {
|
118
|
-
auto &compressed_file = (
|
118
|
+
auto &compressed_file = handle.Cast<CompressedFile>();
|
119
119
|
return compressed_file.ReadData(buffer, nr_bytes);
|
120
120
|
}
|
121
121
|
|
122
122
|
int64_t CompressedFileSystem::Write(FileHandle &handle, void *buffer, int64_t nr_bytes) {
|
123
|
-
auto &compressed_file = (
|
124
|
-
return compressed_file.WriteData((
|
123
|
+
auto &compressed_file = handle.Cast<CompressedFile>();
|
124
|
+
return compressed_file.WriteData(data_ptr_cast(buffer), nr_bytes);
|
125
125
|
}
|
126
126
|
|
127
127
|
void CompressedFileSystem::Reset(FileHandle &handle) {
|
128
|
-
auto &compressed_file = (
|
128
|
+
auto &compressed_file = handle.Cast<CompressedFile>();
|
129
129
|
compressed_file.child_handle->Reset();
|
130
130
|
compressed_file.Initialize(compressed_file.write);
|
131
131
|
}
|
132
132
|
|
133
133
|
int64_t CompressedFileSystem::GetFileSize(FileHandle &handle) {
|
134
|
-
auto &compressed_file = (
|
134
|
+
auto &compressed_file = handle.Cast<CompressedFile>();
|
135
135
|
return compressed_file.child_handle->GetFileSize();
|
136
136
|
}
|
137
137
|
|
138
138
|
bool CompressedFileSystem::OnDiskFile(FileHandle &handle) {
|
139
|
-
auto &compressed_file = (
|
139
|
+
auto &compressed_file = handle.Cast<CompressedFile>();
|
140
140
|
return compressed_file.child_handle->OnDiskFile();
|
141
141
|
}
|
142
142
|
|
@@ -30,7 +30,7 @@ static void ByteReverse(unsigned char *buf, unsigned longs) {
|
|
30
30
|
uint32_t t;
|
31
31
|
do {
|
32
32
|
t = (uint32_t)((unsigned)buf[3] << 8 | buf[2]) << 16 | ((unsigned)buf[1] << 8 | buf[0]);
|
33
|
-
*
|
33
|
+
*reinterpret_cast<uint32_t *>(buf) = t;
|
34
34
|
buf += 4;
|
35
35
|
} while (--longs);
|
36
36
|
}
|
@@ -174,7 +174,7 @@ void MD5Context::MD5Update(const_data_ptr_t input, idx_t len) {
|
|
174
174
|
}
|
175
175
|
memcpy(p, input, t);
|
176
176
|
ByteReverse(in, 16);
|
177
|
-
MD5Transform(buf,
|
177
|
+
MD5Transform(buf, reinterpret_cast<uint32_t *>(in));
|
178
178
|
input += t;
|
179
179
|
len -= t;
|
180
180
|
}
|
@@ -184,7 +184,7 @@ void MD5Context::MD5Update(const_data_ptr_t input, idx_t len) {
|
|
184
184
|
while (len >= 64) {
|
185
185
|
memcpy(in, input, 64);
|
186
186
|
ByteReverse(in, 16);
|
187
|
-
MD5Transform(buf,
|
187
|
+
MD5Transform(buf, reinterpret_cast<uint32_t *>(in));
|
188
188
|
input += 64;
|
189
189
|
len -= 64;
|
190
190
|
}
|
@@ -217,7 +217,7 @@ void MD5Context::Finish(data_ptr_t out_digest) {
|
|
217
217
|
/* Two lots of padding: Pad the first block to 64 bytes */
|
218
218
|
memset(p, 0, count);
|
219
219
|
ByteReverse(in, 16);
|
220
|
-
MD5Transform(buf,
|
220
|
+
MD5Transform(buf, reinterpret_cast<uint32_t *>(in));
|
221
221
|
|
222
222
|
/* Now fill the next block with 56 bytes */
|
223
223
|
memset(in, 0, 56);
|
@@ -228,11 +228,11 @@ void MD5Context::Finish(data_ptr_t out_digest) {
|
|
228
228
|
ByteReverse(in, 14);
|
229
229
|
|
230
230
|
/* Append length in bits and transform */
|
231
|
-
(
|
232
|
-
(
|
231
|
+
(reinterpret_cast<uint32_t *>(in))[14] = bits[0];
|
232
|
+
(reinterpret_cast<uint32_t *>(in))[15] = bits[1];
|
233
233
|
|
234
|
-
MD5Transform(buf,
|
235
|
-
ByteReverse(
|
234
|
+
MD5Transform(buf, reinterpret_cast<uint32_t *>(in));
|
235
|
+
ByteReverse(reinterpret_cast<unsigned char *>(buf), 4);
|
236
236
|
memcpy(out_digest, buf, 16);
|
237
237
|
}
|
238
238
|
|
@@ -260,7 +260,7 @@ string MD5Context::FinishHex() {
|
|
260
260
|
}
|
261
261
|
|
262
262
|
void MD5Context::Add(const char *data) {
|
263
|
-
MD5Update((
|
263
|
+
MD5Update(const_data_ptr_cast(data), strlen(data));
|
264
264
|
}
|
265
265
|
|
266
266
|
} // namespace duckdb
|
@@ -114,9 +114,22 @@ string FileSystem::GetEnvVariable(const string &env) {
|
|
114
114
|
return WindowsUtil::UnicodeToUTF8(res_w);
|
115
115
|
}
|
116
116
|
|
117
|
+
static bool StartsWithSingleBackslash(const string &path) {
|
118
|
+
if (path.size() < 2) {
|
119
|
+
return false;
|
120
|
+
}
|
121
|
+
if (path[0] != '/' && path[0] != '\\') {
|
122
|
+
return false;
|
123
|
+
}
|
124
|
+
if (path[1] == '/' || path[1] == '\\') {
|
125
|
+
return false;
|
126
|
+
}
|
127
|
+
return true;
|
128
|
+
}
|
129
|
+
|
117
130
|
bool FileSystem::IsPathAbsolute(const string &path) {
|
118
131
|
// 1) A single backslash or forward-slash
|
119
|
-
if (
|
132
|
+
if (StartsWithSingleBackslash(path)) {
|
120
133
|
return true;
|
121
134
|
}
|
122
135
|
// 2) A disk designator with a backslash (e.g., C:\ or C:/)
|
@@ -131,7 +144,7 @@ bool FileSystem::IsPathAbsolute(const string &path) {
|
|
131
144
|
string FileSystem::NormalizeAbsolutePath(const string &path) {
|
132
145
|
D_ASSERT(IsPathAbsolute(path));
|
133
146
|
auto result = StringUtil::Lower(FileSystem::ConvertSeparators(path));
|
134
|
-
if (
|
147
|
+
if (StartsWithSingleBackslash(result)) {
|
135
148
|
// Path starts with a single backslash or forward slash
|
136
149
|
// prepend drive letter
|
137
150
|
return GetWorkingDirectory().substr(0, 2) + result;
|