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
@@ -521,8 +521,9 @@ struct DatePart {
|
|
521
521
|
}
|
522
522
|
|
523
523
|
template <typename P>
|
524
|
-
static inline
|
525
|
-
|
524
|
+
static inline bool HasPartValue(P *part_values, DatePartSpecifier part, P &value) {
|
525
|
+
value = part_values[int(part)];
|
526
|
+
return value;
|
526
527
|
}
|
527
528
|
|
528
529
|
template <class TA, class TR>
|
@@ -534,28 +535,28 @@ struct DatePart {
|
|
534
535
|
int32_t dd = 1;
|
535
536
|
if (mask & YMD) {
|
536
537
|
Date::Convert(input, yyyy, mm, dd);
|
537
|
-
if (
|
538
|
+
if (HasPartValue(part_values, DatePartSpecifier::YEAR, part_data)) {
|
538
539
|
part_data[idx] = yyyy;
|
539
540
|
}
|
540
|
-
if (
|
541
|
+
if (HasPartValue(part_values, DatePartSpecifier::MONTH, part_data)) {
|
541
542
|
part_data[idx] = mm;
|
542
543
|
}
|
543
|
-
if (
|
544
|
+
if (HasPartValue(part_values, DatePartSpecifier::DAY, part_data)) {
|
544
545
|
part_data[idx] = dd;
|
545
546
|
}
|
546
|
-
if (
|
547
|
+
if (HasPartValue(part_values, DatePartSpecifier::DECADE, part_data)) {
|
547
548
|
part_data[idx] = DecadeOperator::DecadeFromYear(yyyy);
|
548
549
|
}
|
549
|
-
if (
|
550
|
+
if (HasPartValue(part_values, DatePartSpecifier::CENTURY, part_data)) {
|
550
551
|
part_data[idx] = CenturyOperator::CenturyFromYear(yyyy);
|
551
552
|
}
|
552
|
-
if (
|
553
|
+
if (HasPartValue(part_values, DatePartSpecifier::MILLENNIUM, part_data)) {
|
553
554
|
part_data[idx] = MillenniumOperator::MillenniumFromYear(yyyy);
|
554
555
|
}
|
555
|
-
if (
|
556
|
+
if (HasPartValue(part_values, DatePartSpecifier::QUARTER, part_data)) {
|
556
557
|
part_data[idx] = QuarterOperator::QuarterFromMonth(mm);
|
557
558
|
}
|
558
|
-
if (
|
559
|
+
if (HasPartValue(part_values, DatePartSpecifier::ERA, part_data)) {
|
559
560
|
part_data[idx] = EraOperator::EraFromYear(yyyy);
|
560
561
|
}
|
561
562
|
}
|
@@ -563,10 +564,10 @@ struct DatePart {
|
|
563
564
|
// Week calculations
|
564
565
|
if (mask & DOW) {
|
565
566
|
auto isodow = Date::ExtractISODayOfTheWeek(input);
|
566
|
-
if (
|
567
|
+
if (HasPartValue(part_values, DatePartSpecifier::DOW, part_data)) {
|
567
568
|
part_data[idx] = DayOfWeekOperator::DayOfWeekFromISO(isodow);
|
568
569
|
}
|
569
|
-
if (
|
570
|
+
if (HasPartValue(part_values, DatePartSpecifier::ISODOW, part_data)) {
|
570
571
|
part_data[idx] = isodow;
|
571
572
|
}
|
572
573
|
}
|
@@ -576,24 +577,24 @@ struct DatePart {
|
|
576
577
|
int32_t ww = 0;
|
577
578
|
int32_t iyyy = 0;
|
578
579
|
Date::ExtractISOYearWeek(input, iyyy, ww);
|
579
|
-
if (
|
580
|
+
if (HasPartValue(part_values, DatePartSpecifier::WEEK, part_data)) {
|
580
581
|
part_data[idx] = ww;
|
581
582
|
}
|
582
|
-
if (
|
583
|
+
if (HasPartValue(part_values, DatePartSpecifier::ISOYEAR, part_data)) {
|
583
584
|
part_data[idx] = iyyy;
|
584
585
|
}
|
585
|
-
if (
|
586
|
+
if (HasPartValue(part_values, DatePartSpecifier::YEARWEEK, part_data)) {
|
586
587
|
part_data[idx] = YearWeekOperator::YearWeekFromParts(iyyy, ww);
|
587
588
|
}
|
588
589
|
}
|
589
590
|
|
590
591
|
if (mask & EPOCH) {
|
591
|
-
if (
|
592
|
+
if (HasPartValue(part_values, DatePartSpecifier::EPOCH, part_data)) {
|
592
593
|
part_data[idx] = Date::Epoch(input);
|
593
594
|
}
|
594
595
|
}
|
595
596
|
if (mask & DOY) {
|
596
|
-
if (
|
597
|
+
if (HasPartValue(part_values, DatePartSpecifier::DOY, part_data)) {
|
597
598
|
part_data[idx] = Date::ExtractDayOfTheYear(input);
|
598
599
|
}
|
599
600
|
}
|
@@ -948,38 +949,37 @@ void DatePart::StructOperator::Operation(int64_t **part_values, const dtime_t &i
|
|
948
949
|
int64_t *part_data;
|
949
950
|
if (mask & TIME) {
|
950
951
|
const auto micros = MicrosecondsOperator::Operation<dtime_t, int64_t>(input);
|
951
|
-
if (
|
952
|
+
if (HasPartValue(part_values, DatePartSpecifier::MICROSECONDS, part_data)) {
|
952
953
|
part_data[idx] = micros;
|
953
954
|
}
|
954
|
-
if (
|
955
|
+
if (HasPartValue(part_values, DatePartSpecifier::MILLISECONDS, part_data)) {
|
955
956
|
part_data[idx] = micros / Interval::MICROS_PER_MSEC;
|
956
957
|
}
|
957
|
-
if (
|
958
|
+
if (HasPartValue(part_values, DatePartSpecifier::SECOND, part_data)) {
|
958
959
|
part_data[idx] = micros / Interval::MICROS_PER_SEC;
|
959
960
|
}
|
960
|
-
if (
|
961
|
+
if (HasPartValue(part_values, DatePartSpecifier::MINUTE, part_data)) {
|
961
962
|
part_data[idx] = MinutesOperator::Operation<dtime_t, int64_t>(input);
|
962
963
|
}
|
963
|
-
if (
|
964
|
+
if (HasPartValue(part_values, DatePartSpecifier::HOUR, part_data)) {
|
964
965
|
part_data[idx] = HoursOperator::Operation<dtime_t, int64_t>(input);
|
965
966
|
}
|
966
967
|
}
|
967
968
|
|
968
969
|
if (mask & EPOCH) {
|
969
|
-
if (
|
970
|
+
if (HasPartValue(part_values, DatePartSpecifier::EPOCH, part_data)) {
|
970
971
|
part_data[idx] = EpochOperator::Operation<dtime_t, int64_t>(input);
|
971
|
-
;
|
972
972
|
}
|
973
973
|
}
|
974
974
|
|
975
975
|
if (mask & ZONE) {
|
976
|
-
if (
|
976
|
+
if (HasPartValue(part_values, DatePartSpecifier::TIMEZONE, part_data)) {
|
977
977
|
part_data[idx] = 0;
|
978
978
|
}
|
979
|
-
if (
|
979
|
+
if (HasPartValue(part_values, DatePartSpecifier::TIMEZONE_HOUR, part_data)) {
|
980
980
|
part_data[idx] = 0;
|
981
981
|
}
|
982
|
-
if (
|
982
|
+
if (HasPartValue(part_values, DatePartSpecifier::TIMEZONE_MINUTE, part_data)) {
|
983
983
|
part_data[idx] = 0;
|
984
984
|
}
|
985
985
|
}
|
@@ -998,8 +998,8 @@ void DatePart::StructOperator::Operation(int64_t **part_values, const timestamp_
|
|
998
998
|
Operation(part_values, t, idx, mask & ~EPOCH);
|
999
999
|
|
1000
1000
|
if (mask & EPOCH) {
|
1001
|
-
|
1002
|
-
if (part_data) {
|
1001
|
+
int64_t *part_data;
|
1002
|
+
if (HasPartValue(part_values, DatePartSpecifier::EPOCH, part_data)) {
|
1003
1003
|
part_data[idx] = EpochOperator::Operation<timestamp_t, int64_t>(input);
|
1004
1004
|
}
|
1005
1005
|
}
|
@@ -1011,50 +1011,50 @@ void DatePart::StructOperator::Operation(int64_t **part_values, const interval_t
|
|
1011
1011
|
int64_t *part_data;
|
1012
1012
|
if (mask & YMD) {
|
1013
1013
|
const auto mm = input.months % Interval::MONTHS_PER_YEAR;
|
1014
|
-
if (
|
1014
|
+
if (HasPartValue(part_values, DatePartSpecifier::YEAR, part_data)) {
|
1015
1015
|
part_data[idx] = input.months / Interval::MONTHS_PER_YEAR;
|
1016
1016
|
}
|
1017
|
-
if (
|
1017
|
+
if (HasPartValue(part_values, DatePartSpecifier::MONTH, part_data)) {
|
1018
1018
|
part_data[idx] = mm;
|
1019
1019
|
}
|
1020
|
-
if (
|
1020
|
+
if (HasPartValue(part_values, DatePartSpecifier::DAY, part_data)) {
|
1021
1021
|
part_data[idx] = input.days;
|
1022
1022
|
}
|
1023
|
-
if (
|
1023
|
+
if (HasPartValue(part_values, DatePartSpecifier::DECADE, part_data)) {
|
1024
1024
|
part_data[idx] = input.months / Interval::MONTHS_PER_DECADE;
|
1025
1025
|
}
|
1026
|
-
if (
|
1026
|
+
if (HasPartValue(part_values, DatePartSpecifier::CENTURY, part_data)) {
|
1027
1027
|
part_data[idx] = input.months / Interval::MONTHS_PER_CENTURY;
|
1028
1028
|
}
|
1029
|
-
if (
|
1029
|
+
if (HasPartValue(part_values, DatePartSpecifier::MILLENNIUM, part_data)) {
|
1030
1030
|
part_data[idx] = input.months / Interval::MONTHS_PER_MILLENIUM;
|
1031
1031
|
}
|
1032
|
-
if (
|
1032
|
+
if (HasPartValue(part_values, DatePartSpecifier::QUARTER, part_data)) {
|
1033
1033
|
part_data[idx] = mm / Interval::MONTHS_PER_QUARTER + 1;
|
1034
1034
|
}
|
1035
1035
|
}
|
1036
1036
|
|
1037
1037
|
if (mask & TIME) {
|
1038
1038
|
const auto micros = MicrosecondsOperator::Operation<interval_t, int64_t>(input);
|
1039
|
-
if (
|
1039
|
+
if (HasPartValue(part_values, DatePartSpecifier::MICROSECONDS, part_data)) {
|
1040
1040
|
part_data[idx] = micros;
|
1041
1041
|
}
|
1042
|
-
if (
|
1042
|
+
if (HasPartValue(part_values, DatePartSpecifier::MILLISECONDS, part_data)) {
|
1043
1043
|
part_data[idx] = micros / Interval::MICROS_PER_MSEC;
|
1044
1044
|
}
|
1045
|
-
if (
|
1045
|
+
if (HasPartValue(part_values, DatePartSpecifier::SECOND, part_data)) {
|
1046
1046
|
part_data[idx] = micros / Interval::MICROS_PER_SEC;
|
1047
1047
|
}
|
1048
|
-
if (
|
1048
|
+
if (HasPartValue(part_values, DatePartSpecifier::MINUTE, part_data)) {
|
1049
1049
|
part_data[idx] = MinutesOperator::Operation<interval_t, int64_t>(input);
|
1050
1050
|
}
|
1051
|
-
if (
|
1051
|
+
if (HasPartValue(part_values, DatePartSpecifier::HOUR, part_data)) {
|
1052
1052
|
part_data[idx] = HoursOperator::Operation<interval_t, int64_t>(input);
|
1053
1053
|
}
|
1054
1054
|
}
|
1055
1055
|
|
1056
1056
|
if (mask & EPOCH) {
|
1057
|
-
if (
|
1057
|
+
if (HasPartValue(part_values, DatePartSpecifier::EPOCH, part_data)) {
|
1058
1058
|
part_data[idx] = EpochOperator::Operation<interval_t, int64_t>(input);
|
1059
1059
|
}
|
1060
1060
|
}
|
@@ -1264,7 +1264,7 @@ struct StructDatePart {
|
|
1264
1264
|
template <typename INPUT_TYPE>
|
1265
1265
|
static void Function(DataChunk &args, ExpressionState &state, Vector &result) {
|
1266
1266
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
1267
|
-
auto &info =
|
1267
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
1268
1268
|
D_ASSERT(args.ColumnCount() == 1);
|
1269
1269
|
|
1270
1270
|
const auto count = args.size();
|
@@ -1313,7 +1313,7 @@ struct StructDatePart {
|
|
1313
1313
|
input.ToUnifiedFormat(count, rdata);
|
1314
1314
|
|
1315
1315
|
const auto &arg_valid = rdata.validity;
|
1316
|
-
auto tdata = (
|
1316
|
+
auto tdata = UnifiedVectorFormat::GetData<INPUT_TYPE>(rdata);
|
1317
1317
|
|
1318
1318
|
// Start with a valid flat vector
|
1319
1319
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
@@ -1372,7 +1372,7 @@ struct StructDatePart {
|
|
1372
1372
|
static void SerializeFunction(FieldWriter &writer, const FunctionData *bind_data_p,
|
1373
1373
|
const ScalarFunction &function) {
|
1374
1374
|
D_ASSERT(bind_data_p);
|
1375
|
-
auto &info = (
|
1375
|
+
auto &info = bind_data_p->Cast<BindData>();
|
1376
1376
|
writer.WriteSerializable(info.stype);
|
1377
1377
|
writer.WriteList<DatePartSpecifier>(info.part_codes);
|
1378
1378
|
}
|
@@ -25,7 +25,7 @@ struct StrfTimeBindData : public FunctionData {
|
|
25
25
|
}
|
26
26
|
|
27
27
|
bool Equals(const FunctionData &other_p) const override {
|
28
|
-
auto &other = (
|
28
|
+
auto &other = other_p.Cast<StrfTimeBindData>();
|
29
29
|
return format_string == other.format_string;
|
30
30
|
}
|
31
31
|
};
|
@@ -111,7 +111,7 @@ struct StrpTimeBindData : public FunctionData {
|
|
111
111
|
}
|
112
112
|
|
113
113
|
bool Equals(const FunctionData &other_p) const override {
|
114
|
-
auto &other = (
|
114
|
+
auto &other = other_p.Cast<StrpTimeBindData>();
|
115
115
|
return format_strings == other.format_strings;
|
116
116
|
}
|
117
117
|
};
|
@@ -37,7 +37,7 @@ static void LeastGreatestFunction(DataChunk &args, ExpressionState &state, Vecto
|
|
37
37
|
{
|
38
38
|
UnifiedVectorFormat vdata;
|
39
39
|
args.data[0].ToUnifiedFormat(args.size(), vdata);
|
40
|
-
auto input_data = (
|
40
|
+
auto input_data = UnifiedVectorFormat::GetData<T>(vdata);
|
41
41
|
for (idx_t i = 0; i < args.size(); i++) {
|
42
42
|
auto vindex = vdata.sel->get_index(i);
|
43
43
|
if (vdata.validity.RowIsValid(vindex)) {
|
@@ -59,7 +59,7 @@ static void LeastGreatestFunction(DataChunk &args, ExpressionState &state, Vecto
|
|
59
59
|
UnifiedVectorFormat vdata;
|
60
60
|
args.data[col_idx].ToUnifiedFormat(args.size(), vdata);
|
61
61
|
|
62
|
-
auto input_data = (
|
62
|
+
auto input_data = UnifiedVectorFormat::GetData<T>(vdata);
|
63
63
|
if (!vdata.validity.AllValid()) {
|
64
64
|
// potential new null entries: have to check the null mask
|
65
65
|
for (idx_t i = 0; i < args.size(); i++) {
|
@@ -107,9 +107,9 @@ static void ExecuteSlice(Vector &result, Vector &s, Vector &b, Vector &e, const
|
|
107
107
|
auto bidx = bdata.sel->get_index(i);
|
108
108
|
auto eidx = edata.sel->get_index(i);
|
109
109
|
|
110
|
-
auto sliced = ((
|
111
|
-
auto begin = ((
|
112
|
-
auto end = ((
|
110
|
+
auto sliced = (UnifiedVectorFormat::GetData<INPUT_TYPE>(sdata))[sidx];
|
111
|
+
auto begin = (UnifiedVectorFormat::GetData<INDEX_TYPE>(bdata))[bidx];
|
112
|
+
auto end = (UnifiedVectorFormat::GetData<INDEX_TYPE>(edata))[eidx];
|
113
113
|
|
114
114
|
auto svalid = sdata.validity.RowIsValid(sidx);
|
115
115
|
auto bvalid = bdata.validity.RowIsValid(bidx);
|
@@ -19,8 +19,7 @@ void ListFlattenFunction(DataChunk &args, ExpressionState &state, Vector &result
|
|
19
19
|
|
20
20
|
UnifiedVectorFormat list_data;
|
21
21
|
input.ToUnifiedFormat(count, list_data);
|
22
|
-
auto list_entries = (
|
23
|
-
|
22
|
+
auto list_entries = UnifiedVectorFormat::GetData<list_entry_t>(list_data);
|
24
23
|
auto &child_vector = ListVector::GetEntry(input);
|
25
24
|
|
26
25
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
@@ -28,7 +27,6 @@ void ListFlattenFunction(DataChunk &args, ExpressionState &state, Vector &result
|
|
28
27
|
auto &result_validity = FlatVector::Validity(result);
|
29
28
|
|
30
29
|
if (child_vector.GetType().id() == LogicalTypeId::SQLNULL) {
|
31
|
-
auto result_entries = FlatVector::GetData<list_entry_t>(result);
|
32
30
|
for (idx_t i = 0; i < count; i++) {
|
33
31
|
auto list_index = list_data.sel->get_index(i);
|
34
32
|
if (!list_data.validity.RowIsValid(list_index)) {
|
@@ -47,7 +45,7 @@ void ListFlattenFunction(DataChunk &args, ExpressionState &state, Vector &result
|
|
47
45
|
auto child_size = ListVector::GetListSize(input);
|
48
46
|
UnifiedVectorFormat child_data;
|
49
47
|
child_vector.ToUnifiedFormat(child_size, child_data);
|
50
|
-
auto child_entries = (
|
48
|
+
auto child_entries = UnifiedVectorFormat::GetData<list_entry_t>(child_data);
|
51
49
|
auto &data_vector = ListVector::GetEntry(child_vector);
|
52
50
|
|
53
51
|
idx_t offset = 0;
|
@@ -27,8 +27,8 @@ struct ListAggregatesBindData : public FunctionData {
|
|
27
27
|
}
|
28
28
|
|
29
29
|
bool Equals(const FunctionData &other_p) const override {
|
30
|
-
auto &other = (
|
31
|
-
return stype == other.stype && aggr_expr->Equals(other.aggr_expr
|
30
|
+
auto &other = other_p.Cast<ListAggregatesBindData>();
|
31
|
+
return stype == other.stype && aggr_expr->Equals(*other.aggr_expr);
|
32
32
|
}
|
33
33
|
static void Serialize(FieldWriter &writer, const FunctionData *bind_data_p, const ScalarFunction &function) {
|
34
34
|
throw NotImplementedException("FIXME: list aggr serialize");
|
@@ -175,7 +175,7 @@ static void ListAggregatesFunction(DataChunk &args, ExpressionState &state, Vect
|
|
175
175
|
|
176
176
|
UnifiedVectorFormat lists_data;
|
177
177
|
lists.ToUnifiedFormat(count, lists_data);
|
178
|
-
auto list_entries = (
|
178
|
+
auto list_entries = UnifiedVectorFormat::GetData<list_entry_t>(lists_data);
|
179
179
|
|
180
180
|
// state_buffer holds the state for each list of this chunk
|
181
181
|
idx_t size = aggr.function.state_size();
|
@@ -40,7 +40,7 @@ unique_ptr<FunctionData> ListLambdaBindData::Copy() const {
|
|
40
40
|
|
41
41
|
bool ListLambdaBindData::Equals(const FunctionData &other_p) const {
|
42
42
|
auto &other = other_p.Cast<ListLambdaBindData>();
|
43
|
-
return lambda_expr->Equals(other.lambda_expr
|
43
|
+
return lambda_expr->Equals(*other.lambda_expr) && stype == other.stype;
|
44
44
|
}
|
45
45
|
|
46
46
|
ListLambdaBindData::~ListLambdaBindData() {
|
@@ -63,7 +63,7 @@ static void AppendFilteredToResult(Vector &lambda_vector, list_entry_t *result_e
|
|
63
63
|
UnifiedVectorFormat lambda_data;
|
64
64
|
lambda_vector.ToUnifiedFormat(elem_cnt, lambda_data);
|
65
65
|
|
66
|
-
auto lambda_values = (
|
66
|
+
auto lambda_values = UnifiedVectorFormat::GetData<bool>(lambda_data);
|
67
67
|
auto &lambda_validity = lambda_data.validity;
|
68
68
|
|
69
69
|
// compute the new lengths and offsets, and create a selection vector
|
@@ -167,7 +167,7 @@ static void ListLambdaFunction(DataChunk &args, ExpressionState &state, Vector &
|
|
167
167
|
// get the lists data
|
168
168
|
UnifiedVectorFormat lists_data;
|
169
169
|
lists.ToUnifiedFormat(count, lists_data);
|
170
|
-
auto list_entries = (
|
170
|
+
auto list_entries = UnifiedVectorFormat::GetData<list_entry_t>(lists_data);
|
171
171
|
|
172
172
|
// get the lambda expression
|
173
173
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
@@ -321,8 +321,7 @@ static void ListFilterFunction(DataChunk &args, ExpressionState &state, Vector &
|
|
321
321
|
template <int64_t LAMBDA_PARAM_CNT>
|
322
322
|
static unique_ptr<FunctionData> ListLambdaBind(ClientContext &context, ScalarFunction &bound_function,
|
323
323
|
vector<unique_ptr<Expression>> &arguments) {
|
324
|
-
|
325
|
-
auto &bound_lambda_expr = (BoundLambdaExpression &)*arguments[1];
|
324
|
+
auto &bound_lambda_expr = arguments[1]->Cast<BoundLambdaExpression>();
|
326
325
|
if (bound_lambda_expr.parameter_count != LAMBDA_PARAM_CNT) {
|
327
326
|
throw BinderException("Incorrect number of parameters in lambda function! " + bound_function.name +
|
328
327
|
" expects " + to_string(LAMBDA_PARAM_CNT) + " parameter(s).");
|
@@ -355,7 +354,7 @@ static unique_ptr<FunctionData> ListTransformBind(ClientContext &context, Scalar
|
|
355
354
|
throw BinderException("Invalid lambda expression!");
|
356
355
|
}
|
357
356
|
|
358
|
-
auto &bound_lambda_expr =
|
357
|
+
auto &bound_lambda_expr = arguments[1]->Cast<BoundLambdaExpression>();
|
359
358
|
bound_function.return_type = LogicalType::LIST(bound_lambda_expr.lambda_expr->return_type);
|
360
359
|
return ListLambdaBind<1>(context, bound_function, arguments);
|
361
360
|
}
|
@@ -370,7 +369,7 @@ static unique_ptr<FunctionData> ListFilterBind(ClientContext &context, ScalarFun
|
|
370
369
|
}
|
371
370
|
|
372
371
|
// try to cast to boolean, if the return type of the lambda filter expression is not already boolean
|
373
|
-
auto &bound_lambda_expr =
|
372
|
+
auto &bound_lambda_expr = arguments[1]->Cast<BoundLambdaExpression>();
|
374
373
|
if (bound_lambda_expr.lambda_expr->return_type != LogicalType::BOOLEAN) {
|
375
374
|
auto cast_lambda_expr =
|
376
375
|
BoundCastExpression::AddCastToType(context, std::move(bound_lambda_expr.lambda_expr), LogicalType::BOOLEAN);
|
@@ -132,7 +132,7 @@ static void ListSortFunction(DataChunk &args, ExpressionState &state, Vector &re
|
|
132
132
|
// get the lists data
|
133
133
|
UnifiedVectorFormat lists_data;
|
134
134
|
result.ToUnifiedFormat(count, lists_data);
|
135
|
-
auto list_entries = (
|
135
|
+
auto list_entries = UnifiedVectorFormat::GetData<list_entry_t>(lists_data);
|
136
136
|
|
137
137
|
// create the lists_indices vector, this contains an element for each list's entry,
|
138
138
|
// the element corresponds to the list's index, e.g. for [1, 2, 4], [5, 4]
|
@@ -16,7 +16,7 @@ static void CardinalityFunction(DataChunk &args, ExpressionState &state, Vector
|
|
16
16
|
|
17
17
|
map.ToUnifiedFormat(args.size(), map_data);
|
18
18
|
for (idx_t row = 0; row < args.size(); row++) {
|
19
|
-
auto list_entry = (
|
19
|
+
auto list_entry = UnifiedVectorFormat::GetData<list_entry_t>(map_data)[map_data.sel->get_index(row)];
|
20
20
|
result_data[row] = list_entry.length;
|
21
21
|
result_validity.Set(row, map_data.validity.RowIsValid(map_data.sel->get_index(row)));
|
22
22
|
}
|
@@ -55,8 +55,8 @@ static bool ListEntriesEqual(Vector &keys, Vector &values, idx_t count) {
|
|
55
55
|
keys.ToUnifiedFormat(count, keys_data);
|
56
56
|
values.ToUnifiedFormat(count, values_data);
|
57
57
|
|
58
|
-
auto keys_entries = (
|
59
|
-
auto values_entries = (
|
58
|
+
auto keys_entries = UnifiedVectorFormat::GetData<list_entry_t>(keys_data);
|
59
|
+
auto values_entries = UnifiedVectorFormat::GetData<list_entry_t>(values_data);
|
60
60
|
|
61
61
|
if (same_vector_type) {
|
62
62
|
const auto key_data = keys_data.data;
|
@@ -69,7 +69,7 @@ static void MapConcatFunction(DataChunk &args, ExpressionState &state, Vector &r
|
|
69
69
|
auto &keys = MapVector::GetKeys(args.data[map_idx]);
|
70
70
|
|
71
71
|
auto index = map_format.sel->get_index(i);
|
72
|
-
auto entry = (
|
72
|
+
auto entry = UnifiedVectorFormat::GetData<list_entry_t>(map_format)[index];
|
73
73
|
|
74
74
|
// Update the list for this row
|
75
75
|
for (idx_t list_idx = 0; list_idx < entry.length; list_idx++) {
|
@@ -30,9 +30,7 @@ void FillResult(Vector &map, Vector &offsets, Vector &result, idx_t count) {
|
|
30
30
|
UnifiedVectorFormat offset_data;
|
31
31
|
offsets.ToUnifiedFormat(count, offset_data);
|
32
32
|
|
33
|
-
|
34
|
-
result.ToUnifiedFormat(count, result_data);
|
35
|
-
|
33
|
+
auto result_data = FlatVector::GetData<list_entry_t>(result);
|
36
34
|
auto entry_count = ListVector::GetListSize(map);
|
37
35
|
auto &values_entries = MapVector::GetValues(map);
|
38
36
|
UnifiedVectorFormat values_entry_data;
|
@@ -41,14 +39,13 @@ void FillResult(Vector &map, Vector &offsets, Vector &result, idx_t count) {
|
|
41
39
|
|
42
40
|
for (idx_t row = 0; row < count; row++) {
|
43
41
|
idx_t offset_idx = offset_data.sel->get_index(row);
|
44
|
-
auto offset = (
|
42
|
+
auto offset = UnifiedVectorFormat::GetData<int32_t>(offset_data)[offset_idx];
|
45
43
|
|
46
44
|
// Get the current size of the list, for the offset
|
47
45
|
idx_t current_offset = ListVector::GetListSize(result);
|
48
46
|
if (!offset_data.validity.RowIsValid(offset_idx) || !offset) {
|
49
47
|
// Set the entry data for this result row
|
50
|
-
|
51
|
-
auto &entry = ((list_entry_t *)result_data.data)[result_index];
|
48
|
+
auto &entry = result_data[row];
|
52
49
|
entry.length = 0;
|
53
50
|
entry.offset = current_offset;
|
54
51
|
continue;
|
@@ -58,7 +55,7 @@ void FillResult(Vector &map, Vector &offsets, Vector &result, idx_t count) {
|
|
58
55
|
|
59
56
|
// Get the 'values' list entry corresponding to the offset
|
60
57
|
idx_t value_index = map_data.sel->get_index(row);
|
61
|
-
auto &value_list_entry = (
|
58
|
+
auto &value_list_entry = UnifiedVectorFormat::GetData<list_entry_t>(map_data)[value_index];
|
62
59
|
|
63
60
|
// Add the values to the result
|
64
61
|
idx_t list_offset = value_list_entry.offset + offset;
|
@@ -67,8 +64,7 @@ void FillResult(Vector &map, Vector &offsets, Vector &result, idx_t count) {
|
|
67
64
|
ListVector::Append(result, values_entries, length + list_offset, list_offset);
|
68
65
|
|
69
66
|
// Set the entry data for this result row
|
70
|
-
|
71
|
-
auto &entry = ((list_entry_t *)result_data.data)[result_index];
|
67
|
+
auto &entry = result_data[row];
|
72
68
|
entry.length = length;
|
73
69
|
entry.offset = current_offset;
|
74
70
|
}
|
@@ -563,7 +563,7 @@ struct RoundPrecisionFunctionData : public FunctionData {
|
|
563
563
|
}
|
564
564
|
|
565
565
|
bool Equals(const FunctionData &other_p) const override {
|
566
|
-
auto &other = (
|
566
|
+
auto &other = other_p.Cast<RoundPrecisionFunctionData>();
|
567
567
|
return target_scale == other.target_scale;
|
568
568
|
}
|
569
569
|
};
|
@@ -571,7 +571,7 @@ struct RoundPrecisionFunctionData : public FunctionData {
|
|
571
571
|
template <class T, class POWERS_OF_TEN_CLASS>
|
572
572
|
static void DecimalRoundNegativePrecisionFunction(DataChunk &input, ExpressionState &state, Vector &result) {
|
573
573
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
574
|
-
auto &info =
|
574
|
+
auto &info = func_expr.bind_info->Cast<RoundPrecisionFunctionData>();
|
575
575
|
auto source_scale = DecimalType::GetScale(func_expr.children[0]->return_type);
|
576
576
|
auto width = DecimalType::GetWidth(func_expr.children[0]->return_type);
|
577
577
|
if (-info.target_scale >= width) {
|
@@ -597,7 +597,7 @@ static void DecimalRoundNegativePrecisionFunction(DataChunk &input, ExpressionSt
|
|
597
597
|
template <class T, class POWERS_OF_TEN_CLASS>
|
598
598
|
static void DecimalRoundPositivePrecisionFunction(DataChunk &input, ExpressionState &state, Vector &result) {
|
599
599
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
600
|
-
auto &info =
|
600
|
+
auto &info = func_expr.bind_info->Cast<RoundPrecisionFunctionData>();
|
601
601
|
auto source_scale = DecimalType::GetScale(func_expr.children[0]->return_type);
|
602
602
|
T power_of_ten = POWERS_OF_TEN_CLASS::POWERS_OF_TEN[source_scale - info.target_scale];
|
603
603
|
T addition = power_of_ten / 2;
|
@@ -17,9 +17,10 @@ static bool StartsWith(const unsigned char *haystack, idx_t haystack_size, const
|
|
17
17
|
}
|
18
18
|
|
19
19
|
static bool StartsWith(const string_t &haystack_s, const string_t &needle_s) {
|
20
|
-
|
20
|
+
|
21
|
+
auto haystack = const_uchar_ptr_cast(haystack_s.GetData());
|
21
22
|
auto haystack_size = haystack_s.GetSize();
|
22
|
-
auto needle = (
|
23
|
+
auto needle = const_uchar_ptr_cast(needle_s.GetData());
|
23
24
|
auto needle_size = needle_s.GetSize();
|
24
25
|
if (needle_size == 0) {
|
25
26
|
// empty needle: always true
|
@@ -36,7 +36,7 @@ struct RegularStringSplit {
|
|
36
36
|
if (delim_size == 0) {
|
37
37
|
return 0;
|
38
38
|
}
|
39
|
-
return ContainsFun::Find((
|
39
|
+
return ContainsFun::Find(const_uchar_ptr_cast(input_data), input_size, const_uchar_ptr_cast(delim_data),
|
40
40
|
delim_size);
|
41
41
|
}
|
42
42
|
};
|
@@ -45,7 +45,7 @@ struct ConstantRegexpStringSplit {
|
|
45
45
|
static idx_t Find(const char *input_data, idx_t input_size, const char *delim_data, idx_t delim_size,
|
46
46
|
idx_t &match_size, void *data) {
|
47
47
|
D_ASSERT(data);
|
48
|
-
auto regex =
|
48
|
+
auto regex = reinterpret_cast<duckdb_re2::RE2 *>(data);
|
49
49
|
duckdb_re2::StringPiece match;
|
50
50
|
if (!regex->Match(duckdb_re2::StringPiece(input_data, input_size), 0, input_size, RE2::UNANCHORED, &match, 1)) {
|
51
51
|
return DConstants::INVALID_INDEX;
|
@@ -109,11 +109,11 @@ template <class OP>
|
|
109
109
|
static void StringSplitExecutor(DataChunk &args, ExpressionState &state, Vector &result, void *data = nullptr) {
|
110
110
|
UnifiedVectorFormat input_data;
|
111
111
|
args.data[0].ToUnifiedFormat(args.size(), input_data);
|
112
|
-
auto inputs = (
|
112
|
+
auto inputs = UnifiedVectorFormat::GetData<string_t>(input_data);
|
113
113
|
|
114
114
|
UnifiedVectorFormat delim_data;
|
115
115
|
args.data[1].ToUnifiedFormat(args.size(), delim_data);
|
116
|
-
auto delims = (
|
116
|
+
auto delims = UnifiedVectorFormat::GetData<string_t>(delim_data);
|
117
117
|
|
118
118
|
D_ASSERT(result.GetType().id() == LogicalTypeId::LIST);
|
119
119
|
|
@@ -64,7 +64,7 @@ static void UnaryTrimFunction(DataChunk &args, ExpressionState &state, Vector &r
|
|
64
64
|
}
|
65
65
|
|
66
66
|
static void GetIgnoredCodepoints(string_t ignored, unordered_set<utf8proc_int32_t> &ignored_codepoints) {
|
67
|
-
auto dataptr =
|
67
|
+
auto dataptr = reinterpret_cast<const utf8proc_uint8_t *>(ignored.GetData());
|
68
68
|
auto size = ignored.GetSize();
|
69
69
|
idx_t pos = 0;
|
70
70
|
while (pos < size) {
|
@@ -20,7 +20,7 @@ public:
|
|
20
20
|
return make_uniq<UnionExtractBindData>(key, index, type);
|
21
21
|
}
|
22
22
|
bool Equals(const FunctionData &other_p) const override {
|
23
|
-
auto &other = (
|
23
|
+
auto &other = other_p.Cast<UnionExtractBindData>();
|
24
24
|
return key == other.key && index == other.index && type == other.type;
|
25
25
|
}
|
26
26
|
};
|
@@ -7,7 +7,7 @@ namespace duckdb {
|
|
7
7
|
|
8
8
|
AdaptiveFilter::AdaptiveFilter(const Expression &expr)
|
9
9
|
: iteration_count(0), observe_interval(10), execute_interval(20), warmup(true) {
|
10
|
-
auto &conj_expr = (
|
10
|
+
auto &conj_expr = expr.Cast<BoundConjunctionExpression>();
|
11
11
|
D_ASSERT(conj_expr.children.size() > 1);
|
12
12
|
for (idx_t idx = 0; idx < conj_expr.children.size(); idx++) {
|
13
13
|
permutation.push_back(idx);
|