duckdb 0.7.2-dev2430.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.
Files changed (201) hide show
  1. package/package.json +1 -1
  2. package/src/connection.cpp +1 -1
  3. package/src/duckdb/extension/icu/icu-dateadd.cpp +3 -3
  4. package/src/duckdb/extension/icu/icu-datepart.cpp +3 -3
  5. package/src/duckdb/extension/icu/icu-datesub.cpp +2 -2
  6. package/src/duckdb/extension/icu/icu-datetrunc.cpp +1 -1
  7. package/src/duckdb/extension/icu/icu-extension.cpp +3 -3
  8. package/src/duckdb/extension/icu/icu-list-range.cpp +2 -2
  9. package/src/duckdb/extension/icu/icu-makedate.cpp +1 -1
  10. package/src/duckdb/extension/icu/icu-strptime.cpp +4 -4
  11. package/src/duckdb/extension/icu/icu-table-range.cpp +2 -2
  12. package/src/duckdb/extension/icu/icu-timebucket.cpp +1 -1
  13. package/src/duckdb/extension/icu/icu-timezone.cpp +4 -4
  14. package/src/duckdb/extension/json/json-extension.cpp +6 -6
  15. package/src/duckdb/extension/parquet/parquet-extension.cpp +9 -8
  16. package/src/duckdb/src/catalog/catalog.cpp +166 -127
  17. package/src/duckdb/src/catalog/catalog_entry/copy_function_catalog_entry.cpp +3 -3
  18. package/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp +1 -1
  19. package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +90 -82
  20. package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +65 -67
  21. package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +3 -3
  22. package/src/duckdb/src/catalog/catalog_entry/pragma_function_catalog_entry.cpp +4 -4
  23. package/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp +8 -8
  24. package/src/duckdb/src/catalog/catalog_entry/scalar_macro_catalog_entry.cpp +10 -10
  25. package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +6 -6
  26. package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +6 -6
  27. package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +4 -4
  28. package/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp +9 -9
  29. package/src/duckdb/src/catalog/catalog_entry/type_catalog_entry.cpp +5 -5
  30. package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +23 -23
  31. package/src/duckdb/src/catalog/catalog_entry.cpp +27 -6
  32. package/src/duckdb/src/catalog/catalog_search_path.cpp +2 -2
  33. package/src/duckdb/src/catalog/catalog_set.cpp +84 -87
  34. package/src/duckdb/src/catalog/catalog_transaction.cpp +1 -1
  35. package/src/duckdb/src/catalog/default/default_functions.cpp +1 -1
  36. package/src/duckdb/src/catalog/default/default_schemas.cpp +1 -1
  37. package/src/duckdb/src/catalog/default/default_types.cpp +1 -1
  38. package/src/duckdb/src/catalog/default/default_views.cpp +1 -1
  39. package/src/duckdb/src/catalog/dependency_list.cpp +2 -2
  40. package/src/duckdb/src/catalog/dependency_manager.cpp +9 -10
  41. package/src/duckdb/src/catalog/duck_catalog.cpp +30 -26
  42. package/src/duckdb/src/catalog/similar_catalog_entry.cpp +1 -1
  43. package/src/duckdb/src/common/types.cpp +15 -27
  44. package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +2 -2
  45. package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +4 -3
  46. package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +19 -18
  47. package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +5 -5
  48. package/src/duckdb/src/execution/operator/schema/physical_alter.cpp +1 -1
  49. package/src/duckdb/src/execution/operator/schema/physical_create_function.cpp +1 -1
  50. package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +6 -5
  51. package/src/duckdb/src/execution/operator/schema/physical_create_schema.cpp +1 -1
  52. package/src/duckdb/src/execution/operator/schema/physical_create_sequence.cpp +1 -1
  53. package/src/duckdb/src/execution/operator/schema/physical_create_table.cpp +2 -2
  54. package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +4 -3
  55. package/src/duckdb/src/execution/operator/schema/physical_create_view.cpp +1 -1
  56. package/src/duckdb/src/execution/operator/schema/physical_detach.cpp +1 -1
  57. package/src/duckdb/src/execution/operator/schema/physical_drop.cpp +2 -2
  58. package/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp +1 -1
  59. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +4 -4
  60. package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +4 -3
  61. package/src/duckdb/src/execution/physical_plan/plan_delete.cpp +1 -1
  62. package/src/duckdb/src/execution/physical_plan/plan_insert.cpp +1 -1
  63. package/src/duckdb/src/execution/physical_plan/plan_update.cpp +1 -1
  64. package/src/duckdb/src/function/built_in_functions.cpp +10 -10
  65. package/src/duckdb/src/function/function_binder.cpp +3 -3
  66. package/src/duckdb/src/function/scalar/list/list_aggregates.cpp +5 -6
  67. package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -2
  68. package/src/duckdb/src/function/scalar/sequence/nextval.cpp +9 -8
  69. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +6 -6
  70. package/src/duckdb/src/function/table/arrow.cpp +32 -31
  71. package/src/duckdb/src/function/table/arrow_conversion.cpp +75 -59
  72. package/src/duckdb/src/function/table/system/duckdb_columns.cpp +8 -7
  73. package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +14 -14
  74. package/src/duckdb/src/function/table/system/duckdb_databases.cpp +2 -2
  75. package/src/duckdb/src/function/table/system/duckdb_functions.cpp +26 -25
  76. package/src/duckdb/src/function/table/system/duckdb_indexes.cpp +13 -12
  77. package/src/duckdb/src/function/table/system/duckdb_schemas.cpp +7 -7
  78. package/src/duckdb/src/function/table/system/duckdb_sequences.cpp +8 -9
  79. package/src/duckdb/src/function/table/system/duckdb_tables.cpp +10 -9
  80. package/src/duckdb/src/function/table/system/duckdb_types.cpp +13 -13
  81. package/src/duckdb/src/function/table/system/duckdb_views.cpp +11 -10
  82. package/src/duckdb/src/function/table/system/pragma_collations.cpp +2 -2
  83. package/src/duckdb/src/function/table/system/pragma_database_size.cpp +5 -5
  84. package/src/duckdb/src/function/table/system/pragma_storage_info.cpp +3 -3
  85. package/src/duckdb/src/function/table/system/pragma_table_info.cpp +2 -2
  86. package/src/duckdb/src/function/table/table_scan.cpp +39 -37
  87. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  88. package/src/duckdb/src/function/udf_function.cpp +2 -2
  89. package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +122 -81
  90. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp +2 -3
  91. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/collate_catalog_entry.hpp +3 -3
  92. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/copy_function_catalog_entry.hpp +1 -1
  93. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp +1 -1
  94. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp +24 -20
  95. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +3 -3
  96. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/index_catalog_entry.hpp +1 -1
  97. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/macro_catalog_entry.hpp +2 -2
  98. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp +1 -1
  99. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp +2 -2
  100. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_macro_catalog_entry.hpp +1 -1
  101. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +22 -17
  102. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +1 -1
  103. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +1 -1
  104. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +2 -2
  105. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_macro_catalog_entry.hpp +1 -1
  106. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +1 -1
  107. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/view_catalog_entry.hpp +3 -3
  108. package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +28 -7
  109. package/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +20 -19
  110. package/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp +9 -9
  111. package/src/duckdb/src/include/duckdb/catalog/similar_catalog_entry.hpp +2 -1
  112. package/src/duckdb/src/include/duckdb/catalog/standard_entry.hpp +10 -4
  113. package/src/duckdb/src/include/duckdb/common/enums/on_entry_not_found.hpp +17 -0
  114. package/src/duckdb/src/include/duckdb/common/types.hpp +3 -4
  115. package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +4 -4
  116. package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +3 -2
  117. package/src/duckdb/src/include/duckdb/function/table/table_scan.hpp +5 -4
  118. package/src/duckdb/src/include/duckdb/function/table_function.hpp +28 -15
  119. package/src/duckdb/src/include/duckdb/main/attached_database.hpp +2 -0
  120. package/src/duckdb/src/include/duckdb/main/client_context.hpp +1 -1
  121. package/src/duckdb/src/include/duckdb/main/database_manager.hpp +3 -2
  122. package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +2 -0
  123. package/src/duckdb/src/include/duckdb/parser/keyword_helper.hpp +2 -2
  124. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +7 -5
  125. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +1 -1
  126. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_info.hpp +1 -1
  127. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_view_info.hpp +1 -1
  128. package/src/duckdb/src/include/duckdb/parser/parsed_data/detach_info.hpp +3 -2
  129. package/src/duckdb/src/include/duckdb/parser/parsed_data/drop_info.hpp +5 -5
  130. package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +13 -0
  131. package/src/duckdb/src/include/duckdb/parser/tableref.hpp +5 -2
  132. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +2 -0
  133. package/src/duckdb/src/include/duckdb/planner/binder.hpp +2 -2
  134. package/src/duckdb/src/include/duckdb/planner/expression_binder/base_select_binder.hpp +1 -2
  135. package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +4 -7
  136. package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +1 -1
  137. package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +12 -0
  138. package/src/duckdb/src/main/attached_database.cpp +12 -6
  139. package/src/duckdb/src/main/capi/table_function-c.cpp +17 -16
  140. package/src/duckdb/src/main/client_context.cpp +12 -11
  141. package/src/duckdb/src/main/database_manager.cpp +13 -12
  142. package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +1 -2
  143. package/src/duckdb/src/parser/parsed_data/alter_info.cpp +3 -3
  144. package/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp +2 -2
  145. package/src/duckdb/src/parser/parsed_data/alter_table_function_info.cpp +2 -2
  146. package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +9 -9
  147. package/src/duckdb/src/parser/parsed_data/create_scalar_function_info.cpp +2 -2
  148. package/src/duckdb/src/parser/parsed_data/create_table_function_info.cpp +2 -2
  149. package/src/duckdb/src/parser/parsed_data/create_table_info.cpp +2 -2
  150. package/src/duckdb/src/parser/parsed_data/create_view_info.cpp +2 -2
  151. package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +3 -2
  152. package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +5 -1
  153. package/src/duckdb/src/parser/transform/statement/transform_detach.cpp +1 -1
  154. package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +1 -1
  155. package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +1 -1
  156. package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +26 -27
  157. package/src/duckdb/src/planner/binder/expression/bind_between_expression.cpp +17 -17
  158. package/src/duckdb/src/planner/binder/expression/bind_case_expression.cpp +9 -9
  159. package/src/duckdb/src/planner/binder/expression/bind_cast_expression.cpp +6 -6
  160. package/src/duckdb/src/planner/binder/expression/bind_collate_expression.cpp +6 -6
  161. package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +2 -2
  162. package/src/duckdb/src/planner/binder/expression/bind_comparison_expression.cpp +21 -21
  163. package/src/duckdb/src/planner/binder/expression/bind_conjunction_expression.cpp +2 -3
  164. package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +33 -36
  165. package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +5 -5
  166. package/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp +23 -23
  167. package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +4 -4
  168. package/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp +7 -7
  169. package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +23 -23
  170. package/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp +4 -4
  171. package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +14 -13
  172. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +36 -35
  173. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +3 -3
  174. package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +1 -1
  175. package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +4 -4
  176. package/src/duckdb/src/planner/binder/statement/bind_export.cpp +10 -10
  177. package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
  178. package/src/duckdb/src/planner/binder/statement/bind_pragma.cpp +4 -4
  179. package/src/duckdb/src/planner/binder/statement/bind_simple.cpp +5 -4
  180. package/src/duckdb/src/planner/binder/statement/bind_update.cpp +1 -1
  181. package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +3 -3
  182. package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +10 -12
  183. package/src/duckdb/src/planner/binder.cpp +2 -2
  184. package/src/duckdb/src/planner/expression/bound_expression.cpp +11 -2
  185. package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +2 -5
  186. package/src/duckdb/src/planner/operator/logical_create.cpp +2 -1
  187. package/src/duckdb/src/planner/operator/logical_create_index.cpp +2 -2
  188. package/src/duckdb/src/planner/operator/logical_delete.cpp +2 -2
  189. package/src/duckdb/src/planner/operator/logical_get.cpp +1 -1
  190. package/src/duckdb/src/planner/operator/logical_insert.cpp +2 -7
  191. package/src/duckdb/src/planner/operator/logical_update.cpp +2 -6
  192. package/src/duckdb/src/planner/parsed_data/bound_create_table_info.cpp +2 -2
  193. package/src/duckdb/src/planner/pragma_handler.cpp +3 -4
  194. package/src/duckdb/src/storage/checkpoint_manager.cpp +46 -46
  195. package/src/duckdb/src/storage/data_table.cpp +3 -6
  196. package/src/duckdb/src/storage/table/update_segment.cpp +1 -1
  197. package/src/duckdb/src/storage/wal_replay.cpp +28 -30
  198. package/src/duckdb/src/storage/write_ahead_log.cpp +8 -8
  199. package/src/duckdb/src/transaction/cleanup_state.cpp +1 -1
  200. package/src/duckdb/src/transaction/commit_state.cpp +3 -4
  201. 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.get());
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, &info);
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.get());
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.get());
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, &info);
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, &info);
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, &info);
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.get());
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, &info);
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.get());
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, &info);
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->usage_count) {
340
- seq->usage_count = usage_count;
341
- seq->counter = counter;
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.get());
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, &info);
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.get());
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, &info);
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->GetStorage();
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(*table, *info);
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 = (DuckIndexEntry *)catalog.CreateIndex(context, info.get());
430
- index_entry->index = index.get();
431
- index_entry->info = data_table.info;
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->parsed_expressions.push_back(parsed_expr->Copy());
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, &info);
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->name);
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->name);
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->name);
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->name);
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->name);
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->name);
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->name);
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->name);
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->catalog;
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->Cast<DuckCatalog>();
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(*db);
37
+ current_transaction->GetTransaction(db.get());
38
38
  }
39
39
  }
40
40
  }