duckdb 0.8.1-dev26.0 → 0.8.1-dev276.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/binding.gyp +8 -8
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +5 -4
- package/src/duckdb/extension/json/buffered_json_reader.cpp +23 -14
- package/src/duckdb/extension/json/include/buffered_json_reader.hpp +6 -6
- package/src/duckdb/extension/json/include/json_common.hpp +13 -3
- package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
- package/src/duckdb/extension/json/include/json_scan.hpp +3 -1
- package/src/duckdb/extension/json/json_functions/json_create.cpp +16 -16
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +3 -3
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +2 -2
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +5 -3
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +12 -12
- package/src/duckdb/extension/json/json_functions/read_json.cpp +2 -1
- package/src/duckdb/extension/json/json_functions.cpp +6 -3
- package/src/duckdb/extension/json/json_scan.cpp +40 -25
- package/src/duckdb/extension/parquet/column_reader.cpp +57 -52
- 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/decode_utils.hpp +6 -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.cpp +5 -17
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +113 -0
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +7 -0
- package/src/duckdb/src/catalog/catalog_entry.cpp +4 -4
- package/src/duckdb/src/catalog/catalog_search_path.cpp +49 -12
- package/src/duckdb/src/catalog/catalog_set.cpp +1 -1
- package/src/duckdb/src/catalog/default/default_types.cpp +9 -84
- package/src/duckdb/src/catalog/dependency_manager.cpp +2 -2
- package/src/duckdb/src/catalog/duck_catalog.cpp +1 -0
- package/src/duckdb/src/common/adbc/adbc.cpp +301 -106
- package/src/duckdb/src/common/adbc/driver_manager.cpp +10 -22
- 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/exception.cpp +4 -1
- package/src/duckdb/src/common/exception_format_value.cpp +19 -14
- 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/multi_file_reader.cpp +3 -0
- 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/row_data_collection_scanner.cpp +5 -4
- 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 +61 -24
- package/src/duckdb/src/common/types/string_heap.cpp +1 -1
- package/src/duckdb/src/common/types/value.cpp +3 -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/algebraic/avg.cpp +30 -33
- package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +0 -4
- package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +32 -36
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +53 -66
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +48 -48
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +44 -44
- package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +32 -32
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +34 -34
- package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +30 -31
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +91 -103
- package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +17 -17
- package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +25 -27
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +36 -37
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +48 -84
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +97 -121
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +62 -99
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +24 -26
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +22 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +16 -18
- package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +22 -25
- package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +19 -24
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +18 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +14 -18
- package/src/duckdb/src/core_functions/function_list.cpp +1 -0
- 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/generic/system_functions.cpp +14 -0
- 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 +4 -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/aggregate/physical_window.cpp +7 -5
- package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +1 -1
- package/src/duckdb/src/execution/operator/helper/physical_reset.cpp +5 -2
- package/src/duckdb/src/execution/operator/helper/physical_set.cpp +5 -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 +158 -20
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +66 -74
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +13 -13
- 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/list_casts.cpp +2 -4
- 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/pragma/pragma_queries.cpp +33 -23
- 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/regexp_util.cpp +6 -2
- 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 +6 -6
- 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 +15 -20
- package/src/duckdb/src/function/table/repeat.cpp +2 -2
- package/src/duckdb/src/function/table/repeat_row.cpp +10 -3
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +82 -26
- 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 -5
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +6 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +8 -2
- package/src/duckdb/src/include/duckdb/catalog/default/builtin_types/types.hpp +97 -0
- package/src/duckdb/src/include/duckdb/common/adbc/adbc.hpp +5 -0
- 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 +5 -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 +112 -76
- 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 +20 -24
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +36 -39
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +57 -53
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +8 -9
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +16 -18
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +7 -8
- package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +9 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +2 -6
- package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +16 -36
- 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/aggregate_function.hpp +8 -29
- package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +95 -0
- 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/function_serialization.hpp +3 -1
- 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 +8 -7
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +2 -0
- 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/settings.hpp +9 -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/parser.hpp +2 -0
- 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 +2 -2
- 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 +2 -2
- 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/expression_binder.hpp +1 -1
- 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 +7 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_execute.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +4 -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/config.cpp +1 -0
- 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/main/settings/settings.cpp +22 -6
- package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
- package/src/duckdb/src/optimizer/expression_heuristics.cpp +1 -0
- 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/column_definition.cpp +5 -8
- 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 +4 -4
- 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 +70 -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 +30 -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 +9 -10
- 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_positional_reference_expression.cpp +8 -3
- 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_create_table.cpp +18 -1
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -114
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +4 -2
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +17 -7
- 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_binder.cpp +3 -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/planner.cpp +5 -15
- 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 +8 -7
- package/src/duckdb/src/storage/index.cpp +1 -3
- 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 +5 -6
- 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
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
@@ -25,7 +25,14 @@ static unique_ptr<FunctionData> RepeatRowBind(ClientContext &context, TableFunct
|
|
25
25
|
return_types.push_back(inputs[input_idx].type());
|
26
26
|
names.push_back("column" + std::to_string(input_idx));
|
27
27
|
}
|
28
|
-
|
28
|
+
auto entry = input.named_parameters.find("num_rows");
|
29
|
+
if (entry == input.named_parameters.end()) {
|
30
|
+
throw BinderException("repeat_rows requires num_rows to be specified");
|
31
|
+
}
|
32
|
+
if (inputs.empty()) {
|
33
|
+
throw BinderException("repeat_rows requires at least one column to be specified");
|
34
|
+
}
|
35
|
+
return make_uniq<RepeatRowFunctionData>(inputs, entry->second.GetValue<int64_t>());
|
29
36
|
}
|
30
37
|
|
31
38
|
static unique_ptr<GlobalTableFunctionState> RepeatRowInit(ClientContext &context, TableFunctionInitInput &input) {
|
@@ -33,7 +40,7 @@ static unique_ptr<GlobalTableFunctionState> RepeatRowInit(ClientContext &context
|
|
33
40
|
}
|
34
41
|
|
35
42
|
static void RepeatRowFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
36
|
-
auto &bind_data =
|
43
|
+
auto &bind_data = data_p.bind_data->Cast<RepeatRowFunctionData>();
|
37
44
|
auto &state = data_p.global_state->Cast<RepeatRowOperatorData>();
|
38
45
|
|
39
46
|
idx_t remaining = MinValue<idx_t>(bind_data.target_count - state.current_count, STANDARD_VECTOR_SIZE);
|
@@ -45,7 +52,7 @@ static void RepeatRowFunction(ClientContext &context, TableFunctionInput &data_p
|
|
45
52
|
}
|
46
53
|
|
47
54
|
static unique_ptr<NodeStatistics> RepeatRowCardinality(ClientContext &context, const FunctionData *bind_data_p) {
|
48
|
-
auto &bind_data = (
|
55
|
+
auto &bind_data = bind_data_p->Cast<RepeatRowFunctionData>();
|
49
56
|
return make_uniq<NodeStatistics>(bind_data.target_count, bind_data.target_count);
|
50
57
|
}
|
51
58
|
|
@@ -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;
|
@@ -6,8 +6,8 @@ namespace duckdb {
|
|
6
6
|
|
7
7
|
// FLAT, CONSTANT, DICTIONARY, SEQUENCE
|
8
8
|
struct TestVectorBindData : public TableFunctionData {
|
9
|
-
LogicalType
|
10
|
-
bool all_flat;
|
9
|
+
vector<LogicalType> types;
|
10
|
+
bool all_flat = false;
|
11
11
|
};
|
12
12
|
|
13
13
|
struct TestVectorTypesData : public GlobalTableFunctionState {
|
@@ -19,16 +19,41 @@ struct TestVectorTypesData : public GlobalTableFunctionState {
|
|
19
19
|
};
|
20
20
|
|
21
21
|
struct TestVectorInfo {
|
22
|
-
TestVectorInfo(const LogicalType &
|
22
|
+
TestVectorInfo(const vector<LogicalType> &types, const map<LogicalTypeId, TestType> &test_type_map,
|
23
23
|
vector<unique_ptr<DataChunk>> &entries)
|
24
|
-
:
|
24
|
+
: types(types), test_type_map(test_type_map), entries(entries) {
|
25
25
|
}
|
26
26
|
|
27
|
-
const LogicalType &
|
27
|
+
const vector<LogicalType> &types;
|
28
28
|
const map<LogicalTypeId, TestType> &test_type_map;
|
29
29
|
vector<unique_ptr<DataChunk>> &entries;
|
30
30
|
};
|
31
31
|
|
32
|
+
struct TestGeneratedValues {
|
33
|
+
public:
|
34
|
+
void AddColumn(vector<Value> values) {
|
35
|
+
if (!column_values.empty() && column_values[0].size() != values.size()) {
|
36
|
+
throw InternalException("Size mismatch when adding a column to TestGeneratedValues");
|
37
|
+
}
|
38
|
+
column_values.push_back(std::move(values));
|
39
|
+
}
|
40
|
+
|
41
|
+
const Value &GetValue(idx_t row, idx_t column) const {
|
42
|
+
return column_values[column][row];
|
43
|
+
}
|
44
|
+
|
45
|
+
idx_t Rows() const {
|
46
|
+
return column_values.empty() ? 0 : column_values[0].size();
|
47
|
+
}
|
48
|
+
|
49
|
+
idx_t Columns() const {
|
50
|
+
return column_values.size();
|
51
|
+
}
|
52
|
+
|
53
|
+
private:
|
54
|
+
vector<vector<Value>> column_values;
|
55
|
+
};
|
56
|
+
|
32
57
|
struct TestVectorFlat {
|
33
58
|
static constexpr const idx_t TEST_VECTOR_CARDINALITY = 3;
|
34
59
|
|
@@ -75,14 +100,25 @@ struct TestVectorFlat {
|
|
75
100
|
return result;
|
76
101
|
}
|
77
102
|
|
103
|
+
static TestGeneratedValues GenerateValues(TestVectorInfo &info) {
|
104
|
+
// generate the values for each column
|
105
|
+
TestGeneratedValues generated_values;
|
106
|
+
for (auto &type : info.types) {
|
107
|
+
generated_values.AddColumn(GenerateValues(info, type));
|
108
|
+
}
|
109
|
+
return generated_values;
|
110
|
+
}
|
111
|
+
|
78
112
|
static void Generate(TestVectorInfo &info) {
|
79
|
-
|
80
|
-
for (idx_t cur_row = 0; cur_row < result_values.
|
113
|
+
auto result_values = GenerateValues(info);
|
114
|
+
for (idx_t cur_row = 0; cur_row < result_values.Rows(); cur_row += STANDARD_VECTOR_SIZE) {
|
81
115
|
auto result = make_uniq<DataChunk>();
|
82
|
-
result->Initialize(Allocator::DefaultAllocator(),
|
83
|
-
auto cardinality = MinValue<idx_t>(STANDARD_VECTOR_SIZE, result_values.
|
84
|
-
for (idx_t
|
85
|
-
|
116
|
+
result->Initialize(Allocator::DefaultAllocator(), info.types);
|
117
|
+
auto cardinality = MinValue<idx_t>(STANDARD_VECTOR_SIZE, result_values.Rows() - cur_row);
|
118
|
+
for (idx_t c = 0; c < info.types.size(); c++) {
|
119
|
+
for (idx_t i = 0; i < cardinality; i++) {
|
120
|
+
result->data[c].SetValue(i, result_values.GetValue(cur_row + i, c));
|
121
|
+
}
|
86
122
|
}
|
87
123
|
result->SetCardinality(cardinality);
|
88
124
|
info.entries.push_back(std::move(result));
|
@@ -92,13 +128,15 @@ struct TestVectorFlat {
|
|
92
128
|
|
93
129
|
struct TestVectorConstant {
|
94
130
|
static void Generate(TestVectorInfo &info) {
|
95
|
-
auto values = TestVectorFlat::GenerateValues(info
|
131
|
+
auto values = TestVectorFlat::GenerateValues(info);
|
96
132
|
for (idx_t cur_row = 0; cur_row < TestVectorFlat::TEST_VECTOR_CARDINALITY; cur_row += STANDARD_VECTOR_SIZE) {
|
97
133
|
auto result = make_uniq<DataChunk>();
|
98
|
-
result->Initialize(Allocator::DefaultAllocator(),
|
134
|
+
result->Initialize(Allocator::DefaultAllocator(), info.types);
|
99
135
|
auto cardinality = MinValue<idx_t>(STANDARD_VECTOR_SIZE, TestVectorFlat::TEST_VECTOR_CARDINALITY - cur_row);
|
100
|
-
|
101
|
-
|
136
|
+
for (idx_t c = 0; c < info.types.size(); c++) {
|
137
|
+
result->data[c].SetValue(0, values.GetValue(0, c));
|
138
|
+
result->data[c].SetVectorType(VectorType::CONSTANT_VECTOR);
|
139
|
+
}
|
102
140
|
result->SetCardinality(cardinality);
|
103
141
|
|
104
142
|
info.entries.push_back(std::move(result));
|
@@ -160,9 +198,11 @@ struct TestVectorSequence {
|
|
160
198
|
static void Generate(TestVectorInfo &info) {
|
161
199
|
#if STANDARD_VECTOR_SIZE > 2
|
162
200
|
auto result = make_uniq<DataChunk>();
|
163
|
-
result->Initialize(Allocator::DefaultAllocator(),
|
201
|
+
result->Initialize(Allocator::DefaultAllocator(), info.types);
|
164
202
|
|
165
|
-
|
203
|
+
for (idx_t c = 0; c < info.types.size(); c++) {
|
204
|
+
GenerateVector(info, info.types[c], result->data[c]);
|
205
|
+
}
|
166
206
|
result->SetCardinality(3);
|
167
207
|
info.entries.push_back(std::move(result));
|
168
208
|
#endif
|
@@ -195,11 +235,23 @@ struct TestVectorDictionary {
|
|
195
235
|
static unique_ptr<FunctionData> TestVectorTypesBind(ClientContext &context, TableFunctionBindInput &input,
|
196
236
|
vector<LogicalType> &return_types, vector<string> &names) {
|
197
237
|
auto result = make_uniq<TestVectorBindData>();
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
238
|
+
for (idx_t i = 0; i < input.inputs.size(); i++) {
|
239
|
+
string name = "test_vector";
|
240
|
+
if (i > 0) {
|
241
|
+
name += to_string(i + 1);
|
242
|
+
}
|
243
|
+
auto &input_val = input.inputs[i];
|
244
|
+
names.emplace_back(name);
|
245
|
+
return_types.push_back(input_val.type());
|
246
|
+
result->types.push_back(input_val.type());
|
247
|
+
}
|
248
|
+
for (auto &entry : input.named_parameters) {
|
249
|
+
if (entry.first == "all_flat") {
|
250
|
+
result->all_flat = BooleanValue::Get(entry.second);
|
251
|
+
} else {
|
252
|
+
throw InternalException("Unrecognized named parameter for test_vector_types");
|
253
|
+
}
|
254
|
+
}
|
203
255
|
return std::move(result);
|
204
256
|
}
|
205
257
|
|
@@ -215,7 +267,7 @@ unique_ptr<GlobalTableFunctionState> TestVectorTypesInit(ClientContext &context,
|
|
215
267
|
test_type_map.insert(make_pair(test_type.type.id(), std::move(test_type)));
|
216
268
|
}
|
217
269
|
|
218
|
-
TestVectorInfo info(bind_data.
|
270
|
+
TestVectorInfo info(bind_data.types, test_type_map, result->entries);
|
219
271
|
TestVectorFlat::Generate(info);
|
220
272
|
TestVectorConstant::Generate(info);
|
221
273
|
TestVectorDictionary::Generate(info);
|
@@ -233,7 +285,7 @@ unique_ptr<GlobalTableFunctionState> TestVectorTypesInit(ClientContext &context,
|
|
233
285
|
}
|
234
286
|
|
235
287
|
void TestVectorTypesFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
236
|
-
auto &data =
|
288
|
+
auto &data = data_p.global_state->Cast<TestVectorTypesData>();
|
237
289
|
if (data.offset >= data.entries.size()) {
|
238
290
|
// finished returning values
|
239
291
|
return;
|
@@ -243,8 +295,12 @@ void TestVectorTypesFunction(ClientContext &context, TableFunctionInput &data_p,
|
|
243
295
|
}
|
244
296
|
|
245
297
|
void TestVectorTypesFun::RegisterFunction(BuiltinFunctions &set) {
|
246
|
-
|
247
|
-
|
298
|
+
TableFunction test_vector_types("test_vector_types", {LogicalType::ANY}, TestVectorTypesFunction,
|
299
|
+
TestVectorTypesBind, TestVectorTypesInit);
|
300
|
+
test_vector_types.varargs = LogicalType::ANY;
|
301
|
+
test_vector_types.named_parameters["all_flat"] = LogicalType::BOOLEAN;
|
302
|
+
|
303
|
+
set.AddFunction(std::move(test_vector_types));
|
248
304
|
}
|
249
305
|
|
250
306
|
} // namespace duckdb
|
@@ -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-dev276"
|
3
3
|
#endif
|
4
4
|
#ifndef DUCKDB_SOURCE_ID
|
5
|
-
#define DUCKDB_SOURCE_ID "
|
5
|
+
#define DUCKDB_SOURCE_ID "98475f4555"
|
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;
|
@@ -229,9 +229,6 @@ public:
|
|
229
229
|
DUCKDB_API static LogicalType GetType(ClientContext &context, const string &catalog_name, const string &schema,
|
230
230
|
const string &name);
|
231
231
|
|
232
|
-
static bool TypeExists(ClientContext &context, const string &catalog_name, const string &schema,
|
233
|
-
const string &name);
|
234
|
-
|
235
232
|
template <class T>
|
236
233
|
optional_ptr<T> GetEntry(ClientContext &context, const string &schema_name, const string &name,
|
237
234
|
OnEntryNotFound if_not_found, QueryErrorContext error_context = QueryErrorContext()) {
|
@@ -333,13 +330,13 @@ public:
|
|
333
330
|
template <class TARGET>
|
334
331
|
TARGET &Cast() {
|
335
332
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
336
|
-
return
|
333
|
+
return reinterpret_cast<TARGET &>(*this);
|
337
334
|
}
|
338
335
|
|
339
336
|
template <class TARGET>
|
340
337
|
const TARGET &Cast() const {
|
341
338
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
342
|
-
return
|
339
|
+
return reinterpret_cast<const TARGET &>(*this);
|
343
340
|
}
|
344
341
|
};
|
345
342
|
|
@@ -45,6 +45,8 @@ public:
|
|
45
45
|
return true;
|
46
46
|
}
|
47
47
|
|
48
|
+
void BindUpdateConstraints(LogicalGet &get, LogicalProjection &proj, LogicalUpdate &update) override;
|
49
|
+
|
48
50
|
private:
|
49
51
|
unique_ptr<CatalogEntry> RenameColumn(ClientContext &context, RenameColumnInfo &info);
|
50
52
|
unique_ptr<CatalogEntry> AddColumn(ClientContext &context, AddColumnInfo &info);
|
@@ -40,6 +40,10 @@ class TableColumnInfo;
|
|
40
40
|
class TableIndexInfo;
|
41
41
|
class TableStorageInfo;
|
42
42
|
|
43
|
+
class LogicalGet;
|
44
|
+
class LogicalProjection;
|
45
|
+
class LogicalUpdate;
|
46
|
+
|
43
47
|
//! A table catalog entry
|
44
48
|
class TableCatalogEntry : public StandardEntry {
|
45
49
|
public:
|
@@ -102,6 +106,8 @@ public:
|
|
102
106
|
//! Returns the storage info of this table
|
103
107
|
virtual TableStorageInfo GetStorageInfo(ClientContext &context) = 0;
|
104
108
|
|
109
|
+
DUCKDB_API virtual void BindUpdateConstraints(LogicalGet &get, LogicalProjection &proj, LogicalUpdate &update);
|
110
|
+
|
105
111
|
protected:
|
106
112
|
// This is used to serialize the entry by #Serialize(Serializer& ). It is virtual to allow
|
107
113
|
// Custom catalog implementations to override the default implementation. We can not make
|
@@ -72,12 +72,12 @@ public:
|
|
72
72
|
template <class TARGET>
|
73
73
|
TARGET &Cast() {
|
74
74
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
75
|
-
return
|
75
|
+
return reinterpret_cast<TARGET &>(*this);
|
76
76
|
}
|
77
77
|
template <class TARGET>
|
78
78
|
const TARGET &Cast() const {
|
79
79
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
80
|
-
return
|
80
|
+
return reinterpret_cast<const TARGET &>(*this);
|
81
81
|
}
|
82
82
|
};
|
83
83
|
|
@@ -35,14 +35,16 @@ private:
|
|
35
35
|
static string WriteOptionallyQuoted(const string &input);
|
36
36
|
};
|
37
37
|
|
38
|
+
enum class CatalogSetPathType { SET_SCHEMA, SET_SCHEMAS };
|
39
|
+
|
38
40
|
//! The schema search path, in order by which entries are searched if no schema entry is provided
|
39
41
|
class CatalogSearchPath {
|
40
42
|
public:
|
41
43
|
DUCKDB_API explicit CatalogSearchPath(ClientContext &client_p);
|
42
44
|
CatalogSearchPath(const CatalogSearchPath &other) = delete;
|
43
45
|
|
44
|
-
DUCKDB_API void Set(CatalogSearchEntry new_value,
|
45
|
-
DUCKDB_API void Set(vector<CatalogSearchEntry> new_paths,
|
46
|
+
DUCKDB_API void Set(CatalogSearchEntry new_value, CatalogSetPathType set_type);
|
47
|
+
DUCKDB_API void Set(vector<CatalogSearchEntry> new_paths, CatalogSetPathType set_type);
|
46
48
|
DUCKDB_API void Reset();
|
47
49
|
|
48
50
|
DUCKDB_API const vector<CatalogSearchEntry> &Get();
|
@@ -56,9 +58,13 @@ public:
|
|
56
58
|
DUCKDB_API vector<string> GetSchemasForCatalog(const string &catalog);
|
57
59
|
DUCKDB_API vector<string> GetCatalogsForSchema(const string &schema);
|
58
60
|
|
61
|
+
DUCKDB_API bool SchemaInSearchPath(ClientContext &context, const string &catalog_name, const string &schema_name);
|
62
|
+
|
59
63
|
private:
|
60
64
|
void SetPaths(vector<CatalogSearchEntry> new_paths);
|
61
65
|
|
66
|
+
string GetSetName(CatalogSetPathType set_type);
|
67
|
+
|
62
68
|
private:
|
63
69
|
ClientContext &context;
|
64
70
|
vector<CatalogSearchEntry> paths;
|
@@ -0,0 +1,97 @@
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
2
|
+
// DuckDB
|
3
|
+
//
|
4
|
+
// duckdb/catalog/default/builtin_types/types.hpp
|
5
|
+
//
|
6
|
+
//
|
7
|
+
//===----------------------------------------------------------------------===//
|
8
|
+
// This file is generated by scripts/generate_builtin_types.py
|
9
|
+
|
10
|
+
#pragma once
|
11
|
+
|
12
|
+
#include "duckdb/common/types.hpp"
|
13
|
+
#include "duckdb/common/array.hpp"
|
14
|
+
|
15
|
+
namespace duckdb {
|
16
|
+
|
17
|
+
struct DefaultType {
|
18
|
+
const char *name;
|
19
|
+
LogicalTypeId type;
|
20
|
+
};
|
21
|
+
|
22
|
+
using builtin_type_array = std::array<DefaultType, 70>;
|
23
|
+
|
24
|
+
static constexpr const builtin_type_array BUILTIN_TYPES{{
|
25
|
+
{"decimal", LogicalTypeId::DECIMAL},
|
26
|
+
{"dec", LogicalTypeId::DECIMAL},
|
27
|
+
{"numeric", LogicalTypeId::DECIMAL},
|
28
|
+
{"time", LogicalTypeId::TIME},
|
29
|
+
{"date", LogicalTypeId::DATE},
|
30
|
+
{"timestamp", LogicalTypeId::TIMESTAMP},
|
31
|
+
{"datetime", LogicalTypeId::TIMESTAMP},
|
32
|
+
{"timestamp_us", LogicalTypeId::TIMESTAMP},
|
33
|
+
{"timestamp_ms", LogicalTypeId::TIMESTAMP_MS},
|
34
|
+
{"timestamp_ns", LogicalTypeId::TIMESTAMP_NS},
|
35
|
+
{"timestamp_s", LogicalTypeId::TIMESTAMP_SEC},
|
36
|
+
{"timestamptz", LogicalTypeId::TIMESTAMP_TZ},
|
37
|
+
{"timetz", LogicalTypeId::TIME_TZ},
|
38
|
+
{"interval", LogicalTypeId::INTERVAL},
|
39
|
+
{"varchar", LogicalTypeId::VARCHAR},
|
40
|
+
{"bpchar", LogicalTypeId::VARCHAR},
|
41
|
+
{"string", LogicalTypeId::VARCHAR},
|
42
|
+
{"char", LogicalTypeId::VARCHAR},
|
43
|
+
{"nvarchar", LogicalTypeId::VARCHAR},
|
44
|
+
{"text", LogicalTypeId::VARCHAR},
|
45
|
+
{"blob", LogicalTypeId::BLOB},
|
46
|
+
{"bytea", LogicalTypeId::BLOB},
|
47
|
+
{"varbinary", LogicalTypeId::BLOB},
|
48
|
+
{"binary", LogicalTypeId::BLOB},
|
49
|
+
{"hugeint", LogicalTypeId::HUGEINT},
|
50
|
+
{"int128", LogicalTypeId::HUGEINT},
|
51
|
+
{"bigint", LogicalTypeId::BIGINT},
|
52
|
+
{"oid", LogicalTypeId::BIGINT},
|
53
|
+
{"long", LogicalTypeId::BIGINT},
|
54
|
+
{"int8", LogicalTypeId::BIGINT},
|
55
|
+
{"int64", LogicalTypeId::BIGINT},
|
56
|
+
{"ubigint", LogicalTypeId::UBIGINT},
|
57
|
+
{"uint64", LogicalTypeId::UBIGINT},
|
58
|
+
{"integer", LogicalTypeId::INTEGER},
|
59
|
+
{"int", LogicalTypeId::INTEGER},
|
60
|
+
{"int4", LogicalTypeId::INTEGER},
|
61
|
+
{"signed", LogicalTypeId::INTEGER},
|
62
|
+
{"integral", LogicalTypeId::INTEGER},
|
63
|
+
{"int32", LogicalTypeId::INTEGER},
|
64
|
+
{"uinteger", LogicalTypeId::UINTEGER},
|
65
|
+
{"uint32", LogicalTypeId::UINTEGER},
|
66
|
+
{"smallint", LogicalTypeId::SMALLINT},
|
67
|
+
{"int2", LogicalTypeId::SMALLINT},
|
68
|
+
{"short", LogicalTypeId::SMALLINT},
|
69
|
+
{"int16", LogicalTypeId::SMALLINT},
|
70
|
+
{"usmallint", LogicalTypeId::USMALLINT},
|
71
|
+
{"uint16", LogicalTypeId::USMALLINT},
|
72
|
+
{"tinyint", LogicalTypeId::TINYINT},
|
73
|
+
{"int1", LogicalTypeId::TINYINT},
|
74
|
+
{"utinyint", LogicalTypeId::UTINYINT},
|
75
|
+
{"uint8", LogicalTypeId::UTINYINT},
|
76
|
+
{"struct", LogicalTypeId::STRUCT},
|
77
|
+
{"row", LogicalTypeId::STRUCT},
|
78
|
+
{"list", LogicalTypeId::LIST},
|
79
|
+
{"map", LogicalTypeId::MAP},
|
80
|
+
{"union", LogicalTypeId::UNION},
|
81
|
+
{"bit", LogicalTypeId::BIT},
|
82
|
+
{"bitstring", LogicalTypeId::BIT},
|
83
|
+
{"boolean", LogicalTypeId::BOOLEAN},
|
84
|
+
{"bool", LogicalTypeId::BOOLEAN},
|
85
|
+
{"logical", LogicalTypeId::BOOLEAN},
|
86
|
+
{"uuid", LogicalTypeId::UUID},
|
87
|
+
{"guid", LogicalTypeId::UUID},
|
88
|
+
{"enum", LogicalTypeId::ENUM},
|
89
|
+
{"null", LogicalTypeId::SQLNULL},
|
90
|
+
{"float", LogicalTypeId::FLOAT},
|
91
|
+
{"real", LogicalTypeId::FLOAT},
|
92
|
+
{"float4", LogicalTypeId::FLOAT},
|
93
|
+
{"double", LogicalTypeId::DOUBLE},
|
94
|
+
{"float8", LogicalTypeId::DOUBLE}
|
95
|
+
}};
|
96
|
+
|
97
|
+
} // namespace duckdb
|
@@ -10,6 +10,8 @@
|
|
10
10
|
|
11
11
|
#include "duckdb/common/adbc/adbc.h"
|
12
12
|
|
13
|
+
#include <string>
|
14
|
+
|
13
15
|
namespace duckdb_adbc {
|
14
16
|
|
15
17
|
AdbcStatusCode DatabaseNew(struct AdbcDatabase *database, struct AdbcError *error);
|
@@ -82,4 +84,7 @@ AdbcStatusCode StatementExecutePartitions(struct AdbcStatement *statement, struc
|
|
82
84
|
struct AdbcPartitions *partitions, int64_t *rows_affected,
|
83
85
|
struct AdbcError *error);
|
84
86
|
|
87
|
+
void SetError(struct AdbcError *error, const std::string &message);
|
88
|
+
|
89
|
+
void InitiliazeADBCError(AdbcError *error);
|
85
90
|
} // namespace duckdb_adbc
|
@@ -26,6 +26,17 @@ struct PrivateAllocatorData {
|
|
26
26
|
virtual ~PrivateAllocatorData();
|
27
27
|
|
28
28
|
unique_ptr<AllocatorDebugInfo> debug_info;
|
29
|
+
|
30
|
+
template <class TARGET>
|
31
|
+
TARGET &Cast() {
|
32
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
33
|
+
return reinterpret_cast<TARGET &>(*this);
|
34
|
+
}
|
35
|
+
template <class TARGET>
|
36
|
+
const TARGET &Cast() const {
|
37
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
38
|
+
return reinterpret_cast<const TARGET &>(*this);
|
39
|
+
}
|
29
40
|
};
|
30
41
|
|
31
42
|
typedef data_ptr_t (*allocate_function_ptr_t)(PrivateAllocatorData *private_data, idx_t size);
|
@@ -85,14 +96,14 @@ public:
|
|
85
96
|
return AllocatedData(*this, AllocateData(size), size);
|
86
97
|
}
|
87
98
|
static data_ptr_t DefaultAllocate(PrivateAllocatorData *private_data, idx_t size) {
|
88
|
-
return (
|
99
|
+
return data_ptr_cast(malloc(size));
|
89
100
|
}
|
90
101
|
static void DefaultFree(PrivateAllocatorData *private_data, data_ptr_t pointer, idx_t size) {
|
91
102
|
free(pointer);
|
92
103
|
}
|
93
104
|
static data_ptr_t DefaultReallocate(PrivateAllocatorData *private_data, data_ptr_t pointer, idx_t old_size,
|
94
105
|
idx_t size) {
|
95
|
-
return (
|
106
|
+
return data_ptr_cast(realloc(pointer, size));
|
96
107
|
}
|
97
108
|
static Allocator &Get(ClientContext &context);
|
98
109
|
static Allocator &Get(DatabaseInstance &db);
|
@@ -120,7 +131,7 @@ T *AllocateArray(idx_t size) {
|
|
120
131
|
|
121
132
|
template <class T>
|
122
133
|
void DeleteArray(T *ptr, idx_t size) {
|
123
|
-
Allocator::DefaultAllocator().FreeData((
|
134
|
+
Allocator::DefaultAllocator().FreeData(data_ptr_cast(ptr), size * sizeof(T));
|
124
135
|
}
|
125
136
|
|
126
137
|
template <typename T, typename... ARGS>
|
@@ -132,7 +143,7 @@ T *AllocateObject(ARGS &&... args) {
|
|
132
143
|
template <typename T>
|
133
144
|
void DestroyObject(T *ptr) {
|
134
145
|
ptr->~T();
|
135
|
-
Allocator::DefaultAllocator().FreeData((
|
146
|
+
Allocator::DefaultAllocator().FreeData(data_ptr_cast(ptr), sizeof(T));
|
136
147
|
}
|
137
148
|
|
138
149
|
//! The BufferAllocator is a wrapper around the global allocator class that sends any allocations made through the
|
@@ -73,12 +73,17 @@ struct ArrowBuffer {
|
|
73
73
|
return dataptr;
|
74
74
|
}
|
75
75
|
|
76
|
+
template <class T>
|
77
|
+
T *GetData() {
|
78
|
+
return reinterpret_cast<T *>(data());
|
79
|
+
}
|
80
|
+
|
76
81
|
private:
|
77
82
|
void ReserveInternal(idx_t bytes) {
|
78
83
|
if (dataptr) {
|
79
|
-
dataptr = (
|
84
|
+
dataptr = data_ptr_cast(realloc(dataptr, bytes));
|
80
85
|
} else {
|
81
|
-
dataptr = (
|
86
|
+
dataptr = data_ptr_cast(malloc(bytes));
|
82
87
|
}
|
83
88
|
capacity = bytes;
|
84
89
|
}
|
@@ -26,10 +26,10 @@ public:
|
|
26
26
|
}
|
27
27
|
void Add(const char *data);
|
28
28
|
void Add(string_t string) {
|
29
|
-
MD5Update((
|
29
|
+
MD5Update(const_data_ptr_cast(string.GetData()), string.GetSize());
|
30
30
|
}
|
31
31
|
void Add(const string &data) {
|
32
|
-
MD5Update((
|
32
|
+
MD5Update(const_data_ptr_cast(data.c_str()), data.size());
|
33
33
|
}
|
34
34
|
|
35
35
|
//! Write the 16-byte (binary) digest to the specified location
|
@@ -22,8 +22,8 @@ enum class PhysicalType : uint8_t;
|
|
22
22
|
struct LogicalType;
|
23
23
|
struct hugeint_t;
|
24
24
|
|
25
|
-
inline void assert_restrict_function(void *left_start, void *left_end, void *right_start,
|
26
|
-
const char *fname, int linenr) {
|
25
|
+
inline void assert_restrict_function(const void *left_start, const void *left_end, const void *right_start,
|
26
|
+
const void *right_end, const char *fname, int linenr) {
|
27
27
|
// assert that the two pointers do not overlap
|
28
28
|
#ifdef DEBUG
|
29
29
|
if (!(left_end <= right_start || right_end <= left_start)) {
|
@@ -105,6 +105,9 @@ public:
|
|
105
105
|
|
106
106
|
template <typename... Args>
|
107
107
|
static string ConstructMessage(const string &msg, Args... params) {
|
108
|
+
const std::size_t num_args = sizeof...(Args);
|
109
|
+
if (num_args == 0)
|
110
|
+
return msg;
|
108
111
|
std::vector<ExceptionFormatValue> values;
|
109
112
|
return ConstructMessageRecursive(msg, values, params...);
|
110
113
|
}
|
@@ -34,12 +34,12 @@ public:
|
|
34
34
|
static_assert(std::is_trivially_destructible<T>(), "WriteField object must be trivially destructible");
|
35
35
|
|
36
36
|
AddField();
|
37
|
-
WriteData((
|
37
|
+
WriteData(const_data_ptr_cast(&element), sizeof(T));
|
38
38
|
}
|
39
39
|
|
40
40
|
//! Write a string with a length prefix
|
41
41
|
void WriteString(const string &val) {
|
42
|
-
WriteStringLen((
|
42
|
+
WriteStringLen(const_data_ptr_cast(val.c_str()), val.size());
|
43
43
|
}
|
44
44
|
void WriteStringLen(const_data_ptr_t val, idx_t len) {
|
45
45
|
AddField();
|
@@ -135,7 +135,7 @@ public:
|
|
135
135
|
private:
|
136
136
|
template <class T>
|
137
137
|
void Write(const T &element) {
|
138
|
-
WriteData((
|
138
|
+
WriteData(const_data_ptr_cast(&element), sizeof(T));
|
139
139
|
}
|
140
140
|
|
141
141
|
DUCKDB_API void WriteData(const_data_ptr_t buffer, idx_t write_size);
|
@@ -77,6 +77,17 @@ public:
|
|
77
77
|
return path;
|
78
78
|
}
|
79
79
|
|
80
|
+
template <class TARGET>
|
81
|
+
TARGET &Cast() {
|
82
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
83
|
+
return reinterpret_cast<TARGET &>(*this);
|
84
|
+
}
|
85
|
+
template <class TARGET>
|
86
|
+
const TARGET &Cast() const {
|
87
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
88
|
+
return reinterpret_cast<const TARGET &>(*this);
|
89
|
+
}
|
90
|
+
|
80
91
|
public:
|
81
92
|
FileSystem &file_system;
|
82
93
|
string path;
|
@@ -12,9 +12,8 @@ namespace duckdb {
|
|
12
12
|
|
13
13
|
class FSSTPrimitives {
|
14
14
|
public:
|
15
|
-
static string_t DecompressValue(void *duckdb_fsst_decoder, Vector &result,
|
15
|
+
static string_t DecompressValue(void *duckdb_fsst_decoder, Vector &result, const char *compressed_string,
|
16
16
|
idx_t compressed_string_len);
|
17
|
-
static Value DecompressValue(void *duckdb_fsst_decoder,
|
18
|
-
idx_t compressed_string_len);
|
17
|
+
static Value DecompressValue(void *duckdb_fsst_decoder, const char *compressed_string, idx_t compressed_string_len);
|
19
18
|
};
|
20
19
|
} // namespace duckdb
|