duckdb 0.8.1-dev96.0 → 0.8.2-dev1.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 +3 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
- package/src/duckdb/extension/icu/icu-extension.cpp +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +5 -4
- package/src/duckdb/extension/icu/icu-strptime.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/nfsubs.cpp +0 -2
- 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 +12 -2
- package/src/duckdb/extension/json/include/json_scan.hpp +5 -2
- package/src/duckdb/extension/json/json_functions/json_contains.cpp +5 -0
- package/src/duckdb/extension/json/json_functions/json_create.cpp +10 -10
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +2 -2
- 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 +11 -11
- 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 +43 -27
- package/src/duckdb/extension/parquet/column_reader.cpp +5 -1
- package/src/duckdb/extension/parquet/include/decode_utils.hpp +6 -0
- package/src/duckdb/extension/parquet/parquet-extension.cpp +26 -1
- package/src/duckdb/src/catalog/catalog.cpp +5 -17
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +7 -1
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +121 -0
- package/src/duckdb/src/catalog/catalog_search_path.cpp +49 -12
- package/src/duckdb/src/catalog/default/default_types.cpp +9 -84
- package/src/duckdb/src/common/adbc/adbc.cpp +118 -12
- package/src/duckdb/src/common/adbc/driver_manager.cpp +0 -20
- package/src/duckdb/src/common/arrow/arrow_converter.cpp +11 -12
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +4 -3
- package/src/duckdb/src/common/exception.cpp +4 -1
- package/src/duckdb/src/common/exception_format_value.cpp +24 -15
- package/src/duckdb/src/common/multi_file_reader.cpp +3 -0
- package/src/duckdb/src/common/random_engine.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_scatter_gather.cpp +44 -7
- package/src/duckdb/src/common/types/time.cpp +2 -8
- package/src/duckdb/src/common/types/timestamp.cpp +37 -1
- package/src/duckdb/src/common/types/value.cpp +1 -0
- package/src/duckdb/src/common/types.cpp +4 -0
- 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 +30 -33
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +52 -65
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +48 -48
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +39 -40
- 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 +88 -100
- 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 +37 -38
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +44 -80
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +104 -122
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +57 -93
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +22 -23
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +18 -19
- 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/date/date_part.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/date/make_date.cpp +3 -0
- package/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp +14 -0
- package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +23 -6
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +1 -2
- package/src/duckdb/src/core_functions/scalar/map/map_concat.cpp +3 -0
- package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +3 -3
- package/src/duckdb/src/execution/index/art/art.cpp +80 -7
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +20 -1
- package/src/duckdb/src/execution/index/art/leaf.cpp +11 -11
- package/src/duckdb/src/execution/index/art/leaf_segment.cpp +10 -0
- package/src/duckdb/src/execution/index/art/node.cpp +48 -35
- package/src/duckdb/src/execution/index/art/node16.cpp +3 -0
- package/src/duckdb/src/execution/index/art/node256.cpp +1 -0
- package/src/duckdb/src/execution/index/art/node4.cpp +3 -0
- package/src/duckdb/src/execution/index/art/node48.cpp +2 -0
- package/src/duckdb/src/execution/index/art/prefix.cpp +2 -0
- package/src/duckdb/src/execution/join_hashtable.cpp +2 -0
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +26 -9
- 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/physical_iejoin.cpp +3 -6
- package/src/duckdb/src/execution/operator/projection/physical_tableinout_function.cpp +1 -0
- package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +8 -3
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +0 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +29 -3
- package/src/duckdb/src/execution/reservoir_sample.cpp +18 -4
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +159 -21
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +67 -74
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +7 -7
- package/src/duckdb/src/function/cast/list_casts.cpp +2 -4
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +33 -23
- package/src/duckdb/src/function/scalar/list/list_extract.cpp +1 -1
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/regexp/regexp_util.cpp +6 -2
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +2 -2
- package/src/duckdb/src/function/table/arrow.cpp +2 -2
- package/src/duckdb/src/function/table/checkpoint.cpp +3 -0
- package/src/duckdb/src/function/table/read_csv.cpp +15 -17
- package/src/duckdb/src/function/table/repeat.cpp +3 -0
- package/src/duckdb/src/function/table/repeat_row.cpp +8 -1
- package/src/duckdb/src/function/table/system/pragma_storage_info.cpp +4 -4
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +81 -25
- package/src/duckdb/src/function/table/table_scan.cpp +2 -2
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +0 -3
- 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 +11 -1
- 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/arrow/arrow_appender.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_converter.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_options.hpp +8 -1
- package/src/duckdb/src/include/duckdb/common/arrow/result_arrow_wrapper.hpp +0 -1
- package/src/duckdb/src/include/duckdb/common/bit_utils.hpp +16 -22
- package/src/duckdb/src/include/duckdb/common/exception.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/types/time.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +4 -14
- package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +92 -57
- 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/index/art/art.hpp +10 -4
- package/src/duckdb/src/include/duckdb/execution/index/art/fixed_size_allocator.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf_segment.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/node.hpp +13 -3
- package/src/duckdb/src/include/duckdb/execution/index/art/node48.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +9 -30
- package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +95 -0
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +4 -2
- package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -1
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +3 -2
- package/src/duckdb/src/include/duckdb/main/attached_database.hpp +4 -1
- package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +3 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +5 -0
- package/src/duckdb/src/include/duckdb/main/database_manager.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +142 -136
- package/src/duckdb/src/include/duckdb/main/query_result.hpp +6 -0
- package/src/duckdb/src/include/duckdb/main/settings.hpp +19 -0
- package/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp +4 -0
- package/src/duckdb/src/include/duckdb/parallel/meta_pipeline.hpp +12 -3
- package/src/duckdb/src/include/duckdb/parser/parser.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +0 -2
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +5 -0
- 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_pragma.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +4 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/byte_reader.hpp +4 -0
- package/src/duckdb/src/include/duckdb/storage/data_table.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/in_memory_block_manager.hpp +13 -13
- package/src/duckdb/src/include/duckdb/storage/index.hpp +4 -2
- package/src/duckdb/src/include/duckdb/storage/storage_extension.hpp +0 -6
- package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/struct_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp +0 -2
- package/src/duckdb/src/main/attached_database.cpp +8 -0
- package/src/duckdb/src/main/capi/arrow-c.cpp +4 -4
- package/src/duckdb/src/main/capi/config-c.cpp +2 -5
- package/src/duckdb/src/main/client_context.cpp +4 -3
- package/src/duckdb/src/main/config.cpp +2 -0
- package/src/duckdb/src/main/database.cpp +1 -0
- package/src/duckdb/src/main/database_manager.cpp +21 -0
- package/src/duckdb/src/main/query_result.cpp +6 -2
- package/src/duckdb/src/main/settings/settings.cpp +41 -6
- package/src/duckdb/src/optimizer/unnest_rewriter.cpp +27 -16
- package/src/duckdb/src/parallel/executor.cpp +38 -14
- package/src/duckdb/src/parallel/meta_pipeline.cpp +17 -3
- package/src/duckdb/src/parser/column_definition.cpp +5 -8
- package/src/duckdb/src/parser/parsed_data/create_info.cpp +0 -3
- package/src/duckdb/src/parser/parser.cpp +95 -35
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +1 -0
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +3 -0
- package/src/duckdb/src/parser/transform/helpers/nodetype_to_string.cpp +0 -2
- package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +0 -3
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +3 -0
- package/src/duckdb/src/parser/transformer.cpp +0 -2
- package/src/duckdb/src/planner/bind_context.cpp +3 -4
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +0 -2
- package/src/duckdb/src/planner/binder/expression/bind_positional_reference_expression.cpp +8 -3
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +31 -15
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +0 -27
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +18 -1
- package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +0 -25
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -114
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +6 -1
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +5 -0
- package/src/duckdb/src/planner/bound_result_modifier.cpp +14 -0
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +6 -5
- package/src/duckdb/src/planner/expression/bound_default_expression.cpp +7 -1
- package/src/duckdb/src/planner/expression.cpp +3 -0
- package/src/duckdb/src/planner/expression_binder.cpp +3 -2
- package/src/duckdb/src/planner/operator/logical_distinct.cpp +5 -4
- package/src/duckdb/src/planner/operator/logical_pivot.cpp +14 -2
- package/src/duckdb/src/planner/planner.cpp +5 -15
- package/src/duckdb/src/storage/data_table.cpp +10 -8
- package/src/duckdb/src/storage/index.cpp +13 -0
- package/src/duckdb/src/storage/storage_manager.cpp +6 -0
- package/src/duckdb/src/storage/table/column_data.cpp +7 -3
- package/src/duckdb/src/storage/table/list_column_data.cpp +5 -4
- package/src/duckdb/src/storage/table/row_group.cpp +4 -3
- package/src/duckdb/src/storage/table/row_group_collection.cpp +6 -3
- package/src/duckdb/src/storage/table/standard_column_data.cpp +4 -3
- package/src/duckdb/src/storage/table/struct_column_data.cpp +4 -3
- package/src/duckdb/src/storage/wal_replay.cpp +4 -5
- package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +0 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +0 -14
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +12828 -12956
- package/src/duckdb/third_party/zstd/compress/zstd_compress.cpp +3 -0
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_cwksp.h +4 -0
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
- package/src/duckdb/ub_src_parser_transform_statement.cpp +0 -2
- package/test/extension.test.ts +11 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_database_info.hpp +0 -46
- package/src/duckdb/src/parser/transform/statement/transform_create_database.cpp +0 -27
@@ -8,40 +8,13 @@
|
|
8
8
|
|
9
9
|
#pragma once
|
10
10
|
|
11
|
-
#include "duckdb/function/
|
12
|
-
#include "duckdb/storage/statistics/base_statistics.hpp"
|
13
|
-
#include "duckdb/storage/statistics/node_statistics.hpp"
|
11
|
+
#include "duckdb/function/aggregate_state.hpp"
|
14
12
|
#include "duckdb/planner/bound_result_modifier.hpp"
|
15
13
|
#include "duckdb/planner/expression.hpp"
|
16
14
|
#include "duckdb/common/vector_operations/aggregate_executor.hpp"
|
17
15
|
|
18
16
|
namespace duckdb {
|
19
17
|
|
20
|
-
enum class AggregateType : uint8_t { NON_DISTINCT = 1, DISTINCT = 2 };
|
21
|
-
//! Whether or not the input order influences the result of the aggregate
|
22
|
-
enum class AggregateOrderDependent : uint8_t { ORDER_DEPENDENT = 1, NOT_ORDER_DEPENDENT = 2 };
|
23
|
-
|
24
|
-
class BoundAggregateExpression;
|
25
|
-
|
26
|
-
struct AggregateInputData {
|
27
|
-
AggregateInputData(FunctionData *bind_data_p, Allocator &allocator_p)
|
28
|
-
: bind_data(bind_data_p), allocator(allocator_p) {
|
29
|
-
}
|
30
|
-
FunctionData *bind_data;
|
31
|
-
Allocator &allocator;
|
32
|
-
};
|
33
|
-
|
34
|
-
struct AggregateStatisticsInput {
|
35
|
-
AggregateStatisticsInput(FunctionData *bind_data_p, vector<BaseStatistics> &child_stats_p,
|
36
|
-
NodeStatistics *node_stats_p)
|
37
|
-
: bind_data(bind_data_p), child_stats(child_stats_p), node_stats(node_stats_p) {
|
38
|
-
}
|
39
|
-
|
40
|
-
FunctionData *bind_data;
|
41
|
-
vector<BaseStatistics> &child_stats;
|
42
|
-
NodeStatistics *node_stats;
|
43
|
-
};
|
44
|
-
|
45
18
|
//! The type used for sizing hashed aggregate function states
|
46
19
|
typedef idx_t (*aggregate_size_t)();
|
47
20
|
//! The type used for initializing hashed aggregate function states
|
@@ -76,7 +49,7 @@ typedef void (*aggregate_window_t)(Vector inputs[], const ValidityMask &filter_m
|
|
76
49
|
|
77
50
|
typedef void (*aggregate_serialize_t)(FieldWriter &writer, const FunctionData *bind_data,
|
78
51
|
const AggregateFunction &function);
|
79
|
-
typedef unique_ptr<FunctionData> (*aggregate_deserialize_t)(
|
52
|
+
typedef unique_ptr<FunctionData> (*aggregate_deserialize_t)(PlanDeserializationState &context, FieldReader &reader,
|
80
53
|
AggregateFunction &function);
|
81
54
|
|
82
55
|
class AggregateFunction : public BaseScalarFunction {
|
@@ -215,7 +188,7 @@ public:
|
|
215
188
|
|
216
189
|
template <class STATE, class OP>
|
217
190
|
static void StateInitialize(data_ptr_t state) {
|
218
|
-
OP::Initialize(
|
191
|
+
OP::Initialize(*reinterpret_cast<STATE *>(state));
|
219
192
|
}
|
220
193
|
|
221
194
|
template <class STATE, class OP>
|
@@ -281,6 +254,12 @@ public:
|
|
281
254
|
AggregateExecutor::Finalize<STATE, RESULT_TYPE, OP>(states, aggr_input_data, result, count, offset);
|
282
255
|
}
|
283
256
|
|
257
|
+
template <class STATE, class OP>
|
258
|
+
static void StateVoidFinalize(Vector &states, AggregateInputData &aggr_input_data, Vector &result, idx_t count,
|
259
|
+
idx_t offset) {
|
260
|
+
AggregateExecutor::VoidFinalize<STATE, OP>(states, aggr_input_data, result, count, offset);
|
261
|
+
}
|
262
|
+
|
284
263
|
template <class STATE, class OP>
|
285
264
|
static void StateDestroy(Vector &states, AggregateInputData &aggr_input_data, idx_t count) {
|
286
265
|
AggregateExecutor::Destroy<STATE, OP>(states, aggr_input_data, count);
|
@@ -0,0 +1,95 @@
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
2
|
+
// DuckDB
|
3
|
+
//
|
4
|
+
// duckdb/function/aggregate_state.hpp
|
5
|
+
//
|
6
|
+
//
|
7
|
+
//===----------------------------------------------------------------------===//
|
8
|
+
|
9
|
+
#pragma once
|
10
|
+
|
11
|
+
#include "duckdb/function/function.hpp"
|
12
|
+
#include "duckdb/storage/statistics/base_statistics.hpp"
|
13
|
+
#include "duckdb/storage/statistics/node_statistics.hpp"
|
14
|
+
|
15
|
+
namespace duckdb {
|
16
|
+
|
17
|
+
enum class AggregateType : uint8_t { NON_DISTINCT = 1, DISTINCT = 2 };
|
18
|
+
//! Whether or not the input order influences the result of the aggregate
|
19
|
+
enum class AggregateOrderDependent : uint8_t { ORDER_DEPENDENT = 1, NOT_ORDER_DEPENDENT = 2 };
|
20
|
+
|
21
|
+
class BoundAggregateExpression;
|
22
|
+
|
23
|
+
struct AggregateInputData {
|
24
|
+
AggregateInputData(optional_ptr<FunctionData> bind_data_p, Allocator &allocator_p)
|
25
|
+
: bind_data(bind_data_p), allocator(allocator_p) {
|
26
|
+
}
|
27
|
+
optional_ptr<FunctionData> bind_data;
|
28
|
+
Allocator &allocator;
|
29
|
+
};
|
30
|
+
|
31
|
+
struct AggregateUnaryInput {
|
32
|
+
AggregateUnaryInput(AggregateInputData &input_p, ValidityMask &input_mask_p)
|
33
|
+
: input(input_p), input_mask(input_mask_p), input_idx(0) {
|
34
|
+
}
|
35
|
+
|
36
|
+
AggregateInputData &input;
|
37
|
+
ValidityMask &input_mask;
|
38
|
+
idx_t input_idx;
|
39
|
+
|
40
|
+
inline bool RowIsValid() {
|
41
|
+
return input_mask.RowIsValid(input_idx);
|
42
|
+
}
|
43
|
+
};
|
44
|
+
|
45
|
+
struct AggregateBinaryInput {
|
46
|
+
AggregateBinaryInput(AggregateInputData &input_p, ValidityMask &left_mask_p, ValidityMask &right_mask_p)
|
47
|
+
: input(input_p), left_mask(left_mask_p), right_mask(right_mask_p) {
|
48
|
+
}
|
49
|
+
|
50
|
+
AggregateInputData &input;
|
51
|
+
ValidityMask &left_mask;
|
52
|
+
ValidityMask &right_mask;
|
53
|
+
idx_t lidx;
|
54
|
+
idx_t ridx;
|
55
|
+
};
|
56
|
+
|
57
|
+
struct AggregateFinalizeData {
|
58
|
+
AggregateFinalizeData(Vector &result_p, AggregateInputData &input_p)
|
59
|
+
: result(result_p), input(input_p), result_idx(0) {
|
60
|
+
}
|
61
|
+
|
62
|
+
Vector &result;
|
63
|
+
AggregateInputData &input;
|
64
|
+
idx_t result_idx;
|
65
|
+
|
66
|
+
inline void ReturnNull() {
|
67
|
+
switch (result.GetVectorType()) {
|
68
|
+
case VectorType::FLAT_VECTOR:
|
69
|
+
FlatVector::SetNull(result, result_idx, true);
|
70
|
+
break;
|
71
|
+
case VectorType::CONSTANT_VECTOR:
|
72
|
+
ConstantVector::SetNull(result, true);
|
73
|
+
break;
|
74
|
+
default:
|
75
|
+
throw InternalException("Invalid result vector type for aggregate");
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
inline string_t ReturnString(string_t value) {
|
80
|
+
return StringVector::AddStringOrBlob(result, value);
|
81
|
+
}
|
82
|
+
};
|
83
|
+
|
84
|
+
struct AggregateStatisticsInput {
|
85
|
+
AggregateStatisticsInput(optional_ptr<FunctionData> bind_data_p, vector<BaseStatistics> &child_stats_p,
|
86
|
+
optional_ptr<NodeStatistics> node_stats_p)
|
87
|
+
: bind_data(bind_data_p), child_stats(child_stats_p), node_stats(node_stats_p) {
|
88
|
+
}
|
89
|
+
|
90
|
+
optional_ptr<FunctionData> bind_data;
|
91
|
+
vector<BaseStatistics> &child_stats;
|
92
|
+
optional_ptr<NodeStatistics> node_stats;
|
93
|
+
};
|
94
|
+
|
95
|
+
} // namespace duckdb
|
@@ -25,8 +25,10 @@ public:
|
|
25
25
|
bool serialize = function.serialize;
|
26
26
|
writer.WriteField(serialize);
|
27
27
|
if (serialize) {
|
28
|
-
D_ASSERT(function.deserialize);
|
29
28
|
function.serialize(writer, bind_info, function);
|
29
|
+
// First check if serialize throws a NotImplementedException, in which case it doesn't require a deserialize
|
30
|
+
// function
|
31
|
+
D_ASSERT(function.deserialize);
|
30
32
|
}
|
31
33
|
}
|
32
34
|
|
@@ -64,7 +66,7 @@ public:
|
|
64
66
|
throw SerializationException("Function requires deserialization but no deserialization function for %s",
|
65
67
|
function.name);
|
66
68
|
}
|
67
|
-
bind_info = function.deserialize(
|
69
|
+
bind_info = function.deserialize(state, reader, function);
|
68
70
|
} else {
|
69
71
|
D_ASSERT(!function.serialize);
|
70
72
|
D_ASSERT(!function.deserialize);
|
@@ -68,7 +68,7 @@ struct VariableReturnBindData : public FunctionData {
|
|
68
68
|
writer.WriteSerializable(info.stype);
|
69
69
|
}
|
70
70
|
|
71
|
-
static unique_ptr<FunctionData> Deserialize(
|
71
|
+
static unique_ptr<FunctionData> Deserialize(PlanDeserializationState &context, FieldReader &reader,
|
72
72
|
ScalarFunction &bound_function) {
|
73
73
|
auto stype = reader.ReadRequiredSerializable<LogicalType, LogicalType>();
|
74
74
|
return make_uniq<VariableReturnBindData>(std::move(stype));
|
@@ -14,6 +14,7 @@
|
|
14
14
|
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
15
15
|
#include "duckdb/execution/expression_executor_state.hpp"
|
16
16
|
#include "duckdb/function/function.hpp"
|
17
|
+
#include "duckdb/planner/plan_serialization.hpp"
|
17
18
|
#include "duckdb/storage/statistics/base_statistics.hpp"
|
18
19
|
#include "duckdb/common/optional_ptr.hpp"
|
19
20
|
|
@@ -65,7 +66,7 @@ typedef void (*dependency_function_t)(BoundFunctionExpression &expr, DependencyL
|
|
65
66
|
|
66
67
|
typedef void (*function_serialize_t)(FieldWriter &writer, const FunctionData *bind_data,
|
67
68
|
const ScalarFunction &function);
|
68
|
-
typedef unique_ptr<FunctionData> (*function_deserialize_t)(
|
69
|
+
typedef unique_ptr<FunctionData> (*function_deserialize_t)(PlanDeserializationState &state, FieldReader &reader,
|
69
70
|
ScalarFunction &function);
|
70
71
|
|
71
72
|
class ScalarFunction : public BaseScalarFunction {
|
@@ -9,12 +9,12 @@
|
|
9
9
|
#pragma once
|
10
10
|
|
11
11
|
#include "duckdb/common/enums/operator_result_type.hpp"
|
12
|
+
#include "duckdb/common/optional_ptr.hpp"
|
12
13
|
#include "duckdb/execution/execution_context.hpp"
|
13
14
|
#include "duckdb/function/function.hpp"
|
14
15
|
#include "duckdb/planner/bind_context.hpp"
|
15
16
|
#include "duckdb/planner/logical_operator.hpp"
|
16
17
|
#include "duckdb/storage/statistics/node_statistics.hpp"
|
17
|
-
#include "duckdb/common/optional_ptr.hpp"
|
18
18
|
|
19
19
|
#include <functional>
|
20
20
|
|
@@ -204,7 +204,7 @@ typedef string (*table_function_to_string_t)(const FunctionData *bind_data);
|
|
204
204
|
|
205
205
|
typedef void (*table_function_serialize_t)(FieldWriter &writer, const FunctionData *bind_data,
|
206
206
|
const TableFunction &function);
|
207
|
-
typedef unique_ptr<FunctionData> (*table_function_deserialize_t)(
|
207
|
+
typedef unique_ptr<FunctionData> (*table_function_deserialize_t)(PlanDeserializationState &context, FieldReader &reader,
|
208
208
|
TableFunction &function);
|
209
209
|
|
210
210
|
class TableFunction : public SimpleNamedParameterFunction {
|
@@ -265,6 +265,7 @@ public:
|
|
265
265
|
|
266
266
|
table_function_serialize_t serialize;
|
267
267
|
table_function_deserialize_t deserialize;
|
268
|
+
bool verify_serialization = true;
|
268
269
|
|
269
270
|
//! Whether or not the table function supports projection pushdown. If not supported a projection will be added
|
270
271
|
//! that filters out unused columns.
|
@@ -40,7 +40,7 @@ public:
|
|
40
40
|
//! Create an attached database instance with the specified storage extension
|
41
41
|
AttachedDatabase(DatabaseInstance &db, Catalog &catalog, StorageExtension &ext, string name, AttachInfo &info,
|
42
42
|
AccessMode access_mode);
|
43
|
-
~AttachedDatabase();
|
43
|
+
~AttachedDatabase() override;
|
44
44
|
|
45
45
|
void Initialize();
|
46
46
|
|
@@ -57,6 +57,8 @@ public:
|
|
57
57
|
bool IsSystem() const;
|
58
58
|
bool IsTemporary() const;
|
59
59
|
bool IsReadOnly() const;
|
60
|
+
bool IsInitialDatabase() const;
|
61
|
+
void SetInitialDatabase();
|
60
62
|
|
61
63
|
static string ExtractDatabaseName(const string &dbpath);
|
62
64
|
|
@@ -67,6 +69,7 @@ private:
|
|
67
69
|
unique_ptr<TransactionManager> transaction_manager;
|
68
70
|
AttachedDatabaseType type;
|
69
71
|
optional_ptr<Catalog> parent_catalog;
|
72
|
+
bool is_initial_database = false;
|
70
73
|
};
|
71
74
|
|
72
75
|
} // namespace duckdb
|
@@ -13,6 +13,8 @@
|
|
13
13
|
#include "duckdb/common/types.hpp"
|
14
14
|
#include "duckdb/common/types/data_chunk.hpp"
|
15
15
|
#include "duckdb/main/appender.hpp"
|
16
|
+
#include "duckdb/common/arrow/arrow_options.hpp"
|
17
|
+
|
16
18
|
#include <cstring>
|
17
19
|
#include <cassert>
|
18
20
|
|
@@ -46,7 +48,7 @@ struct PendingStatementWrapper {
|
|
46
48
|
struct ArrowResultWrapper {
|
47
49
|
unique_ptr<MaterializedQueryResult> result;
|
48
50
|
unique_ptr<DataChunk> current_chunk;
|
49
|
-
|
51
|
+
ArrowOptions options;
|
50
52
|
};
|
51
53
|
|
52
54
|
struct AppenderWrapper {
|
@@ -28,6 +28,7 @@
|
|
28
28
|
#include "duckdb/optimizer/optimizer_extension.hpp"
|
29
29
|
#include "duckdb/parser/parser_extension.hpp"
|
30
30
|
#include "duckdb/planner/operator_extension.hpp"
|
31
|
+
#include "duckdb/common/arrow/arrow_options.hpp"
|
31
32
|
|
32
33
|
namespace duckdb {
|
33
34
|
class BufferPool;
|
@@ -135,6 +136,8 @@ struct DBConfigOptions {
|
|
135
136
|
WindowAggregationMode window_mode = WindowAggregationMode::WINDOW;
|
136
137
|
//! Whether or not preserving insertion order should be preserved
|
137
138
|
bool preserve_insertion_order = true;
|
139
|
+
//! Whether Arrow Arrays use Large or Regular buffers
|
140
|
+
ArrowOffsetSize arrow_offset_size = ArrowOffsetSize::REGULAR;
|
138
141
|
//! Database configuration variables as controlled by SET
|
139
142
|
case_insensitive_map_t<Value> set_variables;
|
140
143
|
//! Database configuration variable default values;
|
@@ -151,6 +154,8 @@ struct DBConfigOptions {
|
|
151
154
|
DebugInitialize debug_initialize = DebugInitialize::NO_INITIALIZE;
|
152
155
|
//! The set of unrecognized (other) options
|
153
156
|
unordered_map<string, Value> unrecognized_options;
|
157
|
+
//! Whether or not the configuration settings can be altered
|
158
|
+
bool lock_configuration = false;
|
154
159
|
//! Whether to print bindings when printing the plan (debug mode only)
|
155
160
|
static bool debug_print_bindings;
|
156
161
|
|
@@ -44,6 +44,7 @@ public:
|
|
44
44
|
//! Returns a reference to the system catalog
|
45
45
|
Catalog &GetSystemCatalog();
|
46
46
|
static const string &GetDefaultDatabase(ClientContext &context);
|
47
|
+
void SetDefaultDatabase(ClientContext &context, const string &new_value);
|
47
48
|
|
48
49
|
optional_ptr<AttachedDatabase> GetDatabaseFromPath(ClientContext &context, const string &path);
|
49
50
|
vector<reference<AttachedDatabase>> GetDatabases(ClientContext &context);
|
@@ -17,142 +17,148 @@ struct ExtensionEntry {
|
|
17
17
|
char extension[48];
|
18
18
|
};
|
19
19
|
|
20
|
-
static constexpr ExtensionEntry EXTENSION_FUNCTIONS[] = {
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
}
|
20
|
+
static constexpr ExtensionEntry EXTENSION_FUNCTIONS[] = {{"->>", "json"},
|
21
|
+
{"array_to_json", "json"},
|
22
|
+
{"create_fts_index", "fts"},
|
23
|
+
{"current_localtime", "icu"},
|
24
|
+
{"current_localtimestamp", "icu"},
|
25
|
+
{"dbgen", "tpch"},
|
26
|
+
{"drop_fts_index", "fts"},
|
27
|
+
{"dsdgen", "tpcds"},
|
28
|
+
{"excel_text", "excel"},
|
29
|
+
{"from_json", "json"},
|
30
|
+
{"from_json_strict", "json"},
|
31
|
+
{"from_substrait", "substrait"},
|
32
|
+
{"from_substrait_json", "substrait"},
|
33
|
+
{"get_substrait", "substrait"},
|
34
|
+
{"get_substrait_json", "substrait"},
|
35
|
+
{"icu_calendar_names", "icu"},
|
36
|
+
{"icu_sort_key", "icu"},
|
37
|
+
{"json", "json"},
|
38
|
+
{"json_array", "json"},
|
39
|
+
{"json_array_length", "json"},
|
40
|
+
{"json_contains", "json"},
|
41
|
+
{"json_extract", "json"},
|
42
|
+
{"json_extract_path", "json"},
|
43
|
+
{"json_extract_path_text", "json"},
|
44
|
+
{"json_extract_string", "json"},
|
45
|
+
{"json_group_array", "json"},
|
46
|
+
{"json_group_object", "json"},
|
47
|
+
{"json_group_structure", "json"},
|
48
|
+
{"json_keys", "json"},
|
49
|
+
{"json_merge_patch", "json"},
|
50
|
+
{"json_object", "json"},
|
51
|
+
{"json_quote", "json"},
|
52
|
+
{"json_structure", "json"},
|
53
|
+
{"json_transform", "json"},
|
54
|
+
{"json_transform_strict", "json"},
|
55
|
+
{"json_type", "json"},
|
56
|
+
{"json_valid", "json"},
|
57
|
+
{"json_serialize_sql", "json"},
|
58
|
+
{"json_deserialize_sql", "json"},
|
59
|
+
{"json_serialize_sql", "json"},
|
60
|
+
{"json_execute_serialized_sql", "json"},
|
61
|
+
{"make_timestamptz", "icu"},
|
62
|
+
{"parquet_metadata", "parquet"},
|
63
|
+
{"parquet_scan", "parquet"},
|
64
|
+
{"parquet_schema", "parquet"},
|
65
|
+
{"pg_timezone_names", "icu"},
|
66
|
+
{"postgres_attach", "postgres_scanner"},
|
67
|
+
{"postgres_scan", "postgres_scanner"},
|
68
|
+
{"postgres_scan_pushdown", "postgres_scanner"},
|
69
|
+
{"read_json", "json"},
|
70
|
+
{"read_json_auto", "json"},
|
71
|
+
{"read_json_objects", "json"},
|
72
|
+
{"read_json_objects_auto", "json"},
|
73
|
+
{"read_ndjson", "json"},
|
74
|
+
{"read_ndjson_auto", "json"},
|
75
|
+
{"read_ndjson_objects", "json"},
|
76
|
+
{"read_parquet", "parquet"},
|
77
|
+
{"row_to_json", "json"},
|
78
|
+
{"scan_arrow_ipc", "arrow"},
|
79
|
+
{"sqlite_attach", "sqlite_scanner"},
|
80
|
+
{"sqlite_scan", "sqlite_scanner"},
|
81
|
+
{"stem", "fts"},
|
82
|
+
{"text", "excel"},
|
83
|
+
{"to_arrow_ipc", "arrow"},
|
84
|
+
{"to_json", "json"},
|
85
|
+
{"tpcds", "tpcds"},
|
86
|
+
{"tpcds_answers", "tpcds"},
|
87
|
+
{"tpcds_queries", "tpcds"},
|
88
|
+
{"tpch", "tpch"},
|
89
|
+
{"tpch_answers", "tpch"},
|
90
|
+
{"tpch_queries", "tpch"},
|
91
|
+
{"visualize_diff_profiling_output", "visualizer"},
|
92
|
+
{"visualize_json_profiling_output", "visualizer"},
|
93
|
+
{"visualize_last_profiling_output", "visualizer"},
|
94
|
+
{"st_distance_spheroid", "spatial"},
|
95
|
+
{"st_boundary", "spatial"},
|
96
|
+
{"st_makeline", "spatial"},
|
97
|
+
{"st_buffer", "spatial"},
|
98
|
+
{"st_x", "spatial"},
|
99
|
+
{"st_isring", "spatial"},
|
100
|
+
{"st_centroid", "spatial"},
|
101
|
+
{"st_read", "spatial"},
|
102
|
+
{"st_geomfromwkb", "spatial"},
|
103
|
+
{"st_list_proj_crs", "spatial"},
|
104
|
+
{"st_isvalid", "spatial"},
|
105
|
+
{"st_polygon2dfromwkb", "spatial"},
|
106
|
+
{"st_disjoint", "spatial"},
|
107
|
+
{"st_length", "spatial"},
|
108
|
+
{"st_difference", "spatial"},
|
109
|
+
{"st_area", "spatial"},
|
110
|
+
{"st_union", "spatial"},
|
111
|
+
{"st_isclosed", "spatial"},
|
112
|
+
{"st_asgeojson", "spatial"},
|
113
|
+
{"st_intersection", "spatial"},
|
114
|
+
{"st_transform", "spatial"},
|
115
|
+
{"st_dwithin", "spatial"},
|
116
|
+
{"st_perimeter", "spatial"},
|
117
|
+
{"st_issimple", "spatial"},
|
118
|
+
{"st_geometrytype", "spatial"},
|
119
|
+
{"st_simplifypreservetopology", "spatial"},
|
120
|
+
{"st_distance", "spatial"},
|
121
|
+
{"st_astext", "spatial"},
|
122
|
+
{"st_overlaps", "spatial"},
|
123
|
+
{"st_convexhull", "spatial"},
|
124
|
+
{"st_normalize", "spatial"},
|
125
|
+
{"st_drivers", "spatial"},
|
126
|
+
{"st_point2dfromwkb", "spatial"},
|
127
|
+
{"st_point2d", "spatial"},
|
128
|
+
{"st_y", "spatial"},
|
129
|
+
{"st_dwithin_spheroid", "spatial"},
|
130
|
+
{"st_isempty", "spatial"},
|
131
|
+
{"st_simplify", "spatial"},
|
132
|
+
{"st_area_spheroid", "spatial"},
|
133
|
+
{"st_within", "spatial"},
|
134
|
+
{"st_length_spheroid", "spatial"},
|
135
|
+
{"st_point3d", "spatial"},
|
136
|
+
{"st_containsproperly", "spatial"},
|
137
|
+
{"st_contains", "spatial"},
|
138
|
+
{"st_collect", "spatial"},
|
139
|
+
{"st_touches", "spatial"},
|
140
|
+
{"st_linestring2dfromwkb", "spatial"},
|
141
|
+
{"st_flipcoordinates", "spatial"},
|
142
|
+
{"st_ashexwkb", "spatial"},
|
143
|
+
{"st_geomfromtext", "spatial"},
|
144
|
+
{"st_point4d", "spatial"},
|
145
|
+
{"st_point", "spatial"},
|
146
|
+
{"st_coveredby", "spatial"},
|
147
|
+
{"st_perimeter_spheroid", "spatial"},
|
148
|
+
{"st_intersects", "spatial"},
|
149
|
+
{"st_crosses", "spatial"},
|
150
|
+
{"st_covers", "spatial"},
|
151
|
+
{"st_envelope", "spatial"},
|
152
|
+
{"st_aswkb", "spatial"},
|
153
|
+
{"st_equals", "spatial"},
|
154
|
+
{"st_collectionextract", "spatial"},
|
155
|
+
{"st_npoints", "spatial"},
|
156
|
+
{"st_pointonsurface", "spatial"},
|
157
|
+
{"st_dimension", "spatial"},
|
158
|
+
{"st_removerepeatedpoints", "spatial"},
|
159
|
+
{"st_geomfromgeojson", "spatial"},
|
160
|
+
{"st_readosm", "spatial"},
|
161
|
+
{"st_numpoints", "spatial"}};
|
156
162
|
|
157
163
|
static constexpr ExtensionEntry EXTENSION_SETTINGS[] = {
|
158
164
|
{"binary_as_string", "parquet"},
|