duckdb 0.7.2-dev2507.0 → 0.7.2-dev2552.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/connection.cpp +1 -1
- package/src/duckdb/extension/icu/icu-dateadd.cpp +3 -3
- package/src/duckdb/extension/icu/icu-datepart.cpp +3 -3
- package/src/duckdb/extension/icu/icu-datesub.cpp +2 -2
- package/src/duckdb/extension/icu/icu-datetrunc.cpp +1 -1
- package/src/duckdb/extension/icu/icu-extension.cpp +3 -3
- package/src/duckdb/extension/icu/icu-list-range.cpp +2 -2
- package/src/duckdb/extension/icu/icu-makedate.cpp +1 -1
- package/src/duckdb/extension/icu/icu-strptime.cpp +4 -4
- package/src/duckdb/extension/icu/icu-table-range.cpp +2 -2
- package/src/duckdb/extension/icu/icu-timebucket.cpp +1 -1
- package/src/duckdb/extension/icu/icu-timezone.cpp +4 -4
- package/src/duckdb/extension/json/json-extension.cpp +6 -6
- package/src/duckdb/extension/parquet/parquet-extension.cpp +9 -8
- package/src/duckdb/src/catalog/catalog.cpp +166 -127
- package/src/duckdb/src/catalog/catalog_entry/copy_function_catalog_entry.cpp +3 -3
- package/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp +1 -1
- package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +90 -82
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +65 -67
- package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +3 -3
- package/src/duckdb/src/catalog/catalog_entry/pragma_function_catalog_entry.cpp +4 -4
- package/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp +8 -8
- package/src/duckdb/src/catalog/catalog_entry/scalar_macro_catalog_entry.cpp +10 -10
- package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +6 -6
- package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +6 -6
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +4 -4
- package/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp +9 -9
- package/src/duckdb/src/catalog/catalog_entry/type_catalog_entry.cpp +5 -5
- package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +23 -23
- package/src/duckdb/src/catalog/catalog_entry.cpp +27 -6
- package/src/duckdb/src/catalog/catalog_search_path.cpp +2 -2
- package/src/duckdb/src/catalog/catalog_set.cpp +84 -87
- package/src/duckdb/src/catalog/catalog_transaction.cpp +1 -1
- package/src/duckdb/src/catalog/default/default_functions.cpp +1 -1
- package/src/duckdb/src/catalog/default/default_schemas.cpp +1 -1
- package/src/duckdb/src/catalog/default/default_types.cpp +1 -1
- package/src/duckdb/src/catalog/default/default_views.cpp +1 -1
- package/src/duckdb/src/catalog/dependency_list.cpp +2 -2
- package/src/duckdb/src/catalog/dependency_manager.cpp +9 -10
- package/src/duckdb/src/catalog/duck_catalog.cpp +30 -26
- package/src/duckdb/src/catalog/similar_catalog_entry.cpp +1 -1
- package/src/duckdb/src/common/types.cpp +15 -27
- package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +4 -3
- package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +19 -18
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +5 -5
- package/src/duckdb/src/execution/operator/schema/physical_alter.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_function.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +6 -5
- package/src/duckdb/src/execution/operator/schema/physical_create_schema.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_sequence.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_table.cpp +2 -2
- package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +4 -3
- package/src/duckdb/src/execution/operator/schema/physical_create_view.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_detach.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_drop.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +4 -4
- package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +4 -3
- package/src/duckdb/src/execution/physical_plan/plan_delete.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_insert.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_update.cpp +1 -1
- package/src/duckdb/src/function/built_in_functions.cpp +10 -10
- package/src/duckdb/src/function/function_binder.cpp +3 -3
- package/src/duckdb/src/function/scalar/list/list_aggregates.cpp +5 -6
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -2
- package/src/duckdb/src/function/scalar/sequence/nextval.cpp +9 -8
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +6 -6
- package/src/duckdb/src/function/table/arrow.cpp +5 -5
- package/src/duckdb/src/function/table/system/duckdb_columns.cpp +8 -7
- package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +14 -14
- package/src/duckdb/src/function/table/system/duckdb_databases.cpp +2 -2
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +26 -25
- package/src/duckdb/src/function/table/system/duckdb_indexes.cpp +13 -12
- package/src/duckdb/src/function/table/system/duckdb_schemas.cpp +7 -7
- package/src/duckdb/src/function/table/system/duckdb_sequences.cpp +8 -9
- package/src/duckdb/src/function/table/system/duckdb_tables.cpp +10 -9
- package/src/duckdb/src/function/table/system/duckdb_types.cpp +13 -13
- package/src/duckdb/src/function/table/system/duckdb_views.cpp +11 -10
- package/src/duckdb/src/function/table/system/pragma_collations.cpp +2 -2
- package/src/duckdb/src/function/table/system/pragma_database_size.cpp +5 -5
- package/src/duckdb/src/function/table/system/pragma_storage_info.cpp +3 -3
- package/src/duckdb/src/function/table/system/pragma_table_info.cpp +2 -2
- package/src/duckdb/src/function/table/table_scan.cpp +39 -37
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/function/udf_function.cpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +122 -81
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp +2 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/collate_catalog_entry.hpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/copy_function_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp +24 -20
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/index_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/macro_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_macro_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +22 -17
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_macro_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/view_catalog_entry.hpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +28 -7
- package/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +20 -19
- package/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp +9 -9
- package/src/duckdb/src/include/duckdb/catalog/similar_catalog_entry.hpp +2 -1
- package/src/duckdb/src/include/duckdb/catalog/standard_entry.hpp +10 -4
- package/src/duckdb/src/include/duckdb/common/enums/on_entry_not_found.hpp +17 -0
- package/src/duckdb/src/include/duckdb/common/types.hpp +3 -4
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +3 -2
- package/src/duckdb/src/include/duckdb/function/table/table_scan.hpp +5 -4
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +28 -15
- package/src/duckdb/src/include/duckdb/main/attached_database.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/client_context.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/database_manager.hpp +3 -2
- package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/keyword_helper.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +7 -5
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_view_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/detach_info.hpp +3 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/drop_info.hpp +5 -5
- package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +13 -0
- package/src/duckdb/src/include/duckdb/parser/tableref.hpp +5 -2
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/binder.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder/base_select_binder.hpp +1 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +4 -7
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +1 -1
- package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +12 -0
- package/src/duckdb/src/main/attached_database.cpp +12 -6
- package/src/duckdb/src/main/capi/table_function-c.cpp +17 -16
- package/src/duckdb/src/main/client_context.cpp +12 -11
- package/src/duckdb/src/main/database_manager.cpp +13 -12
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +1 -2
- package/src/duckdb/src/parser/parsed_data/alter_info.cpp +3 -3
- package/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp +2 -2
- package/src/duckdb/src/parser/parsed_data/alter_table_function_info.cpp +2 -2
- package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +9 -9
- package/src/duckdb/src/parser/parsed_data/create_scalar_function_info.cpp +2 -2
- package/src/duckdb/src/parser/parsed_data/create_table_function_info.cpp +2 -2
- package/src/duckdb/src/parser/parsed_data/create_table_info.cpp +2 -2
- package/src/duckdb/src/parser/parsed_data/create_view_info.cpp +2 -2
- package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +3 -2
- package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +5 -1
- package/src/duckdb/src/parser/transform/statement/transform_detach.cpp +1 -1
- package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +1 -1
- package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +26 -27
- package/src/duckdb/src/planner/binder/expression/bind_between_expression.cpp +17 -17
- package/src/duckdb/src/planner/binder/expression/bind_case_expression.cpp +9 -9
- package/src/duckdb/src/planner/binder/expression/bind_cast_expression.cpp +6 -6
- package/src/duckdb/src/planner/binder/expression/bind_collate_expression.cpp +6 -6
- package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +2 -2
- package/src/duckdb/src/planner/binder/expression/bind_comparison_expression.cpp +21 -21
- package/src/duckdb/src/planner/binder/expression/bind_conjunction_expression.cpp +2 -3
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +33 -36
- package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +5 -5
- package/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp +23 -23
- package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +4 -4
- package/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp +7 -7
- package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +23 -23
- package/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp +4 -4
- package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +14 -13
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +36 -35
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +3 -3
- package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +4 -4
- package/src/duckdb/src/planner/binder/statement/bind_export.cpp +10 -10
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_pragma.cpp +4 -4
- package/src/duckdb/src/planner/binder/statement/bind_simple.cpp +5 -4
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +3 -3
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +10 -12
- package/src/duckdb/src/planner/binder.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_expression.cpp +11 -2
- package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +2 -5
- package/src/duckdb/src/planner/operator/logical_create.cpp +2 -1
- package/src/duckdb/src/planner/operator/logical_create_index.cpp +2 -2
- package/src/duckdb/src/planner/operator/logical_delete.cpp +2 -2
- package/src/duckdb/src/planner/operator/logical_get.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_insert.cpp +2 -7
- package/src/duckdb/src/planner/operator/logical_update.cpp +2 -6
- package/src/duckdb/src/planner/parsed_data/bound_create_table_info.cpp +2 -2
- package/src/duckdb/src/planner/pragma_handler.cpp +3 -4
- package/src/duckdb/src/storage/checkpoint_manager.cpp +46 -46
- package/src/duckdb/src/storage/data_table.cpp +3 -6
- package/src/duckdb/src/storage/table/update_segment.cpp +1 -1
- package/src/duckdb/src/storage/wal_replay.cpp +28 -30
- package/src/duckdb/src/storage/write_ahead_log.cpp +8 -8
- package/src/duckdb/src/transaction/cleanup_state.cpp +1 -1
- package/src/duckdb/src/transaction/commit_state.cpp +3 -4
- package/src/duckdb/src/transaction/transaction_context.cpp +1 -1
@@ -3,10 +3,10 @@
|
|
3
3
|
|
4
4
|
namespace duckdb {
|
5
5
|
|
6
|
-
PragmaFunctionCatalogEntry::PragmaFunctionCatalogEntry(Catalog
|
7
|
-
CreatePragmaFunctionInfo
|
8
|
-
: StandardEntry(CatalogType::PRAGMA_FUNCTION_ENTRY, schema, catalog, info
|
9
|
-
functions(std::move(info
|
6
|
+
PragmaFunctionCatalogEntry::PragmaFunctionCatalogEntry(Catalog &catalog, SchemaCatalogEntry &schema,
|
7
|
+
CreatePragmaFunctionInfo &info)
|
8
|
+
: StandardEntry(CatalogType::PRAGMA_FUNCTION_ENTRY, schema, catalog, info.name),
|
9
|
+
functions(std::move(info.functions)) {
|
10
10
|
}
|
11
11
|
|
12
12
|
} // namespace duckdb
|
@@ -3,28 +3,28 @@
|
|
3
3
|
|
4
4
|
namespace duckdb {
|
5
5
|
|
6
|
-
ScalarFunctionCatalogEntry::ScalarFunctionCatalogEntry(Catalog
|
7
|
-
CreateScalarFunctionInfo
|
8
|
-
: StandardEntry(CatalogType::SCALAR_FUNCTION_ENTRY, schema, catalog, info
|
6
|
+
ScalarFunctionCatalogEntry::ScalarFunctionCatalogEntry(Catalog &catalog, SchemaCatalogEntry &schema,
|
7
|
+
CreateScalarFunctionInfo &info)
|
8
|
+
: StandardEntry(CatalogType::SCALAR_FUNCTION_ENTRY, schema, catalog, info.name), functions(info.functions) {
|
9
9
|
}
|
10
10
|
|
11
|
-
unique_ptr<CatalogEntry> ScalarFunctionCatalogEntry::AlterEntry(ClientContext &context, AlterInfo
|
12
|
-
if (info
|
11
|
+
unique_ptr<CatalogEntry> ScalarFunctionCatalogEntry::AlterEntry(ClientContext &context, AlterInfo &info) {
|
12
|
+
if (info.type != AlterType::ALTER_SCALAR_FUNCTION) {
|
13
13
|
throw InternalException("Attempting to alter ScalarFunctionCatalogEntry with unsupported alter type");
|
14
14
|
}
|
15
|
-
auto &function_info = (
|
15
|
+
auto &function_info = info.Cast<AlterScalarFunctionInfo>();
|
16
16
|
if (function_info.alter_scalar_function_type != AlterScalarFunctionType::ADD_FUNCTION_OVERLOADS) {
|
17
17
|
throw InternalException(
|
18
18
|
"Attempting to alter ScalarFunctionCatalogEntry with unsupported alter scalar function type");
|
19
19
|
}
|
20
|
-
auto &add_overloads = (
|
20
|
+
auto &add_overloads = function_info.Cast<AddScalarFunctionOverloadInfo>();
|
21
21
|
|
22
22
|
ScalarFunctionSet new_set = functions;
|
23
23
|
if (!new_set.MergeFunctionSet(add_overloads.new_overloads)) {
|
24
24
|
throw BinderException("Failed to add new function overloads to function \"%s\": function already exists", name);
|
25
25
|
}
|
26
26
|
CreateScalarFunctionInfo new_info(std::move(new_set));
|
27
|
-
return make_uniq<ScalarFunctionCatalogEntry>(catalog, schema,
|
27
|
+
return make_uniq<ScalarFunctionCatalogEntry>(catalog, schema, new_info);
|
28
28
|
}
|
29
29
|
|
30
30
|
} // namespace duckdb
|
@@ -6,16 +6,16 @@
|
|
6
6
|
|
7
7
|
namespace duckdb {
|
8
8
|
|
9
|
-
MacroCatalogEntry::MacroCatalogEntry(Catalog
|
9
|
+
MacroCatalogEntry::MacroCatalogEntry(Catalog &catalog, SchemaCatalogEntry &schema, CreateMacroInfo &info)
|
10
10
|
: StandardEntry(
|
11
|
-
(info
|
12
|
-
schema, catalog, info
|
13
|
-
function(std::move(info
|
14
|
-
this->temporary = info
|
15
|
-
this->internal = info
|
11
|
+
(info.function->type == MacroType::SCALAR_MACRO ? CatalogType::MACRO_ENTRY : CatalogType::TABLE_MACRO_ENTRY),
|
12
|
+
schema, catalog, info.name),
|
13
|
+
function(std::move(info.function)) {
|
14
|
+
this->temporary = info.temporary;
|
15
|
+
this->internal = info.internal;
|
16
16
|
}
|
17
17
|
|
18
|
-
ScalarMacroCatalogEntry::ScalarMacroCatalogEntry(Catalog
|
18
|
+
ScalarMacroCatalogEntry::ScalarMacroCatalogEntry(Catalog &catalog, SchemaCatalogEntry &schema, CreateMacroInfo &info)
|
19
19
|
: MacroCatalogEntry(catalog, schema, info) {
|
20
20
|
}
|
21
21
|
|
@@ -23,7 +23,7 @@ void ScalarMacroCatalogEntry::Serialize(Serializer &main_serializer) const {
|
|
23
23
|
D_ASSERT(!internal);
|
24
24
|
auto &scalar_function = function->Cast<ScalarMacroFunction>();
|
25
25
|
FieldWriter writer(main_serializer);
|
26
|
-
writer.WriteString(schema
|
26
|
+
writer.WriteString(schema.name);
|
27
27
|
writer.WriteString(name);
|
28
28
|
writer.WriteSerializable(*scalar_function.expression);
|
29
29
|
// writer.WriteSerializableList(function->parameters);
|
@@ -58,7 +58,7 @@ unique_ptr<CreateMacroInfo> ScalarMacroCatalogEntry::Deserialize(Deserializer &m
|
|
58
58
|
return info;
|
59
59
|
}
|
60
60
|
|
61
|
-
TableMacroCatalogEntry::TableMacroCatalogEntry(Catalog
|
61
|
+
TableMacroCatalogEntry::TableMacroCatalogEntry(Catalog &catalog, SchemaCatalogEntry &schema, CreateMacroInfo &info)
|
62
62
|
: MacroCatalogEntry(catalog, schema, info) {
|
63
63
|
}
|
64
64
|
|
@@ -67,7 +67,7 @@ void TableMacroCatalogEntry::Serialize(Serializer &main_serializer) const {
|
|
67
67
|
FieldWriter writer(main_serializer);
|
68
68
|
|
69
69
|
auto &table_function = function->Cast<TableMacroFunction>();
|
70
|
-
writer.WriteString(schema
|
70
|
+
writer.WriteString(schema.name);
|
71
71
|
writer.WriteString(name);
|
72
72
|
writer.WriteSerializable(*table_function.query_node);
|
73
73
|
writer.WriteSerializableList(function->parameters);
|
@@ -11,23 +11,23 @@
|
|
11
11
|
|
12
12
|
namespace duckdb {
|
13
13
|
|
14
|
-
SchemaCatalogEntry::SchemaCatalogEntry(Catalog
|
15
|
-
:
|
14
|
+
SchemaCatalogEntry::SchemaCatalogEntry(Catalog &catalog, string name_p, bool internal)
|
15
|
+
: InCatalogEntry(CatalogType::SCHEMA_ENTRY, catalog, std::move(name_p)) {
|
16
16
|
this->internal = internal;
|
17
17
|
}
|
18
18
|
|
19
19
|
CatalogTransaction SchemaCatalogEntry::GetCatalogTransaction(ClientContext &context) {
|
20
|
-
return CatalogTransaction(
|
20
|
+
return CatalogTransaction(catalog, context);
|
21
21
|
}
|
22
22
|
|
23
23
|
SimilarCatalogEntry SchemaCatalogEntry::GetSimilarEntry(CatalogTransaction transaction, CatalogType type,
|
24
24
|
const string &name) {
|
25
25
|
SimilarCatalogEntry result;
|
26
|
-
Scan(transaction.GetContext(), type, [&](CatalogEntry
|
27
|
-
auto ldist = StringUtil::SimilarityScore(entry
|
26
|
+
Scan(transaction.GetContext(), type, [&](CatalogEntry &entry) {
|
27
|
+
auto ldist = StringUtil::SimilarityScore(entry.name, name);
|
28
28
|
if (ldist < result.distance) {
|
29
29
|
result.distance = ldist;
|
30
|
-
result.name = entry
|
30
|
+
result.name = entry.name;
|
31
31
|
}
|
32
32
|
});
|
33
33
|
return result;
|
@@ -11,16 +11,16 @@
|
|
11
11
|
|
12
12
|
namespace duckdb {
|
13
13
|
|
14
|
-
SequenceCatalogEntry::SequenceCatalogEntry(Catalog
|
15
|
-
: StandardEntry(CatalogType::SEQUENCE_ENTRY, schema, catalog, info
|
16
|
-
counter(info
|
17
|
-
|
18
|
-
this->temporary = info
|
14
|
+
SequenceCatalogEntry::SequenceCatalogEntry(Catalog &catalog, SchemaCatalogEntry &schema, CreateSequenceInfo &info)
|
15
|
+
: StandardEntry(CatalogType::SEQUENCE_ENTRY, schema, catalog, info.name), usage_count(info.usage_count),
|
16
|
+
counter(info.start_value), increment(info.increment), start_value(info.start_value), min_value(info.min_value),
|
17
|
+
max_value(info.max_value), cycle(info.cycle) {
|
18
|
+
this->temporary = info.temporary;
|
19
19
|
}
|
20
20
|
|
21
21
|
void SequenceCatalogEntry::Serialize(Serializer &serializer) const {
|
22
22
|
FieldWriter writer(serializer);
|
23
|
-
writer.WriteString(schema
|
23
|
+
writer.WriteString(schema.name);
|
24
24
|
writer.WriteString(name);
|
25
25
|
writer.WriteField<uint64_t>(usage_count);
|
26
26
|
writer.WriteField<int64_t>(increment);
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
namespace duckdb {
|
16
16
|
|
17
|
-
TableCatalogEntry::TableCatalogEntry(Catalog
|
17
|
+
TableCatalogEntry::TableCatalogEntry(Catalog &catalog, SchemaCatalogEntry &schema, CreateTableInfo &info)
|
18
18
|
: StandardEntry(CatalogType::TABLE_ENTRY, schema, catalog, info.table), columns(std::move(info.columns)),
|
19
19
|
constraints(std::move(info.constraints)) {
|
20
20
|
this->temporary = info.temporary;
|
@@ -55,7 +55,7 @@ void TableCatalogEntry::Serialize(Serializer &serializer) const {
|
|
55
55
|
D_ASSERT(!internal);
|
56
56
|
|
57
57
|
FieldWriter writer(serializer);
|
58
|
-
writer.WriteString(schema
|
58
|
+
writer.WriteString(schema.name);
|
59
59
|
writer.WriteString(name);
|
60
60
|
columns.Serialize(writer);
|
61
61
|
writer.WriteSerializableList(constraints);
|
@@ -165,8 +165,8 @@ string TableCatalogEntry::ToSQL() const {
|
|
165
165
|
|
166
166
|
ss << "CREATE TABLE ";
|
167
167
|
|
168
|
-
if (schema
|
169
|
-
ss << KeywordHelper::WriteOptionallyQuoted(schema
|
168
|
+
if (schema.name != DEFAULT_SCHEMA) {
|
169
|
+
ss << KeywordHelper::WriteOptionallyQuoted(schema.name) << ".";
|
170
170
|
}
|
171
171
|
|
172
172
|
ss << KeywordHelper::WriteOptionallyQuoted(name);
|
@@ -3,30 +3,30 @@
|
|
3
3
|
|
4
4
|
namespace duckdb {
|
5
5
|
|
6
|
-
TableFunctionCatalogEntry::TableFunctionCatalogEntry(Catalog
|
7
|
-
CreateTableFunctionInfo
|
8
|
-
: StandardEntry(CatalogType::TABLE_FUNCTION_ENTRY, schema, catalog, info
|
9
|
-
functions(std::move(info
|
6
|
+
TableFunctionCatalogEntry::TableFunctionCatalogEntry(Catalog &catalog, SchemaCatalogEntry &schema,
|
7
|
+
CreateTableFunctionInfo &info)
|
8
|
+
: StandardEntry(CatalogType::TABLE_FUNCTION_ENTRY, schema, catalog, info.name),
|
9
|
+
functions(std::move(info.functions)) {
|
10
10
|
D_ASSERT(this->functions.Size() > 0);
|
11
11
|
}
|
12
12
|
|
13
|
-
unique_ptr<CatalogEntry> TableFunctionCatalogEntry::AlterEntry(ClientContext &context, AlterInfo
|
14
|
-
if (info
|
13
|
+
unique_ptr<CatalogEntry> TableFunctionCatalogEntry::AlterEntry(ClientContext &context, AlterInfo &info) {
|
14
|
+
if (info.type != AlterType::ALTER_TABLE_FUNCTION) {
|
15
15
|
throw InternalException("Attempting to alter TableFunctionCatalogEntry with unsupported alter type");
|
16
16
|
}
|
17
|
-
auto &function_info = (
|
17
|
+
auto &function_info = info.Cast<AlterTableFunctionInfo>();
|
18
18
|
if (function_info.alter_table_function_type != AlterTableFunctionType::ADD_FUNCTION_OVERLOADS) {
|
19
19
|
throw InternalException(
|
20
20
|
"Attempting to alter TableFunctionCatalogEntry with unsupported alter table function type");
|
21
21
|
}
|
22
|
-
auto &add_overloads = (
|
22
|
+
auto &add_overloads = function_info.Cast<AddTableFunctionOverloadInfo>();
|
23
23
|
|
24
24
|
TableFunctionSet new_set = functions;
|
25
25
|
if (!new_set.MergeFunctionSet(add_overloads.new_overloads)) {
|
26
26
|
throw BinderException("Failed to add new function overloads to function \"%s\": function already exists", name);
|
27
27
|
}
|
28
28
|
CreateTableFunctionInfo new_info(std::move(new_set));
|
29
|
-
return make_uniq<TableFunctionCatalogEntry>(catalog, schema,
|
29
|
+
return make_uniq<TableFunctionCatalogEntry>(catalog, schema, new_info);
|
30
30
|
}
|
31
31
|
|
32
32
|
} // namespace duckdb
|
@@ -12,16 +12,16 @@
|
|
12
12
|
|
13
13
|
namespace duckdb {
|
14
14
|
|
15
|
-
TypeCatalogEntry::TypeCatalogEntry(Catalog
|
16
|
-
: StandardEntry(CatalogType::TYPE_ENTRY, schema, catalog, info
|
17
|
-
this->temporary = info
|
18
|
-
this->internal = info
|
15
|
+
TypeCatalogEntry::TypeCatalogEntry(Catalog &catalog, SchemaCatalogEntry &schema, CreateTypeInfo &info)
|
16
|
+
: StandardEntry(CatalogType::TYPE_ENTRY, schema, catalog, info.name), user_type(info.type) {
|
17
|
+
this->temporary = info.temporary;
|
18
|
+
this->internal = info.internal;
|
19
19
|
}
|
20
20
|
|
21
21
|
void TypeCatalogEntry::Serialize(Serializer &serializer) const {
|
22
22
|
D_ASSERT(!internal);
|
23
23
|
FieldWriter writer(serializer);
|
24
|
-
writer.WriteString(schema
|
24
|
+
writer.WriteString(schema.name);
|
25
25
|
writer.WriteString(name);
|
26
26
|
if (user_type.id() == LogicalTypeId::ENUM) {
|
27
27
|
// We have to serialize Enum Values
|
@@ -11,31 +11,31 @@
|
|
11
11
|
|
12
12
|
namespace duckdb {
|
13
13
|
|
14
|
-
void ViewCatalogEntry::Initialize(CreateViewInfo
|
15
|
-
query = std::move(info
|
16
|
-
this->aliases = info
|
17
|
-
this->types = info
|
18
|
-
this->temporary = info
|
19
|
-
this->sql = info
|
20
|
-
this->internal = info
|
14
|
+
void ViewCatalogEntry::Initialize(CreateViewInfo &info) {
|
15
|
+
query = std::move(info.query);
|
16
|
+
this->aliases = info.aliases;
|
17
|
+
this->types = info.types;
|
18
|
+
this->temporary = info.temporary;
|
19
|
+
this->sql = info.sql;
|
20
|
+
this->internal = info.internal;
|
21
21
|
}
|
22
22
|
|
23
|
-
ViewCatalogEntry::ViewCatalogEntry(Catalog
|
24
|
-
: StandardEntry(CatalogType::VIEW_ENTRY, schema, catalog, info
|
23
|
+
ViewCatalogEntry::ViewCatalogEntry(Catalog &catalog, SchemaCatalogEntry &schema, CreateViewInfo &info)
|
24
|
+
: StandardEntry(CatalogType::VIEW_ENTRY, schema, catalog, info.view_name) {
|
25
25
|
Initialize(info);
|
26
26
|
}
|
27
27
|
|
28
|
-
unique_ptr<CatalogEntry> ViewCatalogEntry::AlterEntry(ClientContext &context, AlterInfo
|
28
|
+
unique_ptr<CatalogEntry> ViewCatalogEntry::AlterEntry(ClientContext &context, AlterInfo &info) {
|
29
29
|
D_ASSERT(!internal);
|
30
|
-
if (info
|
30
|
+
if (info.type != AlterType::ALTER_VIEW) {
|
31
31
|
throw CatalogException("Can only modify view with ALTER VIEW statement");
|
32
32
|
}
|
33
|
-
auto view_info = (
|
34
|
-
switch (view_info
|
33
|
+
auto &view_info = info.Cast<AlterViewInfo>();
|
34
|
+
switch (view_info.alter_view_type) {
|
35
35
|
case AlterViewType::RENAME_VIEW: {
|
36
|
-
auto rename_info = (
|
36
|
+
auto &rename_info = view_info.Cast<RenameViewInfo>();
|
37
37
|
auto copied_view = Copy(context);
|
38
|
-
copied_view->name = rename_info
|
38
|
+
copied_view->name = rename_info.new_view_name;
|
39
39
|
return copied_view;
|
40
40
|
}
|
41
41
|
default:
|
@@ -46,7 +46,7 @@ unique_ptr<CatalogEntry> ViewCatalogEntry::AlterEntry(ClientContext &context, Al
|
|
46
46
|
void ViewCatalogEntry::Serialize(Serializer &serializer) const {
|
47
47
|
D_ASSERT(!internal);
|
48
48
|
FieldWriter writer(serializer);
|
49
|
-
writer.WriteString(schema
|
49
|
+
writer.WriteString(schema.name);
|
50
50
|
writer.WriteString(name);
|
51
51
|
writer.WriteString(sql);
|
52
52
|
writer.WriteSerializable(*query);
|
@@ -80,18 +80,18 @@ string ViewCatalogEntry::ToSQL() const {
|
|
80
80
|
|
81
81
|
unique_ptr<CatalogEntry> ViewCatalogEntry::Copy(ClientContext &context) const {
|
82
82
|
D_ASSERT(!internal);
|
83
|
-
|
84
|
-
create_info
|
83
|
+
CreateViewInfo create_info(schema, name);
|
84
|
+
create_info.query = unique_ptr_cast<SQLStatement, SelectStatement>(query->Copy());
|
85
85
|
for (idx_t i = 0; i < aliases.size(); i++) {
|
86
|
-
create_info
|
86
|
+
create_info.aliases.push_back(aliases[i]);
|
87
87
|
}
|
88
88
|
for (idx_t i = 0; i < types.size(); i++) {
|
89
|
-
create_info
|
89
|
+
create_info.types.push_back(types[i]);
|
90
90
|
}
|
91
|
-
create_info
|
92
|
-
create_info
|
91
|
+
create_info.temporary = temporary;
|
92
|
+
create_info.sql = sql;
|
93
93
|
|
94
|
-
return make_uniq<ViewCatalogEntry>(catalog, schema, create_info
|
94
|
+
return make_uniq<ViewCatalogEntry>(catalog, schema, create_info);
|
95
95
|
}
|
96
96
|
|
97
97
|
} // namespace duckdb
|
@@ -4,9 +4,13 @@
|
|
4
4
|
|
5
5
|
namespace duckdb {
|
6
6
|
|
7
|
-
CatalogEntry::CatalogEntry(CatalogType type,
|
8
|
-
: oid(
|
9
|
-
|
7
|
+
CatalogEntry::CatalogEntry(CatalogType type, string name_p, idx_t oid)
|
8
|
+
: oid(oid), type(type), set(nullptr), name(std::move(name_p)), deleted(false), temporary(false), internal(false),
|
9
|
+
parent(nullptr) {
|
10
|
+
}
|
11
|
+
|
12
|
+
CatalogEntry::CatalogEntry(CatalogType type, Catalog &catalog, string name_p)
|
13
|
+
: CatalogEntry(type, std::move(name_p), catalog.ModifyCatalog()) {
|
10
14
|
}
|
11
15
|
|
12
16
|
CatalogEntry::~CatalogEntry() {
|
@@ -16,11 +20,11 @@ void CatalogEntry::SetAsRoot() {
|
|
16
20
|
}
|
17
21
|
|
18
22
|
// LCOV_EXCL_START
|
19
|
-
unique_ptr<CatalogEntry> CatalogEntry::AlterEntry(ClientContext &context, AlterInfo
|
23
|
+
unique_ptr<CatalogEntry> CatalogEntry::AlterEntry(ClientContext &context, AlterInfo &info) {
|
20
24
|
throw InternalException("Unsupported alter type for catalog entry!");
|
21
25
|
}
|
22
26
|
|
23
|
-
void CatalogEntry::UndoAlter(ClientContext &context, AlterInfo
|
27
|
+
void CatalogEntry::UndoAlter(ClientContext &context, AlterInfo &info) {
|
24
28
|
}
|
25
29
|
|
26
30
|
unique_ptr<CatalogEntry> CatalogEntry::Copy(ClientContext &context) const {
|
@@ -33,7 +37,24 @@ string CatalogEntry::ToSQL() const {
|
|
33
37
|
// LCOV_EXCL_STOP
|
34
38
|
|
35
39
|
void CatalogEntry::Verify(Catalog &catalog_p) {
|
36
|
-
D_ASSERT(&catalog_p == catalog);
|
37
40
|
}
|
38
41
|
|
42
|
+
Catalog &CatalogEntry::ParentCatalog() {
|
43
|
+
throw InternalException("CatalogEntry::ParentCatalog called on catalog entry without catalog");
|
44
|
+
}
|
45
|
+
|
46
|
+
SchemaCatalogEntry &CatalogEntry::ParentSchema() {
|
47
|
+
throw InternalException("CatalogEntry::ParentSchema called on catalog entry without schema");
|
48
|
+
}
|
49
|
+
|
50
|
+
InCatalogEntry::InCatalogEntry(CatalogType type, Catalog &catalog, string name)
|
51
|
+
: CatalogEntry(type, catalog, std::move(name)), catalog(catalog) {
|
52
|
+
}
|
53
|
+
|
54
|
+
InCatalogEntry::~InCatalogEntry() {
|
55
|
+
}
|
56
|
+
|
57
|
+
void InCatalogEntry::Verify(Catalog &catalog_p) {
|
58
|
+
D_ASSERT(&catalog_p == &catalog);
|
59
|
+
}
|
39
60
|
} // namespace duckdb
|
@@ -131,10 +131,10 @@ void CatalogSearchPath::Set(vector<CatalogSearchEntry> new_paths, bool is_set_sc
|
|
131
131
|
throw CatalogException("SET schema can set only 1 schema. This has %d", new_paths.size());
|
132
132
|
}
|
133
133
|
for (auto &path : new_paths) {
|
134
|
-
if (!Catalog::GetSchema(context, path.catalog, path.schema,
|
134
|
+
if (!Catalog::GetSchema(context, path.catalog, path.schema, OnEntryNotFound::RETURN_NULL)) {
|
135
135
|
if (path.catalog.empty()) {
|
136
136
|
// only schema supplied - check if this is a database instead
|
137
|
-
auto schema = Catalog::GetSchema(context, path.schema, DEFAULT_SCHEMA,
|
137
|
+
auto schema = Catalog::GetSchema(context, path.schema, DEFAULT_SCHEMA, OnEntryNotFound::RETURN_NULL);
|
138
138
|
if (schema) {
|
139
139
|
path.catalog = std::move(path.schema);
|
140
140
|
path.schema = schema->name;
|