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
@@ -205,7 +205,7 @@ void ReplayState::ReplayCreateTable() {
|
|
205
205
|
auto binder = Binder::CreateBinder(context);
|
206
206
|
auto bound_info = binder->BindCreateTableInfo(std::move(info));
|
207
207
|
|
208
|
-
catalog.CreateTable(context, bound_info
|
208
|
+
catalog.CreateTable(context, *bound_info);
|
209
209
|
}
|
210
210
|
|
211
211
|
void ReplayState::ReplayDropTable() {
|
@@ -218,7 +218,7 @@ void ReplayState::ReplayDropTable() {
|
|
218
218
|
return;
|
219
219
|
}
|
220
220
|
|
221
|
-
catalog.DropEntry(context,
|
221
|
+
catalog.DropEntry(context, info);
|
222
222
|
}
|
223
223
|
|
224
224
|
void ReplayState::ReplayAlter() {
|
@@ -226,7 +226,7 @@ void ReplayState::ReplayAlter() {
|
|
226
226
|
if (deserialize_only) {
|
227
227
|
return;
|
228
228
|
}
|
229
|
-
catalog.Alter(context, info
|
229
|
+
catalog.Alter(context, *info);
|
230
230
|
}
|
231
231
|
|
232
232
|
//===--------------------------------------------------------------------===//
|
@@ -238,7 +238,7 @@ void ReplayState::ReplayCreateView() {
|
|
238
238
|
return;
|
239
239
|
}
|
240
240
|
|
241
|
-
catalog.CreateView(context, entry
|
241
|
+
catalog.CreateView(context, *entry);
|
242
242
|
}
|
243
243
|
|
244
244
|
void ReplayState::ReplayDropView() {
|
@@ -249,7 +249,7 @@ void ReplayState::ReplayDropView() {
|
|
249
249
|
if (deserialize_only) {
|
250
250
|
return;
|
251
251
|
}
|
252
|
-
catalog.DropEntry(context,
|
252
|
+
catalog.DropEntry(context, info);
|
253
253
|
}
|
254
254
|
|
255
255
|
//===--------------------------------------------------------------------===//
|
@@ -262,7 +262,7 @@ void ReplayState::ReplayCreateSchema() {
|
|
262
262
|
return;
|
263
263
|
}
|
264
264
|
|
265
|
-
catalog.CreateSchema(context,
|
265
|
+
catalog.CreateSchema(context, info);
|
266
266
|
}
|
267
267
|
|
268
268
|
void ReplayState::ReplayDropSchema() {
|
@@ -274,7 +274,7 @@ void ReplayState::ReplayDropSchema() {
|
|
274
274
|
return;
|
275
275
|
}
|
276
276
|
|
277
|
-
catalog.DropEntry(context,
|
277
|
+
catalog.DropEntry(context, info);
|
278
278
|
}
|
279
279
|
|
280
280
|
//===--------------------------------------------------------------------===//
|
@@ -285,7 +285,7 @@ void ReplayState::ReplayCreateType() {
|
|
285
285
|
if (Catalog::TypeExists(context, info->catalog, info->schema, info->name)) {
|
286
286
|
return;
|
287
287
|
}
|
288
|
-
catalog.CreateType(context, info
|
288
|
+
catalog.CreateType(context, *info);
|
289
289
|
}
|
290
290
|
|
291
291
|
void ReplayState::ReplayDropType() {
|
@@ -298,7 +298,7 @@ void ReplayState::ReplayDropType() {
|
|
298
298
|
return;
|
299
299
|
}
|
300
300
|
|
301
|
-
catalog.DropEntry(context,
|
301
|
+
catalog.DropEntry(context, info);
|
302
302
|
}
|
303
303
|
|
304
304
|
//===--------------------------------------------------------------------===//
|
@@ -310,7 +310,7 @@ void ReplayState::ReplayCreateSequence() {
|
|
310
310
|
return;
|
311
311
|
}
|
312
312
|
|
313
|
-
catalog.CreateSequence(context, entry
|
313
|
+
catalog.CreateSequence(context, *entry);
|
314
314
|
}
|
315
315
|
|
316
316
|
void ReplayState::ReplayDropSequence() {
|
@@ -322,7 +322,7 @@ void ReplayState::ReplayDropSequence() {
|
|
322
322
|
return;
|
323
323
|
}
|
324
324
|
|
325
|
-
catalog.DropEntry(context,
|
325
|
+
catalog.DropEntry(context, info);
|
326
326
|
}
|
327
327
|
|
328
328
|
void ReplayState::ReplaySequenceValue() {
|
@@ -335,10 +335,10 @@ void ReplayState::ReplaySequenceValue() {
|
|
335
335
|
}
|
336
336
|
|
337
337
|
// fetch the sequence from the catalog
|
338
|
-
auto seq = catalog.GetEntry<SequenceCatalogEntry>(context, schema, name);
|
339
|
-
if (usage_count > seq
|
340
|
-
seq
|
341
|
-
seq
|
338
|
+
auto &seq = catalog.GetEntry<SequenceCatalogEntry>(context, schema, name);
|
339
|
+
if (usage_count > seq.usage_count) {
|
340
|
+
seq.usage_count = usage_count;
|
341
|
+
seq.counter = counter;
|
342
342
|
}
|
343
343
|
}
|
344
344
|
|
@@ -351,7 +351,7 @@ void ReplayState::ReplayCreateMacro() {
|
|
351
351
|
return;
|
352
352
|
}
|
353
353
|
|
354
|
-
catalog.CreateFunction(context, entry
|
354
|
+
catalog.CreateFunction(context, *entry);
|
355
355
|
}
|
356
356
|
|
357
357
|
void ReplayState::ReplayDropMacro() {
|
@@ -363,7 +363,7 @@ void ReplayState::ReplayDropMacro() {
|
|
363
363
|
return;
|
364
364
|
}
|
365
365
|
|
366
|
-
catalog.DropEntry(context,
|
366
|
+
catalog.DropEntry(context, info);
|
367
367
|
}
|
368
368
|
|
369
369
|
//===--------------------------------------------------------------------===//
|
@@ -375,7 +375,7 @@ void ReplayState::ReplayCreateTableMacro() {
|
|
375
375
|
return;
|
376
376
|
}
|
377
377
|
|
378
|
-
catalog.CreateFunction(context, entry
|
378
|
+
catalog.CreateFunction(context, *entry);
|
379
379
|
}
|
380
380
|
|
381
381
|
void ReplayState::ReplayDropTableMacro() {
|
@@ -387,22 +387,21 @@ void ReplayState::ReplayDropTableMacro() {
|
|
387
387
|
return;
|
388
388
|
}
|
389
389
|
|
390
|
-
catalog.DropEntry(context,
|
390
|
+
catalog.DropEntry(context, info);
|
391
391
|
}
|
392
392
|
|
393
393
|
//===--------------------------------------------------------------------===//
|
394
394
|
// Replay Index
|
395
395
|
//===--------------------------------------------------------------------===//
|
396
396
|
void ReplayState::ReplayCreateIndex() {
|
397
|
-
|
398
397
|
auto info = IndexCatalogEntry::Deserialize(source, context);
|
399
398
|
if (deserialize_only) {
|
400
399
|
return;
|
401
400
|
}
|
402
401
|
|
403
402
|
// get the physical table to which we'll add the index
|
404
|
-
auto table = catalog.GetEntry<TableCatalogEntry>(context, info->schema, info->table->table_name);
|
405
|
-
auto &data_table = table
|
403
|
+
auto &table = catalog.GetEntry<TableCatalogEntry>(context, info->schema, info->table->table_name);
|
404
|
+
auto &data_table = table.GetStorage();
|
406
405
|
|
407
406
|
// bind the parsed expressions
|
408
407
|
if (info->expressions.empty()) {
|
@@ -411,7 +410,7 @@ void ReplayState::ReplayCreateIndex() {
|
|
411
410
|
}
|
412
411
|
}
|
413
412
|
auto binder = Binder::CreateBinder(context);
|
414
|
-
auto expressions = binder->BindCreateIndexExpressions(
|
413
|
+
auto expressions = binder->BindCreateIndexExpressions(table, *info);
|
415
414
|
|
416
415
|
// create the empty index
|
417
416
|
unique_ptr<Index> index;
|
@@ -426,11 +425,11 @@ void ReplayState::ReplayCreateIndex() {
|
|
426
425
|
}
|
427
426
|
|
428
427
|
// add the index to the catalog
|
429
|
-
auto index_entry =
|
430
|
-
index_entry
|
431
|
-
index_entry
|
428
|
+
auto &index_entry = catalog.CreateIndex(context, *info)->Cast<DuckIndexEntry>();
|
429
|
+
index_entry.index = index.get();
|
430
|
+
index_entry.info = data_table.info;
|
432
431
|
for (auto &parsed_expr : info->parsed_expressions) {
|
433
|
-
index_entry
|
432
|
+
index_entry.parsed_expressions.push_back(parsed_expr->Copy());
|
434
433
|
}
|
435
434
|
|
436
435
|
// physically add the index to the data table storage
|
@@ -438,7 +437,6 @@ void ReplayState::ReplayCreateIndex() {
|
|
438
437
|
}
|
439
438
|
|
440
439
|
void ReplayState::ReplayDropIndex() {
|
441
|
-
|
442
440
|
DropInfo info;
|
443
441
|
info.type = CatalogType::INDEX_ENTRY;
|
444
442
|
info.schema = source.Read<string>();
|
@@ -447,7 +445,7 @@ void ReplayState::ReplayDropIndex() {
|
|
447
445
|
return;
|
448
446
|
}
|
449
447
|
|
450
|
-
catalog.DropEntry(context,
|
448
|
+
catalog.DropEntry(context, info);
|
451
449
|
}
|
452
450
|
|
453
451
|
//===--------------------------------------------------------------------===//
|
@@ -459,7 +457,7 @@ void ReplayState::ReplayUseTable() {
|
|
459
457
|
if (deserialize_only) {
|
460
458
|
return;
|
461
459
|
}
|
462
|
-
current_table = catalog.GetEntry<TableCatalogEntry>(context, schema_name, table_name);
|
460
|
+
current_table = &catalog.GetEntry<TableCatalogEntry>(context, schema_name, table_name);
|
463
461
|
}
|
464
462
|
|
465
463
|
void ReplayState::ReplayInsert() {
|
@@ -72,7 +72,7 @@ void WriteAheadLog::WriteDropTable(const TableCatalogEntry &entry) {
|
|
72
72
|
return;
|
73
73
|
}
|
74
74
|
writer->Write<WALType>(WALType::DROP_TABLE);
|
75
|
-
writer->WriteString(entry.schema
|
75
|
+
writer->WriteString(entry.schema.name);
|
76
76
|
writer->WriteString(entry.name);
|
77
77
|
}
|
78
78
|
|
@@ -103,7 +103,7 @@ void WriteAheadLog::WriteDropSequence(const SequenceCatalogEntry &entry) {
|
|
103
103
|
return;
|
104
104
|
}
|
105
105
|
writer->Write<WALType>(WALType::DROP_SEQUENCE);
|
106
|
-
writer->WriteString(entry.schema
|
106
|
+
writer->WriteString(entry.schema.name);
|
107
107
|
writer->WriteString(entry.name);
|
108
108
|
}
|
109
109
|
|
@@ -112,7 +112,7 @@ void WriteAheadLog::WriteSequenceValue(const SequenceCatalogEntry &entry, Sequen
|
|
112
112
|
return;
|
113
113
|
}
|
114
114
|
writer->Write<WALType>(WALType::SEQUENCE_VALUE);
|
115
|
-
writer->WriteString(entry.schema
|
115
|
+
writer->WriteString(entry.schema.name);
|
116
116
|
writer->WriteString(entry.name);
|
117
117
|
writer->Write<uint64_t>(val.usage_count);
|
118
118
|
writer->Write<int64_t>(val.counter);
|
@@ -134,7 +134,7 @@ void WriteAheadLog::WriteDropMacro(const ScalarMacroCatalogEntry &entry) {
|
|
134
134
|
return;
|
135
135
|
}
|
136
136
|
writer->Write<WALType>(WALType::DROP_MACRO);
|
137
|
-
writer->WriteString(entry.schema
|
137
|
+
writer->WriteString(entry.schema.name);
|
138
138
|
writer->WriteString(entry.name);
|
139
139
|
}
|
140
140
|
|
@@ -151,7 +151,7 @@ void WriteAheadLog::WriteDropTableMacro(const TableMacroCatalogEntry &entry) {
|
|
151
151
|
return;
|
152
152
|
}
|
153
153
|
writer->Write<WALType>(WALType::DROP_TABLE_MACRO);
|
154
|
-
writer->WriteString(entry.schema
|
154
|
+
writer->WriteString(entry.schema.name);
|
155
155
|
writer->WriteString(entry.name);
|
156
156
|
}
|
157
157
|
|
@@ -171,7 +171,7 @@ void WriteAheadLog::WriteDropIndex(const IndexCatalogEntry &entry) {
|
|
171
171
|
return;
|
172
172
|
}
|
173
173
|
writer->Write<WALType>(WALType::DROP_INDEX);
|
174
|
-
writer->WriteString(entry.schema
|
174
|
+
writer->WriteString(entry.schema.name);
|
175
175
|
writer->WriteString(entry.name);
|
176
176
|
}
|
177
177
|
|
@@ -191,7 +191,7 @@ void WriteAheadLog::WriteDropType(const TypeCatalogEntry &entry) {
|
|
191
191
|
return;
|
192
192
|
}
|
193
193
|
writer->Write<WALType>(WALType::DROP_TYPE);
|
194
|
-
writer->WriteString(entry.schema
|
194
|
+
writer->WriteString(entry.schema.name);
|
195
195
|
writer->WriteString(entry.name);
|
196
196
|
}
|
197
197
|
|
@@ -211,7 +211,7 @@ void WriteAheadLog::WriteDropView(const ViewCatalogEntry &entry) {
|
|
211
211
|
return;
|
212
212
|
}
|
213
213
|
writer->Write<WALType>(WALType::DROP_VIEW);
|
214
|
-
writer->WriteString(entry.schema
|
214
|
+
writer->WriteString(entry.schema.name);
|
215
215
|
writer->WriteString(entry.name);
|
216
216
|
}
|
217
217
|
|
@@ -24,7 +24,7 @@ void CleanupState::CleanupEntry(UndoFlags type, data_ptr_t data) {
|
|
24
24
|
auto catalog_entry = Load<CatalogEntry *>(data);
|
25
25
|
D_ASSERT(catalog_entry);
|
26
26
|
D_ASSERT(catalog_entry->set);
|
27
|
-
catalog_entry->set->CleanupEntry(catalog_entry);
|
27
|
+
catalog_entry->set->CleanupEntry(*catalog_entry);
|
28
28
|
break;
|
29
29
|
}
|
30
30
|
case UndoFlags::DELETE_TUPLE: {
|
@@ -229,12 +229,11 @@ void CommitState::CommitEntry(UndoFlags type, data_ptr_t data) {
|
|
229
229
|
auto catalog_entry = Load<CatalogEntry *>(data);
|
230
230
|
D_ASSERT(catalog_entry->parent);
|
231
231
|
|
232
|
-
auto &catalog = catalog_entry->
|
233
|
-
D_ASSERT(catalog);
|
234
|
-
D_ASSERT(catalog->IsDuckCatalog());
|
232
|
+
auto &catalog = catalog_entry->ParentCatalog();
|
233
|
+
D_ASSERT(catalog.IsDuckCatalog());
|
235
234
|
|
236
235
|
// Grab a write lock on the catalog
|
237
|
-
auto &duck_catalog = catalog
|
236
|
+
auto &duck_catalog = catalog.Cast<DuckCatalog>();
|
238
237
|
lock_guard<mutex> write_lock(duck_catalog.GetWriteLock());
|
239
238
|
catalog_entry->set->UpdateTimestamp(*catalog_entry->parent, commit_id);
|
240
239
|
if (catalog_entry->name != catalog_entry->parent->name) {
|
@@ -34,7 +34,7 @@ void TransactionContext::BeginTransaction() {
|
|
34
34
|
// if immediate transaction mode is enabled then start all transactions immediately
|
35
35
|
auto databases = DatabaseManager::Get(context).GetDatabases(context);
|
36
36
|
for (auto db : databases) {
|
37
|
-
current_transaction->GetTransaction(
|
37
|
+
current_transaction->GetTransaction(db.get());
|
38
38
|
}
|
39
39
|
}
|
40
40
|
}
|