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
@@ -28,6 +28,11 @@ static void ShiftRight(unsigned char *ar, int size, int shift) {
|
|
28
28
|
}
|
29
29
|
}
|
30
30
|
|
31
|
+
template <class T>
|
32
|
+
T *ArrowBufferData(ArrowArray &array, idx_t buffer_idx) {
|
33
|
+
return (T *)array.buffers[buffer_idx]; // NOLINT
|
34
|
+
}
|
35
|
+
|
31
36
|
static void GetValidityMask(ValidityMask &mask, ArrowArray &array, ArrowScanLocalState &scan_state, idx_t size,
|
32
37
|
int64_t nested_offset = -1, bool add_null = false) {
|
33
38
|
// In certains we don't need to or cannot copy arrow's validity mask to duckdb.
|
@@ -46,18 +51,18 @@ static void GetValidityMask(ValidityMask &mask, ArrowArray &array, ArrowScanLoca
|
|
46
51
|
auto n_bitmask_bytes = (size + 8 - 1) / 8;
|
47
52
|
if (bit_offset % 8 == 0) {
|
48
53
|
//! just memcpy nullmask
|
49
|
-
memcpy((void *)mask.GetData(), (
|
54
|
+
memcpy((void *)mask.GetData(), ArrowBufferData<uint8_t>(array, 0) + bit_offset / 8, n_bitmask_bytes);
|
50
55
|
} else {
|
51
56
|
//! need to re-align nullmask
|
52
57
|
vector<uint8_t> temp_nullmask(n_bitmask_bytes + 1);
|
53
|
-
memcpy(temp_nullmask.data(), (
|
58
|
+
memcpy(temp_nullmask.data(), ArrowBufferData<uint8_t>(array, 0) + bit_offset / 8, n_bitmask_bytes + 1);
|
54
59
|
ShiftRight(temp_nullmask.data(), n_bitmask_bytes + 1,
|
55
60
|
bit_offset % 8); //! why this has to be a right shift is a mystery to me
|
56
|
-
memcpy((void *)mask.GetData(), (
|
61
|
+
memcpy((void *)mask.GetData(), data_ptr_cast(temp_nullmask.data()), n_bitmask_bytes);
|
57
62
|
}
|
58
63
|
#else
|
59
64
|
auto byte_offset = bit_offset / 8;
|
60
|
-
auto source_data = (
|
65
|
+
auto source_data = ArrowBufferData<uint8_t>(array, 0);
|
61
66
|
bit_offset %= 8;
|
62
67
|
for (idx_t i = 0; i < size; i++) {
|
63
68
|
mask.Set(i, source_data[byte_offset] & (1 << bit_offset));
|
@@ -115,9 +120,9 @@ static void ArrowToDuckDBList(Vector &vector, ArrowArray &array, ArrowScanLocalS
|
|
115
120
|
}
|
116
121
|
list_size = start_offset + cur_offset;
|
117
122
|
} else if (original_type.first == ArrowVariableSizeType::NORMAL) {
|
118
|
-
auto offsets = (
|
123
|
+
auto offsets = ArrowBufferData<uint32_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
119
124
|
if (nested_offset != -1) {
|
120
|
-
offsets = (
|
125
|
+
offsets = ArrowBufferData<uint32_t>(array, 1) + nested_offset;
|
121
126
|
}
|
122
127
|
start_offset = offsets[0];
|
123
128
|
auto list_data = FlatVector::GetData<list_entry_t>(vector);
|
@@ -129,9 +134,9 @@ static void ArrowToDuckDBList(Vector &vector, ArrowArray &array, ArrowScanLocalS
|
|
129
134
|
}
|
130
135
|
list_size = offsets[size];
|
131
136
|
} else {
|
132
|
-
auto offsets = (
|
137
|
+
auto offsets = ArrowBufferData<uint64_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
133
138
|
if (nested_offset != -1) {
|
134
|
-
offsets = (
|
139
|
+
offsets = ArrowBufferData<uint64_t>(array, 1) + nested_offset;
|
135
140
|
}
|
136
141
|
start_offset = offsets[0];
|
137
142
|
auto list_data = FlatVector::GetData<list_entry_t>(vector);
|
@@ -179,7 +184,7 @@ static void ArrowToDuckDBBlob(Vector &vector, ArrowArray &array, ArrowScanLocalS
|
|
179
184
|
if (nested_offset != -1) {
|
180
185
|
offset = original_type.second * nested_offset;
|
181
186
|
}
|
182
|
-
auto cdata = (
|
187
|
+
auto cdata = ArrowBufferData<char>(array, 1);
|
183
188
|
for (idx_t row_idx = 0; row_idx < size; row_idx++) {
|
184
189
|
if (FlatVector::IsNull(vector, row_idx)) {
|
185
190
|
continue;
|
@@ -190,11 +195,11 @@ static void ArrowToDuckDBBlob(Vector &vector, ArrowArray &array, ArrowScanLocalS
|
|
190
195
|
offset += blob_len;
|
191
196
|
}
|
192
197
|
} else if (original_type.first == ArrowVariableSizeType::NORMAL) {
|
193
|
-
auto offsets = (
|
198
|
+
auto offsets = ArrowBufferData<uint32_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
194
199
|
if (nested_offset != -1) {
|
195
|
-
offsets = (
|
200
|
+
offsets = ArrowBufferData<uint32_t>(array, 1) + array.offset + nested_offset;
|
196
201
|
}
|
197
|
-
auto cdata = (
|
202
|
+
auto cdata = ArrowBufferData<char>(array, 2);
|
198
203
|
for (idx_t row_idx = 0; row_idx < size; row_idx++) {
|
199
204
|
if (FlatVector::IsNull(vector, row_idx)) {
|
200
205
|
continue;
|
@@ -205,14 +210,14 @@ static void ArrowToDuckDBBlob(Vector &vector, ArrowArray &array, ArrowScanLocalS
|
|
205
210
|
}
|
206
211
|
} else {
|
207
212
|
//! Check if last offset is higher than max uint32
|
208
|
-
if ((
|
213
|
+
if (ArrowBufferData<uint64_t>(array, 1)[array.length] > NumericLimits<uint32_t>::Maximum()) { // LCOV_EXCL_START
|
209
214
|
throw ConversionException("DuckDB does not support Blobs over 4GB");
|
210
215
|
} // LCOV_EXCL_STOP
|
211
|
-
auto offsets = (
|
216
|
+
auto offsets = ArrowBufferData<uint64_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
212
217
|
if (nested_offset != -1) {
|
213
|
-
offsets = (
|
218
|
+
offsets = ArrowBufferData<uint64_t>(array, 1) + array.offset + nested_offset;
|
214
219
|
}
|
215
|
-
auto cdata = (
|
220
|
+
auto cdata = ArrowBufferData<char>(array, 2);
|
216
221
|
for (idx_t row_idx = 0; row_idx < size; row_idx++) {
|
217
222
|
if (FlatVector::IsNull(vector, row_idx)) {
|
218
223
|
continue;
|
@@ -263,9 +268,9 @@ static void SetVectorString(Vector &vector, idx_t size, char *cdata, T *offsets)
|
|
263
268
|
static void DirectConversion(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state,
|
264
269
|
int64_t nested_offset) {
|
265
270
|
auto internal_type = GetTypeIdSize(vector.GetType().InternalType());
|
266
|
-
auto data_ptr = (
|
271
|
+
auto data_ptr = ArrowBufferData<data_t>(array, 1) + internal_type * (scan_state.chunk_offset + array.offset);
|
267
272
|
if (nested_offset != -1) {
|
268
|
-
data_ptr = (
|
273
|
+
data_ptr = ArrowBufferData<data_t>(array, 1) + internal_type * (array.offset + nested_offset);
|
269
274
|
}
|
270
275
|
FlatVector::SetData(vector, data_ptr);
|
271
276
|
}
|
@@ -273,7 +278,7 @@ static void DirectConversion(Vector &vector, ArrowArray &array, ArrowScanLocalSt
|
|
273
278
|
template <class T>
|
274
279
|
static void TimeConversion(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state, int64_t nested_offset,
|
275
280
|
idx_t size, int64_t conversion) {
|
276
|
-
auto tgt_ptr =
|
281
|
+
auto tgt_ptr = FlatVector::GetData<dtime_t>(vector);
|
277
282
|
auto &validity_mask = FlatVector::Validity(vector);
|
278
283
|
auto src_ptr = (T *)array.buffers[1] + scan_state.chunk_offset + array.offset;
|
279
284
|
if (nested_offset != -1) {
|
@@ -291,11 +296,11 @@ static void TimeConversion(Vector &vector, ArrowArray &array, ArrowScanLocalStat
|
|
291
296
|
|
292
297
|
static void TimestampTZConversion(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state,
|
293
298
|
int64_t nested_offset, idx_t size, int64_t conversion) {
|
294
|
-
auto tgt_ptr =
|
299
|
+
auto tgt_ptr = FlatVector::GetData<timestamp_t>(vector);
|
295
300
|
auto &validity_mask = FlatVector::Validity(vector);
|
296
|
-
auto src_ptr = (
|
301
|
+
auto src_ptr = ArrowBufferData<int64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
297
302
|
if (nested_offset != -1) {
|
298
|
-
src_ptr = (
|
303
|
+
src_ptr = ArrowBufferData<int64_t>(array, 1) + nested_offset + array.offset;
|
299
304
|
}
|
300
305
|
for (idx_t row = 0; row < size; row++) {
|
301
306
|
if (!validity_mask.RowIsValid(row)) {
|
@@ -309,10 +314,10 @@ static void TimestampTZConversion(Vector &vector, ArrowArray &array, ArrowScanLo
|
|
309
314
|
|
310
315
|
static void IntervalConversionUs(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state,
|
311
316
|
int64_t nested_offset, idx_t size, int64_t conversion) {
|
312
|
-
auto tgt_ptr =
|
313
|
-
auto src_ptr = (
|
317
|
+
auto tgt_ptr = FlatVector::GetData<interval_t>(vector);
|
318
|
+
auto src_ptr = ArrowBufferData<int64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
314
319
|
if (nested_offset != -1) {
|
315
|
-
src_ptr = (
|
320
|
+
src_ptr = ArrowBufferData<int64_t>(array, 1) + nested_offset + array.offset;
|
316
321
|
}
|
317
322
|
for (idx_t row = 0; row < size; row++) {
|
318
323
|
tgt_ptr[row].days = 0;
|
@@ -325,10 +330,10 @@ static void IntervalConversionUs(Vector &vector, ArrowArray &array, ArrowScanLoc
|
|
325
330
|
|
326
331
|
static void IntervalConversionMonths(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state,
|
327
332
|
int64_t nested_offset, idx_t size) {
|
328
|
-
auto tgt_ptr =
|
329
|
-
auto src_ptr = (
|
333
|
+
auto tgt_ptr = FlatVector::GetData<interval_t>(vector);
|
334
|
+
auto src_ptr = ArrowBufferData<int32_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
330
335
|
if (nested_offset != -1) {
|
331
|
-
src_ptr = (
|
336
|
+
src_ptr = ArrowBufferData<int32_t>(array, 1) + nested_offset + array.offset;
|
332
337
|
}
|
333
338
|
for (idx_t row = 0; row < size; row++) {
|
334
339
|
tgt_ptr[row].days = 0;
|
@@ -339,10 +344,10 @@ static void IntervalConversionMonths(Vector &vector, ArrowArray &array, ArrowSca
|
|
339
344
|
|
340
345
|
static void IntervalConversionMonthDayNanos(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state,
|
341
346
|
int64_t nested_offset, idx_t size) {
|
342
|
-
auto tgt_ptr =
|
343
|
-
auto src_ptr = (
|
347
|
+
auto tgt_ptr = FlatVector::GetData<interval_t>(vector);
|
348
|
+
auto src_ptr = ArrowBufferData<ArrowInterval>(array, 1) + scan_state.chunk_offset + array.offset;
|
344
349
|
if (nested_offset != -1) {
|
345
|
-
src_ptr = (
|
350
|
+
src_ptr = ArrowBufferData<ArrowInterval>(array, 1) + nested_offset + array.offset;
|
346
351
|
}
|
347
352
|
for (idx_t row = 0; row < size; row++) {
|
348
353
|
tgt_ptr[row].days = src_ptr[row].days;
|
@@ -362,10 +367,10 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
362
367
|
case LogicalTypeId::BOOLEAN: {
|
363
368
|
//! Arrow bit-packs boolean values
|
364
369
|
//! Lets first figure out where we are in the source array
|
365
|
-
auto src_ptr = (
|
370
|
+
auto src_ptr = ArrowBufferData<uint8_t>(array, 1) + (scan_state.chunk_offset + array.offset) / 8;
|
366
371
|
|
367
372
|
if (nested_offset != -1) {
|
368
|
-
src_ptr = (
|
373
|
+
src_ptr = ArrowBufferData<uint8_t>(array, 1) + (nested_offset + array.offset) / 8;
|
369
374
|
}
|
370
375
|
auto tgt_ptr = (uint8_t *)FlatVector::GetData(vector);
|
371
376
|
int src_pos = 0;
|
@@ -407,17 +412,17 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
407
412
|
}
|
408
413
|
case LogicalTypeId::VARCHAR: {
|
409
414
|
auto original_type = arrow_convert_data[col_idx]->variable_sz_type[arrow_convert_idx.variable_sized_index++];
|
410
|
-
auto cdata = (
|
415
|
+
auto cdata = ArrowBufferData<char>(array, 2);
|
411
416
|
if (original_type.first == ArrowVariableSizeType::SUPER_SIZE) {
|
412
|
-
auto offsets = (
|
417
|
+
auto offsets = ArrowBufferData<uint64_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
413
418
|
if (nested_offset != -1) {
|
414
|
-
offsets = (
|
419
|
+
offsets = ArrowBufferData<uint64_t>(array, 1) + array.offset + nested_offset;
|
415
420
|
}
|
416
421
|
SetVectorString(vector, size, cdata, offsets);
|
417
422
|
} else {
|
418
|
-
auto offsets = (
|
423
|
+
auto offsets = ArrowBufferData<uint32_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
419
424
|
if (nested_offset != -1) {
|
420
|
-
offsets = (
|
425
|
+
offsets = ArrowBufferData<uint32_t>(array, 1) + array.offset + nested_offset;
|
421
426
|
}
|
422
427
|
SetVectorString(vector, size, cdata, offsets);
|
423
428
|
}
|
@@ -432,11 +437,11 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
432
437
|
}
|
433
438
|
case ArrowDateTimeType::MILLISECONDS: {
|
434
439
|
//! convert date from nanoseconds to days
|
435
|
-
auto src_ptr = (
|
440
|
+
auto src_ptr = ArrowBufferData<uint64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
436
441
|
if (nested_offset != -1) {
|
437
|
-
src_ptr = (
|
442
|
+
src_ptr = ArrowBufferData<uint64_t>(array, 1) + nested_offset + array.offset;
|
438
443
|
}
|
439
|
-
auto tgt_ptr =
|
444
|
+
auto tgt_ptr = FlatVector::GetData<date_t>(vector);
|
440
445
|
for (idx_t row = 0; row < size; row++) {
|
441
446
|
tgt_ptr[row] = date_t(int64_t(src_ptr[row]) / static_cast<int64_t>(1000 * 60 * 60 * 24));
|
442
447
|
}
|
@@ -463,10 +468,10 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
463
468
|
break;
|
464
469
|
}
|
465
470
|
case ArrowDateTimeType::NANOSECONDS: {
|
466
|
-
auto tgt_ptr =
|
467
|
-
auto src_ptr = (
|
471
|
+
auto tgt_ptr = FlatVector::GetData<dtime_t>(vector);
|
472
|
+
auto src_ptr = ArrowBufferData<int64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
468
473
|
if (nested_offset != -1) {
|
469
|
-
src_ptr = (
|
474
|
+
src_ptr = ArrowBufferData<int64_t>(array, 1) + nested_offset + array.offset;
|
470
475
|
}
|
471
476
|
for (idx_t row = 0; row < size; row++) {
|
472
477
|
tgt_ptr[row].micros = src_ptr[row] / 1000;
|
@@ -494,10 +499,10 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
494
499
|
break;
|
495
500
|
}
|
496
501
|
case ArrowDateTimeType::NANOSECONDS: {
|
497
|
-
auto tgt_ptr =
|
498
|
-
auto src_ptr = (
|
502
|
+
auto tgt_ptr = FlatVector::GetData<timestamp_t>(vector);
|
503
|
+
auto src_ptr = ArrowBufferData<int64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
499
504
|
if (nested_offset != -1) {
|
500
|
-
src_ptr = (
|
505
|
+
src_ptr = ArrowBufferData<int64_t>(array, 1) + nested_offset + array.offset;
|
501
506
|
}
|
502
507
|
for (idx_t row = 0; row < size; row++) {
|
503
508
|
tgt_ptr[row].value = src_ptr[row] / 1000;
|
@@ -526,10 +531,10 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
526
531
|
break;
|
527
532
|
}
|
528
533
|
case ArrowDateTimeType::NANOSECONDS: {
|
529
|
-
auto tgt_ptr =
|
530
|
-
auto src_ptr = (
|
534
|
+
auto tgt_ptr = FlatVector::GetData<interval_t>(vector);
|
535
|
+
auto src_ptr = ArrowBufferData<int64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
531
536
|
if (nested_offset != -1) {
|
532
|
-
src_ptr = (
|
537
|
+
src_ptr = ArrowBufferData<int64_t>(array, 1) + nested_offset + array.offset;
|
533
538
|
}
|
534
539
|
for (idx_t row = 0; row < size; row++) {
|
535
540
|
tgt_ptr[row].micros = src_ptr[row] / 1000;
|
@@ -554,13 +559,13 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
554
559
|
case LogicalTypeId::DECIMAL: {
|
555
560
|
auto val_mask = FlatVector::Validity(vector);
|
556
561
|
//! We have to convert from INT128
|
557
|
-
auto src_ptr = (
|
562
|
+
auto src_ptr = ArrowBufferData<hugeint_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
558
563
|
if (nested_offset != -1) {
|
559
|
-
src_ptr = (
|
564
|
+
src_ptr = ArrowBufferData<hugeint_t>(array, 1) + nested_offset + array.offset;
|
560
565
|
}
|
561
566
|
switch (vector.GetType().InternalType()) {
|
562
567
|
case PhysicalType::INT16: {
|
563
|
-
auto tgt_ptr =
|
568
|
+
auto tgt_ptr = FlatVector::GetData<int16_t>(vector);
|
564
569
|
for (idx_t row = 0; row < size; row++) {
|
565
570
|
if (val_mask.RowIsValid(row)) {
|
566
571
|
auto result = Hugeint::TryCast(src_ptr[row], tgt_ptr[row]);
|
@@ -571,7 +576,7 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
571
576
|
break;
|
572
577
|
}
|
573
578
|
case PhysicalType::INT32: {
|
574
|
-
auto tgt_ptr =
|
579
|
+
auto tgt_ptr = FlatVector::GetData<int32_t>(vector);
|
575
580
|
for (idx_t row = 0; row < size; row++) {
|
576
581
|
if (val_mask.RowIsValid(row)) {
|
577
582
|
auto result = Hugeint::TryCast(src_ptr[row], tgt_ptr[row]);
|
@@ -582,7 +587,7 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
582
587
|
break;
|
583
588
|
}
|
584
589
|
case PhysicalType::INT64: {
|
585
|
-
auto tgt_ptr =
|
590
|
+
auto tgt_ptr = FlatVector::GetData<int64_t>(vector);
|
586
591
|
for (idx_t row = 0; row < size; row++) {
|
587
592
|
if (val_mask.RowIsValid(row)) {
|
588
593
|
auto result = Hugeint::TryCast(src_ptr[row], tgt_ptr[row]);
|
@@ -593,8 +598,9 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
593
598
|
break;
|
594
599
|
}
|
595
600
|
case PhysicalType::INT128: {
|
596
|
-
FlatVector::SetData(vector,
|
597
|
-
|
601
|
+
FlatVector::SetData(vector,
|
602
|
+
ArrowBufferData<data_t>(array, 1) + GetTypeIdSize(vector.GetType().InternalType()) *
|
603
|
+
(scan_state.chunk_offset + array.offset));
|
598
604
|
break;
|
599
605
|
}
|
600
606
|
default:
|
@@ -645,7 +651,7 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
645
651
|
|
646
652
|
template <class T>
|
647
653
|
static void SetSelectionVectorLoop(SelectionVector &sel, data_ptr_t indices_p, idx_t size) {
|
648
|
-
auto indices =
|
654
|
+
auto indices = reinterpret_cast<T *>(indices_p);
|
649
655
|
for (idx_t row = 0; row < size; row++) {
|
650
656
|
sel.set_index(row, indices[row]);
|
651
657
|
}
|
@@ -654,7 +660,7 @@ static void SetSelectionVectorLoop(SelectionVector &sel, data_ptr_t indices_p, i
|
|
654
660
|
template <class T>
|
655
661
|
static void SetSelectionVectorLoopWithChecks(SelectionVector &sel, data_ptr_t indices_p, idx_t size) {
|
656
662
|
|
657
|
-
auto indices =
|
663
|
+
auto indices = reinterpret_cast<T *>(indices_p);
|
658
664
|
for (idx_t row = 0; row < size; row++) {
|
659
665
|
if (indices[row] > NumericLimits<uint32_t>::Maximum()) {
|
660
666
|
throw ConversionException("DuckDB only supports indices that fit on an uint32");
|
@@ -666,7 +672,7 @@ static void SetSelectionVectorLoopWithChecks(SelectionVector &sel, data_ptr_t in
|
|
666
672
|
template <class T>
|
667
673
|
static void SetMaskedSelectionVectorLoop(SelectionVector &sel, data_ptr_t indices_p, idx_t size, ValidityMask &mask,
|
668
674
|
idx_t last_element_pos) {
|
669
|
-
auto indices =
|
675
|
+
auto indices = reinterpret_cast<T *>(indices_p);
|
670
676
|
for (idx_t row = 0; row < size; row++) {
|
671
677
|
if (mask.RowIsValid(row)) {
|
672
678
|
sel.set_index(row, indices[row]);
|
@@ -782,7 +788,7 @@ static void ColumnArrowToDuckDBDictionary(Vector &vector, ArrowArray &array, Arr
|
|
782
788
|
}
|
783
789
|
auto dictionary_type = arrow_convert_data[col_idx]->dictionary_type;
|
784
790
|
//! Get Pointer to Indices of Dictionary
|
785
|
-
auto indices = (
|
791
|
+
auto indices = ArrowBufferData<data_t>(array, 1) +
|
786
792
|
GetTypeIdSize(dictionary_type.InternalType()) * (scan_state.chunk_offset + array.offset);
|
787
793
|
if (array.null_count > 0) {
|
788
794
|
ValidityMask indices_validity;
|
@@ -187,13 +187,13 @@ static bool RequiresQuotes(WriteCSVData &csv_data, const char *str, idx_t len) {
|
|
187
187
|
|
188
188
|
// check for delimiter
|
189
189
|
if (options.delimiter.length() != 0 &&
|
190
|
-
ContainsFun::Find((
|
190
|
+
ContainsFun::Find(const_uchar_ptr_cast(str), len, const_uchar_ptr_cast(options.delimiter.c_str()),
|
191
191
|
options.delimiter.size()) != DConstants::INVALID_INDEX) {
|
192
192
|
return true;
|
193
193
|
}
|
194
194
|
// check for quote
|
195
195
|
if (options.quote.length() != 0 &&
|
196
|
-
ContainsFun::Find((
|
196
|
+
ContainsFun::Find(const_uchar_ptr_cast(str), len, const_uchar_ptr_cast(options.quote.c_str()),
|
197
197
|
options.quote.size()) != DConstants::INVALID_INDEX) {
|
198
198
|
return true;
|
199
199
|
}
|
@@ -224,11 +224,11 @@ static void WriteQuotedString(Serializer &serializer, WriteCSVData &csv_data, co
|
|
224
224
|
// complex CSV
|
225
225
|
// check for quote or escape separately
|
226
226
|
if (options.quote.length() != 0 &&
|
227
|
-
ContainsFun::Find((
|
227
|
+
ContainsFun::Find(const_uchar_ptr_cast(str), len, const_uchar_ptr_cast(options.quote.c_str()),
|
228
228
|
options.quote.size()) != DConstants::INVALID_INDEX) {
|
229
229
|
requires_escape = true;
|
230
230
|
} else if (options.escape.length() != 0 &&
|
231
|
-
ContainsFun::Find((
|
231
|
+
ContainsFun::Find(const_uchar_ptr_cast(str), len, const_uchar_ptr_cast(options.escape.c_str()),
|
232
232
|
options.escape.size()) != DConstants::INVALID_INDEX) {
|
233
233
|
requires_escape = true;
|
234
234
|
}
|
@@ -236,7 +236,7 @@ static void WriteQuotedString(Serializer &serializer, WriteCSVData &csv_data, co
|
|
236
236
|
if (!requires_escape) {
|
237
237
|
// fast path: no need to escape anything
|
238
238
|
serializer.WriteBufferData(options.quote);
|
239
|
-
serializer.WriteData((
|
239
|
+
serializer.WriteData(const_data_ptr_cast(str), len);
|
240
240
|
serializer.WriteBufferData(options.quote);
|
241
241
|
return;
|
242
242
|
}
|
@@ -252,7 +252,7 @@ static void WriteQuotedString(Serializer &serializer, WriteCSVData &csv_data, co
|
|
252
252
|
serializer.WriteBufferData(new_val);
|
253
253
|
serializer.WriteBufferData(options.quote);
|
254
254
|
} else {
|
255
|
-
serializer.WriteData((
|
255
|
+
serializer.WriteData(const_data_ptr_cast(str), len);
|
256
256
|
}
|
257
257
|
}
|
258
258
|
|
@@ -281,6 +281,10 @@ struct GlobalWriteCSVData : public GlobalFunctionData {
|
|
281
281
|
handle->Write((void *)data, size);
|
282
282
|
}
|
283
283
|
|
284
|
+
void WriteData(const char *data, idx_t size) {
|
285
|
+
WriteData(const_data_ptr_cast(data), size);
|
286
|
+
}
|
287
|
+
|
284
288
|
//! Write rows
|
285
289
|
void WriteRows(const_data_ptr_t data, idx_t size, const string &newline) {
|
286
290
|
lock_guard<mutex> flock(lock);
|
@@ -321,7 +325,7 @@ static unique_ptr<GlobalFunctionData> WriteCSVInitializeGlobal(ClientContext &co
|
|
321
325
|
make_uniq<GlobalWriteCSVData>(FileSystem::GetFileSystem(context), file_path, options.compression);
|
322
326
|
|
323
327
|
if (!options.prefix.empty()) {
|
324
|
-
global_data->WriteData(
|
328
|
+
global_data->WriteData(options.prefix.c_str(), options.prefix.size());
|
325
329
|
}
|
326
330
|
|
327
331
|
if (options.header) {
|
@@ -33,7 +33,7 @@ static unique_ptr<GlobalTableFunctionState> GlobFunctionInit(ClientContext &cont
|
|
33
33
|
|
34
34
|
static void GlobFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
35
35
|
auto &bind_data = data_p.bind_data->Cast<GlobFunctionBindData>();
|
36
|
-
auto &state =
|
36
|
+
auto &state = data_p.global_state->Cast<GlobFunctionState>();
|
37
37
|
|
38
38
|
idx_t count = 0;
|
39
39
|
idx_t next_idx = MinValue<idx_t>(state.current_idx + STANDARD_VECTOR_SIZE, bind_data.files.size());
|
@@ -62,7 +62,7 @@ unique_ptr<GlobalTableFunctionState> PragmaLastProfilingOutputInit(ClientContext
|
|
62
62
|
|
63
63
|
static void PragmaLastProfilingOutputFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
64
64
|
auto &state = data_p.global_state->Cast<PragmaLastProfilingOutputOperatorData>();
|
65
|
-
auto &data =
|
65
|
+
auto &data = data_p.bind_data->CastNoConst<PragmaLastProfilingOutputData>();
|
66
66
|
if (!state.initialized) {
|
67
67
|
// create a ColumnDataCollection
|
68
68
|
auto collection = make_uniq<ColumnDataCollection>(context, data.types);
|
@@ -18,7 +18,7 @@ struct RangeFunctionBindData : public TableFunctionData {
|
|
18
18
|
|
19
19
|
public:
|
20
20
|
bool Equals(const FunctionData &other_p) const override {
|
21
|
-
auto &other = (
|
21
|
+
auto &other = other_p.Cast<RangeFunctionBindData>();
|
22
22
|
return other.start == start && other.end == end && other.increment == increment;
|
23
23
|
}
|
24
24
|
};
|
@@ -92,7 +92,7 @@ static unique_ptr<GlobalTableFunctionState> RangeFunctionInit(ClientContext &con
|
|
92
92
|
|
93
93
|
static void RangeFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
94
94
|
auto &bind_data = data_p.bind_data->Cast<RangeFunctionBindData>();
|
95
|
-
auto &state =
|
95
|
+
auto &state = data_p.global_state->Cast<RangeFunctionState>();
|
96
96
|
|
97
97
|
auto increment = bind_data.increment;
|
98
98
|
auto end = bind_data.end;
|
@@ -129,7 +129,7 @@ struct RangeDateTimeBindData : public TableFunctionData {
|
|
129
129
|
|
130
130
|
public:
|
131
131
|
bool Equals(const FunctionData &other_p) const override {
|
132
|
-
auto &other = (
|
132
|
+
auto &other = other_p.Cast<RangeDateTimeBindData>();
|
133
133
|
return other.start == start && other.end == end && other.increment == increment &&
|
134
134
|
other.inclusive_bound == inclusive_bound && other.greater_than_check == greater_than_check;
|
135
135
|
}
|
@@ -213,7 +213,7 @@ static unique_ptr<GlobalTableFunctionState> RangeDateTimeInit(ClientContext &con
|
|
213
213
|
|
214
214
|
static void RangeDateTimeFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
215
215
|
auto &bind_data = data_p.bind_data->Cast<RangeDateTimeBindData>();
|
216
|
-
auto &state =
|
216
|
+
auto &state = data_p.global_state->Cast<RangeDateTimeState>();
|
217
217
|
if (state.finished) {
|
218
218
|
return;
|
219
219
|
}
|
@@ -861,16 +861,16 @@ static unique_ptr<GlobalTableFunctionState> SingleThreadedCSVInit(ClientContext
|
|
861
861
|
unique_ptr<LocalTableFunctionState> SingleThreadedReadCSVInitLocal(ExecutionContext &context,
|
862
862
|
TableFunctionInitInput &input,
|
863
863
|
GlobalTableFunctionState *global_state_p) {
|
864
|
-
auto &bind_data =
|
865
|
-
auto &data = (
|
864
|
+
auto &bind_data = input.bind_data->CastNoConst<ReadCSVData>();
|
865
|
+
auto &data = global_state_p->Cast<SingleThreadedCSVState>();
|
866
866
|
auto result = make_uniq<SingleThreadedCSVLocalState>();
|
867
867
|
result->csv_reader = data.GetCSVReader(context.client, bind_data, result->file_index, result->total_size);
|
868
868
|
return std::move(result);
|
869
869
|
}
|
870
870
|
|
871
871
|
static void SingleThreadedCSVFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
872
|
-
auto &bind_data =
|
873
|
-
auto &data =
|
872
|
+
auto &bind_data = data_p.bind_data->CastNoConst<ReadCSVData>();
|
873
|
+
auto &data = data_p.global_state->Cast<SingleThreadedCSVState>();
|
874
874
|
auto &lstate = data_p.local_state->Cast<SingleThreadedCSVLocalState>();
|
875
875
|
if (!lstate.csv_reader) {
|
876
876
|
// no csv_reader was set, this can happen when a filename-based filter has filtered out all possible files
|
@@ -31,7 +31,7 @@ static unique_ptr<GlobalTableFunctionState> RepeatInit(ClientContext &context, T
|
|
31
31
|
}
|
32
32
|
|
33
33
|
static void RepeatFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
34
|
-
auto &bind_data =
|
34
|
+
auto &bind_data = data_p.bind_data->Cast<RepeatFunctionData>();
|
35
35
|
auto &state = data_p.global_state->Cast<RepeatOperatorData>();
|
36
36
|
|
37
37
|
idx_t remaining = MinValue<idx_t>(bind_data.target_count - state.current_count, STANDARD_VECTOR_SIZE);
|
@@ -41,7 +41,7 @@ static void RepeatFunction(ClientContext &context, TableFunctionInput &data_p, D
|
|
41
41
|
}
|
42
42
|
|
43
43
|
static unique_ptr<NodeStatistics> RepeatCardinality(ClientContext &context, const FunctionData *bind_data_p) {
|
44
|
-
auto &bind_data = (
|
44
|
+
auto &bind_data = bind_data_p->Cast<RepeatFunctionData>();
|
45
45
|
return make_uniq<NodeStatistics>(bind_data.target_count, bind_data.target_count);
|
46
46
|
}
|
47
47
|
|
@@ -33,7 +33,7 @@ static unique_ptr<GlobalTableFunctionState> RepeatRowInit(ClientContext &context
|
|
33
33
|
}
|
34
34
|
|
35
35
|
static void RepeatRowFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
36
|
-
auto &bind_data =
|
36
|
+
auto &bind_data = data_p.bind_data->Cast<RepeatRowFunctionData>();
|
37
37
|
auto &state = data_p.global_state->Cast<RepeatRowOperatorData>();
|
38
38
|
|
39
39
|
idx_t remaining = MinValue<idx_t>(bind_data.target_count - state.current_count, STANDARD_VECTOR_SIZE);
|
@@ -45,7 +45,7 @@ static void RepeatRowFunction(ClientContext &context, TableFunctionInput &data_p
|
|
45
45
|
}
|
46
46
|
|
47
47
|
static unique_ptr<NodeStatistics> RepeatRowCardinality(ClientContext &context, const FunctionData *bind_data_p) {
|
48
|
-
auto &bind_data = (
|
48
|
+
auto &bind_data = bind_data_p->Cast<RepeatRowFunctionData>();
|
49
49
|
return make_uniq<NodeStatistics>(bind_data.target_count, bind_data.target_count);
|
50
50
|
}
|
51
51
|
|
@@ -456,7 +456,7 @@ bool ExtractFunctionData(FunctionEntry &entry, idx_t function_idx, DataChunk &ou
|
|
456
456
|
}
|
457
457
|
|
458
458
|
void DuckDBFunctionsFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
459
|
-
auto &data =
|
459
|
+
auto &data = data_p.global_state->Cast<DuckDBFunctionsData>();
|
460
460
|
if (data.offset >= data.entries.size()) {
|
461
461
|
// finished returning values
|
462
462
|
return;
|
@@ -233,7 +233,7 @@ unique_ptr<GlobalTableFunctionState> TestVectorTypesInit(ClientContext &context,
|
|
233
233
|
}
|
234
234
|
|
235
235
|
void TestVectorTypesFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
236
|
-
auto &data =
|
236
|
+
auto &data = data_p.global_state->Cast<TestVectorTypesData>();
|
237
237
|
if (data.offset >= data.entries.size()) {
|
238
238
|
// finished returning values
|
239
239
|
return;
|
@@ -215,7 +215,7 @@ static unique_ptr<GlobalTableFunctionState> IndexScanInitGlobal(ClientContext &c
|
|
215
215
|
auto &bind_data = input.bind_data->Cast<TableScanBindData>();
|
216
216
|
data_ptr_t row_id_data = nullptr;
|
217
217
|
if (!bind_data.result_ids.empty()) {
|
218
|
-
row_id_data = (data_ptr_t)&bind_data.result_ids[0];
|
218
|
+
row_id_data = (data_ptr_t)&bind_data.result_ids[0]; // NOLINT - this is not pretty
|
219
219
|
}
|
220
220
|
auto result = make_uniq<IndexScanGlobalState>(row_id_data);
|
221
221
|
auto &local_storage = LocalStorage::Get(context, bind_data.table.catalog);
|
@@ -350,7 +350,7 @@ void TableScanPushdownComplexFilter(ClientContext &context, LogicalGet &get, Fun
|
|
350
350
|
} else if (expr.type == ExpressionType::COMPARE_BETWEEN) {
|
351
351
|
// BETWEEN expression
|
352
352
|
auto &between = expr.Cast<BoundBetweenExpression>();
|
353
|
-
if (!between.input->Equals(index_expression
|
353
|
+
if (!between.input->Equals(*index_expression)) {
|
354
354
|
// expression doesn't match the current index expression
|
355
355
|
continue;
|
356
356
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
#ifndef DUCKDB_VERSION
|
2
|
-
#define DUCKDB_VERSION "0.8.1-
|
2
|
+
#define DUCKDB_VERSION "0.8.1-dev96"
|
3
3
|
#endif
|
4
4
|
#ifndef DUCKDB_SOURCE_ID
|
5
|
-
#define DUCKDB_SOURCE_ID "
|
5
|
+
#define DUCKDB_SOURCE_ID "faf428bcd3"
|
6
6
|
#endif
|
7
7
|
#include "duckdb/function/table/system_functions.hpp"
|
8
8
|
#include "duckdb/main/database.hpp"
|
@@ -32,7 +32,7 @@ static unique_ptr<GlobalTableFunctionState> PragmaVersionInit(ClientContext &con
|
|
32
32
|
}
|
33
33
|
|
34
34
|
static void PragmaVersionFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
35
|
-
auto &data =
|
35
|
+
auto &data = data_p.global_state->Cast<PragmaVersionData>();
|
36
36
|
if (data.finished) {
|
37
37
|
// finished returning values
|
38
38
|
return;
|
@@ -333,13 +333,13 @@ public:
|
|
333
333
|
template <class TARGET>
|
334
334
|
TARGET &Cast() {
|
335
335
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
336
|
-
return
|
336
|
+
return reinterpret_cast<TARGET &>(*this);
|
337
337
|
}
|
338
338
|
|
339
339
|
template <class TARGET>
|
340
340
|
const TARGET &Cast() const {
|
341
341
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
342
|
-
return
|
342
|
+
return reinterpret_cast<const TARGET &>(*this);
|
343
343
|
}
|
344
344
|
};
|
345
345
|
|