duckdb 0.6.2-dev772.0 → 0.6.2-dev889.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 (320) hide show
  1. package/binding.gyp +1 -1
  2. package/package.json +1 -1
  3. package/src/connection.cpp +2 -1
  4. package/src/duckdb/extension/icu/icu-dateadd.cpp +3 -3
  5. package/src/duckdb/extension/icu/icu-datepart.cpp +3 -3
  6. package/src/duckdb/extension/icu/icu-datesub.cpp +2 -2
  7. package/src/duckdb/extension/icu/icu-datetrunc.cpp +1 -1
  8. package/src/duckdb/extension/icu/icu-extension.cpp +1 -1
  9. package/src/duckdb/extension/icu/icu-makedate.cpp +1 -1
  10. package/src/duckdb/extension/icu/icu-strptime.cpp +2 -2
  11. package/src/duckdb/extension/icu/icu-timezone.cpp +6 -5
  12. package/src/duckdb/extension/json/json-extension.cpp +1 -1
  13. package/src/duckdb/extension/parquet/parquet-extension.cpp +1 -1
  14. package/src/duckdb/src/catalog/catalog.cpp +516 -177
  15. package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +1 -0
  16. package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +66 -49
  17. package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +15 -16
  18. package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +1 -1
  19. package/src/duckdb/src/catalog/catalog_entry.cpp +6 -2
  20. package/src/duckdb/src/catalog/catalog_search_path.cpp +177 -22
  21. package/src/duckdb/src/catalog/catalog_set.cpp +134 -72
  22. package/src/duckdb/src/catalog/catalog_transaction.cpp +28 -0
  23. package/src/duckdb/src/catalog/default/default_views.cpp +4 -4
  24. package/src/duckdb/src/catalog/dependency_list.cpp +13 -0
  25. package/src/duckdb/src/catalog/dependency_manager.cpp +19 -13
  26. package/src/duckdb/src/common/constants.cpp +8 -0
  27. package/src/duckdb/src/common/enums/catalog_type.cpp +2 -0
  28. package/src/duckdb/src/common/enums/logical_operator_type.cpp +2 -0
  29. package/src/duckdb/src/common/enums/physical_operator_type.cpp +2 -0
  30. package/src/duckdb/src/common/enums/statement_type.cpp +2 -0
  31. package/src/duckdb/src/common/file_system.cpp +1 -1
  32. package/src/duckdb/src/common/string_util.cpp +5 -1
  33. package/src/duckdb/src/execution/index/art/art.cpp +1 -1
  34. package/src/duckdb/src/execution/operator/helper/physical_transaction.cpp +1 -0
  35. package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +1 -1
  36. package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +3 -2
  37. package/src/duckdb/src/execution/operator/persistent/physical_delete.cpp +1 -1
  38. package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +1 -1
  39. package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +4 -3
  40. package/src/duckdb/src/execution/operator/schema/physical_alter.cpp +1 -1
  41. package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +72 -0
  42. package/src/duckdb/src/execution/operator/schema/physical_create_function.cpp +2 -1
  43. package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +3 -3
  44. package/src/duckdb/src/execution/operator/schema/physical_create_schema.cpp +5 -1
  45. package/src/duckdb/src/execution/operator/schema/physical_create_sequence.cpp +2 -1
  46. package/src/duckdb/src/execution/operator/schema/physical_create_table.cpp +2 -2
  47. package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
  48. package/src/duckdb/src/execution/operator/schema/physical_create_view.cpp +2 -1
  49. package/src/duckdb/src/execution/operator/schema/physical_drop.cpp +10 -2
  50. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +4 -4
  51. package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +1 -1
  52. package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +2 -3
  53. package/src/duckdb/src/execution/physical_plan/plan_delete.cpp +1 -1
  54. package/src/duckdb/src/execution/physical_plan/plan_insert.cpp +1 -1
  55. package/src/duckdb/src/execution/physical_plan/plan_simple.cpp +4 -0
  56. package/src/duckdb/src/execution/physical_plan/plan_update.cpp +1 -1
  57. package/src/duckdb/src/execution/physical_plan_generator.cpp +3 -2
  58. package/src/duckdb/src/function/built_in_functions.cpp +88 -0
  59. package/src/duckdb/src/function/function.cpp +0 -79
  60. package/src/duckdb/src/function/function_binder.cpp +2 -1
  61. package/src/duckdb/src/function/pragma/pragma_queries.cpp +10 -1
  62. package/src/duckdb/src/function/scalar/date/current.cpp +2 -2
  63. package/src/duckdb/src/function/scalar/list/list_aggregates.cpp +3 -2
  64. package/src/duckdb/src/function/scalar/sequence/nextval.cpp +14 -17
  65. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +2 -2
  66. package/src/duckdb/src/function/scalar/system/system_functions.cpp +7 -4
  67. package/src/duckdb/src/function/table/checkpoint.cpp +37 -4
  68. package/src/duckdb/src/function/table/read_csv.cpp +1 -1
  69. package/src/duckdb/src/function/table/system/duckdb_columns.cpp +32 -25
  70. package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +26 -22
  71. package/src/duckdb/src/function/table/system/duckdb_dependencies.cpp +1 -1
  72. package/src/duckdb/src/function/table/system/duckdb_extensions.cpp +1 -1
  73. package/src/duckdb/src/function/table/system/duckdb_functions.cpp +22 -15
  74. package/src/duckdb/src/function/table/system/duckdb_indexes.cpp +25 -18
  75. package/src/duckdb/src/function/table/system/duckdb_schemas.cpp +16 -8
  76. package/src/duckdb/src/function/table/system/duckdb_sequences.cpp +26 -19
  77. package/src/duckdb/src/function/table/system/duckdb_tables.cpp +24 -17
  78. package/src/duckdb/src/function/table/system/duckdb_types.cpp +22 -16
  79. package/src/duckdb/src/function/table/system/duckdb_views.cpp +20 -13
  80. package/src/duckdb/src/function/table/system/pragma_collations.cpp +3 -4
  81. package/src/duckdb/src/function/table/system/pragma_database_list.cpp +20 -12
  82. package/src/duckdb/src/function/table/system/pragma_database_size.cpp +39 -24
  83. package/src/duckdb/src/function/table/system/pragma_storage_info.cpp +1 -7
  84. package/src/duckdb/src/function/table/system/pragma_table_info.cpp +3 -2
  85. package/src/duckdb/src/function/table/system_functions.cpp +0 -1
  86. package/src/duckdb/src/function/table/table_scan.cpp +13 -10
  87. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  88. package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +102 -81
  89. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp +4 -0
  90. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/collate_catalog_entry.hpp +4 -0
  91. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/copy_function_catalog_entry.hpp +4 -0
  92. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/index_catalog_entry.hpp +4 -0
  93. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp +4 -0
  94. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp +4 -0
  95. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_macro_catalog_entry.hpp +4 -0
  96. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +21 -14
  97. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +4 -0
  98. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +4 -0
  99. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +4 -0
  100. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_macro_catalog_entry.hpp +4 -0
  101. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +4 -0
  102. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/view_catalog_entry.hpp +4 -0
  103. package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -0
  104. package/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +30 -11
  105. package/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +35 -20
  106. package/src/duckdb/src/include/duckdb/catalog/catalog_transaction.hpp +32 -0
  107. package/src/duckdb/src/include/duckdb/catalog/dependency_list.hpp +27 -0
  108. package/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp +6 -4
  109. package/src/duckdb/src/include/duckdb/common/allocator.hpp +3 -0
  110. package/src/duckdb/src/include/duckdb/common/constants.hpp +8 -3
  111. package/src/duckdb/src/include/duckdb/common/enums/catalog_type.hpp +1 -0
  112. package/src/duckdb/src/include/duckdb/common/enums/logical_operator_type.hpp +1 -0
  113. package/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp +1 -0
  114. package/src/duckdb/src/include/duckdb/common/enums/statement_type.hpp +10 -4
  115. package/src/duckdb/src/include/duckdb/common/file_system.hpp +2 -0
  116. package/src/duckdb/src/include/duckdb/common/string_util.hpp +3 -0
  117. package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +2 -2
  118. package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_attach.hpp +33 -0
  119. package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +2 -1
  120. package/src/duckdb/src/include/duckdb/function/aggregate/algebraic_functions.hpp +1 -0
  121. package/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp +1 -0
  122. package/src/duckdb/src/include/duckdb/function/aggregate/holistic_functions.hpp +1 -0
  123. package/src/duckdb/src/include/duckdb/function/aggregate/nested_functions.hpp +1 -0
  124. package/src/duckdb/src/include/duckdb/function/aggregate/regression_functions.hpp +1 -0
  125. package/src/duckdb/src/include/duckdb/function/built_in_functions.hpp +78 -0
  126. package/src/duckdb/src/include/duckdb/function/function.hpp +0 -61
  127. package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +1 -2
  128. package/src/duckdb/src/include/duckdb/function/pragma/pragma_functions.hpp +1 -0
  129. package/src/duckdb/src/include/duckdb/function/scalar/blob_functions.hpp +1 -0
  130. package/src/duckdb/src/include/duckdb/function/scalar/date_functions.hpp +1 -0
  131. package/src/duckdb/src/include/duckdb/function/scalar/enum_functions.hpp +1 -0
  132. package/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp +1 -0
  133. package/src/duckdb/src/include/duckdb/function/scalar/math_functions.hpp +1 -0
  134. package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +1 -0
  135. package/src/duckdb/src/include/duckdb/function/scalar/operators.hpp +1 -0
  136. package/src/duckdb/src/include/duckdb/function/scalar/regexp.hpp +1 -0
  137. package/src/duckdb/src/include/duckdb/function/scalar/sequence_functions.hpp +1 -0
  138. package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +1 -0
  139. package/src/duckdb/src/include/duckdb/function/scalar/trigonometric_functions.hpp +1 -0
  140. package/src/duckdb/src/include/duckdb/function/scalar/uuid_functions.hpp +1 -0
  141. package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -1
  142. package/src/duckdb/src/include/duckdb/function/table/arrow.hpp +1 -0
  143. package/src/duckdb/src/include/duckdb/function/table/range.hpp +1 -0
  144. package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +1 -0
  145. package/src/duckdb/src/include/duckdb/function/table/summary.hpp +1 -0
  146. package/src/duckdb/src/include/duckdb/function/table/system_functions.hpp +1 -4
  147. package/src/duckdb/src/include/duckdb/function/table/table_scan.hpp +1 -0
  148. package/src/duckdb/src/include/duckdb/function/table_function.hpp +2 -1
  149. package/src/duckdb/src/include/duckdb/main/attached_database.hpp +64 -0
  150. package/src/duckdb/src/include/duckdb/main/client_context.hpp +3 -3
  151. package/src/duckdb/src/include/duckdb/main/client_data.hpp +2 -1
  152. package/src/duckdb/src/include/duckdb/main/config.hpp +3 -0
  153. package/src/duckdb/src/include/duckdb/main/database.hpp +6 -6
  154. package/src/duckdb/src/include/duckdb/main/database_manager.hpp +69 -0
  155. package/src/duckdb/src/include/duckdb/main/settings.hpp +10 -0
  156. package/src/duckdb/src/include/duckdb/main/valid_checker.hpp +2 -2
  157. package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +3 -1
  158. package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +3 -1
  159. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_function_info.hpp +2 -2
  160. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +18 -1
  161. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +53 -56
  162. package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +39 -0
  163. package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_info.hpp +4 -1
  164. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_aggregate_function_info.hpp +3 -18
  165. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_collation_info.hpp +4 -13
  166. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_copy_function_info.hpp +3 -12
  167. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +1 -1
  168. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +5 -3
  169. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_pragma_function_info.hpp +3 -14
  170. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_function_info.hpp +3 -19
  171. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_info.hpp +3 -1
  172. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_view_info.hpp +7 -34
  173. package/src/duckdb/src/include/duckdb/parser/parsed_data/drop_info.hpp +7 -1
  174. package/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp +3 -0
  175. package/src/duckdb/src/include/duckdb/parser/parser_extension.hpp +2 -2
  176. package/src/duckdb/src/include/duckdb/parser/qualified_name.hpp +10 -2
  177. package/src/duckdb/src/include/duckdb/parser/query_error_context.hpp +2 -2
  178. package/src/duckdb/src/include/duckdb/parser/statement/attach_statement.hpp +29 -0
  179. package/src/duckdb/src/include/duckdb/parser/statement/export_statement.hpp +1 -0
  180. package/src/duckdb/src/include/duckdb/parser/statement/insert_statement.hpp +2 -0
  181. package/src/duckdb/src/include/duckdb/parser/statement/list.hpp +1 -0
  182. package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +4 -1
  183. package/src/duckdb/src/include/duckdb/parser/tokens.hpp +1 -0
  184. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +2 -0
  185. package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +2 -0
  186. package/src/duckdb/src/include/duckdb/planner/binder.hpp +11 -1
  187. package/src/duckdb/src/include/duckdb/planner/parsed_data/bound_create_table_info.hpp +2 -1
  188. package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +1 -0
  189. package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +13 -6
  190. package/src/duckdb/src/include/duckdb/storage/data_table.hpp +10 -2
  191. package/src/duckdb/src/include/duckdb/storage/single_file_block_manager.hpp +2 -2
  192. package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +2 -2
  193. package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +9 -12
  194. package/src/duckdb/src/include/duckdb/storage/table/data_table_info.hpp +3 -7
  195. package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +5 -6
  196. package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +9 -7
  197. package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +3 -1
  198. package/src/duckdb/src/include/duckdb/transaction/meta_transaction.hpp +64 -0
  199. package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +14 -23
  200. package/src/duckdb/src/include/duckdb/transaction/transaction_context.hpp +12 -8
  201. package/src/duckdb/src/include/duckdb/transaction/transaction_manager.hpp +5 -10
  202. package/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp +1 -1
  203. package/src/duckdb/src/main/attached_database.cpp +97 -0
  204. package/src/duckdb/src/main/capi/table_function-c.cpp +1 -1
  205. package/src/duckdb/src/main/client_context.cpp +28 -22
  206. package/src/duckdb/src/main/client_data.cpp +5 -2
  207. package/src/duckdb/src/main/config.cpp +1 -0
  208. package/src/duckdb/src/main/connection.cpp +1 -1
  209. package/src/duckdb/src/main/database.cpp +54 -40
  210. package/src/duckdb/src/main/database_manager.cpp +95 -0
  211. package/src/duckdb/src/main/materialized_query_result.cpp +1 -1
  212. package/src/duckdb/src/main/prepared_statement_data.cpp +1 -2
  213. package/src/duckdb/src/main/query_result.cpp +4 -4
  214. package/src/duckdb/src/main/settings/settings.cpp +22 -6
  215. package/src/duckdb/src/main/stream_query_result.cpp +1 -1
  216. package/src/duckdb/src/parser/expression/columnref_expression.cpp +9 -3
  217. package/src/duckdb/src/parser/expression/function_expression.cpp +15 -13
  218. package/src/duckdb/src/parser/expression/window_expression.cpp +6 -4
  219. package/src/duckdb/src/parser/parsed_data/alter_function_info.cpp +7 -7
  220. package/src/duckdb/src/parser/parsed_data/alter_info.cpp +12 -2
  221. package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +96 -98
  222. package/src/duckdb/src/parser/parsed_data/create_aggregate_function_info.cpp +27 -0
  223. package/src/duckdb/src/parser/parsed_data/create_collation_info.cpp +23 -0
  224. package/src/duckdb/src/parser/parsed_data/create_copy_function_info.cpp +21 -0
  225. package/src/duckdb/src/parser/parsed_data/create_info.cpp +3 -0
  226. package/src/duckdb/src/parser/parsed_data/create_pragma_function_info.cpp +23 -0
  227. package/src/duckdb/src/parser/parsed_data/create_scalar_function_info.cpp +3 -1
  228. package/src/duckdb/src/parser/parsed_data/create_table_function_info.cpp +28 -0
  229. package/src/duckdb/src/parser/parsed_data/create_table_info.cpp +9 -3
  230. package/src/duckdb/src/parser/parsed_data/create_view_info.cpp +49 -0
  231. package/src/duckdb/src/parser/statement/attach_statement.cpp +15 -0
  232. package/src/duckdb/src/parser/statement/insert_statement.cpp +6 -2
  233. package/src/duckdb/src/parser/tableref/basetableref.cpp +9 -4
  234. package/src/duckdb/src/parser/transform/constraint/transform_constraint.cpp +15 -13
  235. package/src/duckdb/src/parser/transform/expression/transform_function.cpp +17 -7
  236. package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +4 -9
  237. package/src/duckdb/src/parser/transform/helpers/nodetype_to_string.cpp +4 -0
  238. package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +5 -4
  239. package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +8 -10
  240. package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +32 -0
  241. package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +7 -2
  242. package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +1 -0
  243. package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +1 -0
  244. package/src/duckdb/src/parser/transform/statement/transform_create_schema.cpp +1 -0
  245. package/src/duckdb/src/parser/transform/statement/transform_create_sequence.cpp +1 -0
  246. package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +5 -5
  247. package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +1 -0
  248. package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +6 -13
  249. package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +6 -6
  250. package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +11 -2
  251. package/src/duckdb/src/parser/transform/statement/transform_export.cpp +5 -1
  252. package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +1 -0
  253. package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +12 -36
  254. package/src/duckdb/src/parser/transform/statement/transform_show.cpp +3 -1
  255. package/src/duckdb/src/parser/transform/statement/transform_use.cpp +21 -0
  256. package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +11 -3
  257. package/src/duckdb/src/parser/transformer.cpp +4 -0
  258. package/src/duckdb/src/planner/bind_context.cpp +11 -2
  259. package/src/duckdb/src/planner/binder/expression/bind_cast_expression.cpp +1 -1
  260. package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +43 -13
  261. package/src/duckdb/src/planner/binder/expression/bind_comparison_expression.cpp +1 -1
  262. package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +2 -3
  263. package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +2 -3
  264. package/src/duckdb/src/planner/binder/statement/bind_attach.cpp +20 -0
  265. package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +7 -4
  266. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +79 -27
  267. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +11 -7
  268. package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +1 -1
  269. package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +13 -5
  270. package/src/duckdb/src/planner/binder/statement/bind_export.cpp +6 -3
  271. package/src/duckdb/src/planner/binder/statement/bind_extension.cpp +1 -1
  272. package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +3 -2
  273. package/src/duckdb/src/planner/binder/statement/bind_pragma.cpp +2 -2
  274. package/src/duckdb/src/planner/binder/statement/bind_prepare.cpp +0 -2
  275. package/src/duckdb/src/planner/binder/statement/bind_simple.cpp +11 -6
  276. package/src/duckdb/src/planner/binder/statement/bind_update.cpp +1 -1
  277. package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +10 -6
  278. package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +2 -4
  279. package/src/duckdb/src/planner/binder.cpp +17 -2
  280. package/src/duckdb/src/planner/logical_operator.cpp +5 -12
  281. package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +3 -4
  282. package/src/duckdb/src/planner/operator/logical_create.cpp +1 -4
  283. package/src/duckdb/src/planner/operator/logical_create_index.cpp +2 -2
  284. package/src/duckdb/src/planner/operator/logical_delete.cpp +2 -3
  285. package/src/duckdb/src/planner/operator/logical_insert.cpp +1 -1
  286. package/src/duckdb/src/planner/operator/logical_update.cpp +1 -1
  287. package/src/duckdb/src/planner/parsed_data/bound_create_table_info.cpp +1 -1
  288. package/src/duckdb/src/planner/planner.cpp +3 -2
  289. package/src/duckdb/src/planner/pragma_handler.cpp +1 -1
  290. package/src/duckdb/src/storage/buffer_manager.cpp +5 -0
  291. package/src/duckdb/src/storage/checkpoint_manager.cpp +10 -17
  292. package/src/duckdb/src/storage/data_table.cpp +34 -24
  293. package/src/duckdb/src/storage/local_storage.cpp +7 -3
  294. package/src/duckdb/src/storage/single_file_block_manager.cpp +3 -3
  295. package/src/duckdb/src/storage/storage_manager.cpp +25 -42
  296. package/src/duckdb/src/storage/table/column_data.cpp +2 -1
  297. package/src/duckdb/src/storage/table/row_group.cpp +7 -2
  298. package/src/duckdb/src/storage/wal_replay.cpp +6 -22
  299. package/src/duckdb/src/storage/write_ahead_log.cpp +3 -3
  300. package/src/duckdb/src/transaction/meta_transaction.cpp +106 -0
  301. package/src/duckdb/src/transaction/transaction.cpp +21 -21
  302. package/src/duckdb/src/transaction/transaction_context.cpp +44 -8
  303. package/src/duckdb/src/transaction/transaction_manager.cpp +20 -20
  304. package/src/duckdb/src/transaction/undo_buffer.cpp +1 -3
  305. package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +2 -0
  306. package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +27 -1
  307. package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +99 -97
  308. package/src/duckdb/third_party/libpg_query/include/parser/kwlist.hpp +1 -0
  309. package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +15206 -14793
  310. package/src/duckdb/ub_src_catalog.cpp +4 -0
  311. package/src/duckdb/ub_src_execution_operator_schema.cpp +2 -0
  312. package/src/duckdb/ub_src_function.cpp +2 -0
  313. package/src/duckdb/ub_src_function_table_system.cpp +0 -2
  314. package/src/duckdb/ub_src_main.cpp +4 -0
  315. package/src/duckdb/ub_src_parser_parsed_data.cpp +12 -0
  316. package/src/duckdb/ub_src_parser_statement.cpp +2 -0
  317. package/src/duckdb/ub_src_parser_transform_statement.cpp +4 -0
  318. package/src/duckdb/ub_src_planner_binder_statement.cpp +2 -0
  319. package/src/duckdb/ub_src_transaction.cpp +2 -0
  320. package/src/duckdb/src/function/table/system/pragma_functions.cpp +0 -120
@@ -7,7 +7,7 @@ namespace duckdb {
7
7
  MaterializedQueryResult::MaterializedQueryResult(StatementType statement_type, StatementProperties properties,
8
8
  vector<string> names_p, unique_ptr<ColumnDataCollection> collection_p,
9
9
  ClientProperties client_properties)
10
- : QueryResult(QueryResultType::MATERIALIZED_RESULT, statement_type, properties, collection_p->Types(),
10
+ : QueryResult(QueryResultType::MATERIALIZED_RESULT, statement_type, move(properties), collection_p->Types(),
11
11
  move(names_p), move(client_properties)),
12
12
  collection(move(collection_p)), scan_initialized(false) {
13
13
  }
@@ -28,8 +28,7 @@ bool PreparedStatementData::RequireRebind(ClientContext &context, const vector<V
28
28
  // parameters not yet bound: query always requires a rebind
29
29
  return true;
30
30
  }
31
- auto &catalog = Catalog::GetCatalog(context);
32
- if (catalog.GetCatalogVersion() != catalog_version) {
31
+ if (Catalog::GetSystemCatalog(context).GetCatalogVersion() != catalog_version) {
33
32
  //! context is out of bounds
34
33
  return true;
35
34
  }
@@ -5,10 +5,10 @@
5
5
 
6
6
  namespace duckdb {
7
7
 
8
- BaseQueryResult::BaseQueryResult(QueryResultType type, StatementType statement_type, StatementProperties properties,
8
+ BaseQueryResult::BaseQueryResult(QueryResultType type, StatementType statement_type, StatementProperties properties_p,
9
9
  vector<LogicalType> types_p, vector<string> names_p)
10
- : type(type), statement_type(statement_type), properties(properties), types(move(types_p)), names(move(names_p)),
11
- success(true) {
10
+ : type(type), statement_type(statement_type), properties(move(properties_p)), types(move(types_p)),
11
+ names(move(names_p)), success(true) {
12
12
  D_ASSERT(types.size() == names.size());
13
13
  }
14
14
 
@@ -53,7 +53,7 @@ idx_t BaseQueryResult::ColumnCount() {
53
53
 
54
54
  QueryResult::QueryResult(QueryResultType type, StatementType statement_type, StatementProperties properties,
55
55
  vector<LogicalType> types_p, vector<string> names_p, ClientProperties client_properties_p)
56
- : BaseQueryResult(type, statement_type, properties, move(types_p), move(names_p)),
56
+ : BaseQueryResult(type, statement_type, move(properties), move(types_p), move(names_p)),
57
57
  client_properties(move(client_properties_p)) {
58
58
  }
59
59
 
@@ -11,6 +11,8 @@
11
11
  #include "duckdb/planner/expression_binder.hpp"
12
12
  #include "duckdb/storage/buffer_manager.hpp"
13
13
  #include "duckdb/storage/storage_manager.hpp"
14
+ #include "duckdb/main/database_manager.hpp"
15
+ #include "duckdb/main/attached_database.hpp"
14
16
  #include "duckdb/main/database.hpp"
15
17
 
16
18
  namespace duckdb {
@@ -532,7 +534,6 @@ Value ExternalThreadsSetting::GetSetting(ClientContext &context) {
532
534
  //===--------------------------------------------------------------------===//
533
535
  // File Search Path
534
536
  //===--------------------------------------------------------------------===//
535
-
536
537
  void FileSearchPathSetting::ResetLocal(ClientContext &context) {
537
538
  auto &client_data = ClientData::Get(context);
538
539
  client_data.file_search_path.clear();
@@ -647,6 +648,22 @@ Value LogQueryPathSetting::GetSetting(ClientContext &context) {
647
648
  return client_data.log_query_writer ? Value(client_data.log_query_writer->path) : Value();
648
649
  }
649
650
 
651
+ //===--------------------------------------------------------------------===//
652
+ // Immediate Transaction Mode
653
+ //===--------------------------------------------------------------------===//
654
+ void ImmediateTransactionModeSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) {
655
+ config.options.immediate_transaction_mode = BooleanValue::Get(input);
656
+ }
657
+
658
+ void ImmediateTransactionModeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
659
+ config.options.immediate_transaction_mode = DBConfig().options.immediate_transaction_mode;
660
+ }
661
+
662
+ Value ImmediateTransactionModeSetting::GetSetting(ClientContext &context) {
663
+ auto &config = DBConfig::GetConfig(context);
664
+ return Value::BOOLEAN(config.options.immediate_transaction_mode);
665
+ }
666
+
650
667
  //===--------------------------------------------------------------------===//
651
668
  // Maximum Expression Depth
652
669
  //===--------------------------------------------------------------------===//
@@ -845,7 +862,6 @@ Value ProgressBarTimeSetting::GetSetting(ClientContext &context) {
845
862
  //===--------------------------------------------------------------------===//
846
863
  // Schema
847
864
  //===--------------------------------------------------------------------===//
848
-
849
865
  void SchemaSetting::ResetLocal(ClientContext &context) {
850
866
  // FIXME: catalog_search_path is controlled by both SchemaSetting and SearchPathSetting
851
867
  auto &client_data = ClientData::Get(context);
@@ -855,7 +871,7 @@ void SchemaSetting::ResetLocal(ClientContext &context) {
855
871
  void SchemaSetting::SetLocal(ClientContext &context, const Value &input) {
856
872
  auto parameter = input.ToString();
857
873
  auto &client_data = ClientData::Get(context);
858
- client_data.catalog_search_path->Set(parameter, true);
874
+ client_data.catalog_search_path->Set(CatalogSearchEntry::Parse(parameter), true);
859
875
  }
860
876
 
861
877
  Value SchemaSetting::GetSetting(ClientContext &context) {
@@ -865,7 +881,6 @@ Value SchemaSetting::GetSetting(ClientContext &context) {
865
881
  //===--------------------------------------------------------------------===//
866
882
  // Search Path
867
883
  //===--------------------------------------------------------------------===//
868
-
869
884
  void SearchPathSetting::ResetLocal(ClientContext &context) {
870
885
  // FIXME: catalog_search_path is controlled by both SchemaSetting and SearchPathSetting
871
886
  auto &client_data = ClientData::Get(context);
@@ -875,12 +890,13 @@ void SearchPathSetting::ResetLocal(ClientContext &context) {
875
890
  void SearchPathSetting::SetLocal(ClientContext &context, const Value &input) {
876
891
  auto parameter = input.ToString();
877
892
  auto &client_data = ClientData::Get(context);
878
- client_data.catalog_search_path->Set(parameter, false);
893
+ client_data.catalog_search_path->Set(CatalogSearchEntry::ParseList(parameter), false);
879
894
  }
880
895
 
881
896
  Value SearchPathSetting::GetSetting(ClientContext &context) {
882
897
  auto &client_data = ClientData::Get(context);
883
- return Value(StringUtil::Join(client_data.catalog_search_path->GetSetPaths(), ","));
898
+ auto &set_paths = client_data.catalog_search_path->GetSetPaths();
899
+ return Value(CatalogSearchEntry::ListToString(set_paths));
884
900
  }
885
901
 
886
902
  //===--------------------------------------------------------------------===//
@@ -8,7 +8,7 @@ namespace duckdb {
8
8
  StreamQueryResult::StreamQueryResult(StatementType statement_type, StatementProperties properties,
9
9
  shared_ptr<ClientContext> context_p, vector<LogicalType> types,
10
10
  vector<string> names)
11
- : QueryResult(QueryResultType::STREAM_RESULT, statement_type, properties, move(types), move(names),
11
+ : QueryResult(QueryResultType::STREAM_RESULT, statement_type, move(properties), move(types), move(names),
12
12
  context_p->GetClientProperties()),
13
13
  context(move(context_p)) {
14
14
  D_ASSERT(context);
@@ -29,13 +29,19 @@ bool ColumnRefExpression::IsQualified() const {
29
29
  }
30
30
 
31
31
  const string &ColumnRefExpression::GetColumnName() const {
32
- D_ASSERT(column_names.size() <= 3);
32
+ D_ASSERT(column_names.size() <= 4);
33
33
  return column_names.back();
34
34
  }
35
35
 
36
36
  const string &ColumnRefExpression::GetTableName() const {
37
- D_ASSERT(column_names.size() >= 2 && column_names.size() <= 3);
38
- return column_names.size() == 3 ? column_names[1] : column_names[0];
37
+ D_ASSERT(column_names.size() >= 2 && column_names.size() <= 4);
38
+ if (column_names.size() == 4) {
39
+ return column_names[2];
40
+ }
41
+ if (column_names.size() == 3) {
42
+ return column_names[1];
43
+ }
44
+ return column_names[0];
39
45
  }
40
46
 
41
47
  string ColumnRefExpression::GetName() const {
@@ -8,13 +8,14 @@
8
8
 
9
9
  namespace duckdb {
10
10
 
11
- FunctionExpression::FunctionExpression(string schema, const string &function_name,
11
+ FunctionExpression::FunctionExpression(string catalog, string schema, const string &function_name,
12
12
  vector<unique_ptr<ParsedExpression>> children_p,
13
13
  unique_ptr<ParsedExpression> filter, unique_ptr<OrderModifier> order_bys_p,
14
14
  bool distinct, bool is_operator, bool export_state_p)
15
- : ParsedExpression(ExpressionType::FUNCTION, ExpressionClass::FUNCTION), schema(std::move(schema)),
16
- function_name(StringUtil::Lower(function_name)), is_operator(is_operator), children(move(children_p)),
17
- distinct(distinct), filter(move(filter)), order_bys(move(order_bys_p)), export_state(export_state_p) {
15
+ : ParsedExpression(ExpressionType::FUNCTION, ExpressionClass::FUNCTION), catalog(move(catalog)),
16
+ schema(std::move(schema)), function_name(StringUtil::Lower(function_name)), is_operator(is_operator),
17
+ children(move(children_p)), distinct(distinct), filter(move(filter)), order_bys(move(order_bys_p)),
18
+ export_state(export_state_p) {
18
19
  D_ASSERT(!function_name.empty());
19
20
  if (!order_bys) {
20
21
  order_bys = make_unique<OrderModifier>();
@@ -24,8 +25,8 @@ FunctionExpression::FunctionExpression(string schema, const string &function_nam
24
25
  FunctionExpression::FunctionExpression(const string &function_name, vector<unique_ptr<ParsedExpression>> children_p,
25
26
  unique_ptr<ParsedExpression> filter, unique_ptr<OrderModifier> order_bys,
26
27
  bool distinct, bool is_operator, bool export_state_p)
27
- : FunctionExpression(INVALID_SCHEMA, function_name, move(children_p), move(filter), move(order_bys), distinct,
28
- is_operator, export_state_p) {
28
+ : FunctionExpression(INVALID_CATALOG, INVALID_SCHEMA, function_name, move(children_p), move(filter),
29
+ move(order_bys), distinct, is_operator, export_state_p) {
29
30
  }
30
31
 
31
32
  string FunctionExpression::ToString() const {
@@ -34,7 +35,8 @@ string FunctionExpression::ToString() const {
34
35
  }
35
36
 
36
37
  bool FunctionExpression::Equals(const FunctionExpression *a, const FunctionExpression *b) {
37
- if (a->schema != b->schema || a->function_name != b->function_name || b->distinct != a->distinct) {
38
+ if (a->catalog != b->catalog || a->schema != b->schema || a->function_name != b->function_name ||
39
+ b->distinct != a->distinct) {
38
40
  return false;
39
41
  }
40
42
  if (b->children.size() != a->children.size()) {
@@ -80,9 +82,8 @@ unique_ptr<ParsedExpression> FunctionExpression::Copy() const {
80
82
  order_copy.reset(static_cast<OrderModifier *>(order_bys->Copy().release()));
81
83
  }
82
84
 
83
- auto copy = make_unique<FunctionExpression>(function_name, move(copy_children), move(filter_copy), move(order_copy),
84
- distinct, is_operator, export_state);
85
- copy->schema = schema;
85
+ auto copy = make_unique<FunctionExpression>(catalog, schema, function_name, move(copy_children), move(filter_copy),
86
+ move(order_copy), distinct, is_operator, export_state);
86
87
  copy->CopyProperties(*this);
87
88
  return move(copy);
88
89
  }
@@ -96,6 +97,7 @@ void FunctionExpression::Serialize(FieldWriter &writer) const {
96
97
  writer.WriteField<bool>(distinct);
97
98
  writer.WriteField<bool>(is_operator);
98
99
  writer.WriteField<bool>(export_state);
100
+ writer.WriteString(catalog);
99
101
  }
100
102
 
101
103
  unique_ptr<ParsedExpression> FunctionExpression::Deserialize(ExpressionType type, FieldReader &reader) {
@@ -107,11 +109,11 @@ unique_ptr<ParsedExpression> FunctionExpression::Deserialize(ExpressionType type
107
109
  auto distinct = reader.ReadRequired<bool>();
108
110
  auto is_operator = reader.ReadRequired<bool>();
109
111
  auto export_state = reader.ReadField<bool>(false);
112
+ auto catalog = reader.ReadField<string>(INVALID_CATALOG);
110
113
 
111
114
  unique_ptr<FunctionExpression> function;
112
- function = make_unique<FunctionExpression>(function_name, move(children), move(filter), move(order_bys), distinct,
113
- is_operator, export_state);
114
- function->schema = schema;
115
+ function = make_unique<FunctionExpression>(catalog, schema, function_name, move(children), move(filter),
116
+ move(order_bys), distinct, is_operator, export_state);
115
117
  return move(function);
116
118
  }
117
119
 
@@ -6,8 +6,8 @@
6
6
 
7
7
  namespace duckdb {
8
8
 
9
- WindowExpression::WindowExpression(ExpressionType type, string schema, const string &function_name)
10
- : ParsedExpression(type, ExpressionClass::WINDOW), schema(move(schema)),
9
+ WindowExpression::WindowExpression(ExpressionType type, string catalog_name, string schema, const string &function_name)
10
+ : ParsedExpression(type, ExpressionClass::WINDOW), catalog(move(catalog_name)), schema(move(schema)),
11
11
  function_name(StringUtil::Lower(function_name)), ignore_nulls(false) {
12
12
  switch (type) {
13
13
  case ExpressionType::WINDOW_AGGREGATE:
@@ -86,7 +86,7 @@ bool WindowExpression::Equals(const WindowExpression *a, const WindowExpression
86
86
  }
87
87
 
88
88
  unique_ptr<ParsedExpression> WindowExpression::Copy() const {
89
- auto new_window = make_unique<WindowExpression>(type, schema, function_name);
89
+ auto new_window = make_unique<WindowExpression>(type, catalog, schema, function_name);
90
90
  new_window->CopyProperties(*this);
91
91
 
92
92
  for (auto &child : children) {
@@ -136,12 +136,13 @@ void WindowExpression::Serialize(FieldWriter &writer) const {
136
136
  writer.WriteOptional(default_expr);
137
137
  writer.WriteField<bool>(ignore_nulls);
138
138
  writer.WriteOptional(filter_expr);
139
+ writer.WriteString(catalog);
139
140
  }
140
141
 
141
142
  unique_ptr<ParsedExpression> WindowExpression::Deserialize(ExpressionType type, FieldReader &reader) {
142
143
  auto function_name = reader.ReadRequired<string>();
143
144
  auto schema = reader.ReadRequired<string>();
144
- auto expr = make_unique<WindowExpression>(type, schema, function_name);
145
+ auto expr = make_unique<WindowExpression>(type, INVALID_CATALOG, move(schema), function_name);
145
146
  expr->children = reader.ReadRequiredSerializableList<ParsedExpression>();
146
147
  expr->partitions = reader.ReadRequiredSerializableList<ParsedExpression>();
147
148
 
@@ -159,6 +160,7 @@ unique_ptr<ParsedExpression> WindowExpression::Deserialize(ExpressionType type,
159
160
  expr->default_expr = reader.ReadOptional<ParsedExpression>(nullptr);
160
161
  expr->ignore_nulls = reader.ReadRequired<bool>();
161
162
  expr->filter_expr = reader.ReadOptional<ParsedExpression>(nullptr);
163
+ expr->catalog = reader.ReadField<string>(INVALID_CATALOG);
162
164
  return move(expr);
163
165
  }
164
166
 
@@ -8,8 +8,9 @@ namespace duckdb {
8
8
  //===--------------------------------------------------------------------===//
9
9
  // AlterFunctionInfo
10
10
  //===--------------------------------------------------------------------===//
11
- AlterFunctionInfo::AlterFunctionInfo(AlterFunctionType type, string schema_p, string table_p, bool if_exists)
12
- : AlterInfo(AlterType::ALTER_FUNCTION, move(move(schema_p)), move(table_p), if_exists), alter_function_type(type) {
11
+ AlterFunctionInfo::AlterFunctionInfo(AlterFunctionType type, AlterEntryData data)
12
+ : AlterInfo(AlterType::ALTER_FUNCTION, move(data.catalog), move(data.schema), move(data.name), data.if_exists),
13
+ alter_function_type(type) {
13
14
  }
14
15
  AlterFunctionInfo::~AlterFunctionInfo() {
15
16
  }
@@ -20,6 +21,7 @@ CatalogType AlterFunctionInfo::GetCatalogType() const {
20
21
 
21
22
  void AlterFunctionInfo::Serialize(FieldWriter &writer) const {
22
23
  writer.WriteField<AlterFunctionType>(alter_function_type);
24
+ writer.WriteString(catalog);
23
25
  writer.WriteString(schema);
24
26
  writer.WriteString(name);
25
27
  writer.WriteField(if_exists);
@@ -37,17 +39,15 @@ unique_ptr<AlterInfo> AlterFunctionInfo::Deserialize(FieldReader &reader) {
37
39
  //===--------------------------------------------------------------------===//
38
40
  // AddFunctionOverloadInfo
39
41
  //===--------------------------------------------------------------------===//
40
- AddFunctionOverloadInfo::AddFunctionOverloadInfo(string schema_p, string name_p, bool if_exists_p,
41
- ScalarFunctionSet new_overloads_p)
42
- : AlterFunctionInfo(AlterFunctionType::ADD_FUNCTION_OVERLOADS, move(schema_p), move(name_p), if_exists_p),
43
- new_overloads(move(new_overloads_p)) {
42
+ AddFunctionOverloadInfo::AddFunctionOverloadInfo(AlterEntryData data, ScalarFunctionSet new_overloads_p)
43
+ : AlterFunctionInfo(AlterFunctionType::ADD_FUNCTION_OVERLOADS, move(data)), new_overloads(move(new_overloads_p)) {
44
44
  this->allow_internal = true;
45
45
  }
46
46
  AddFunctionOverloadInfo::~AddFunctionOverloadInfo() {
47
47
  }
48
48
 
49
49
  unique_ptr<AlterInfo> AddFunctionOverloadInfo::Copy() const {
50
- return make_unique_base<AlterInfo, AddFunctionOverloadInfo>(schema, name, if_exists, new_overloads);
50
+ return make_unique_base<AlterInfo, AddFunctionOverloadInfo>(GetAlterEntryData(), new_overloads);
51
51
  }
52
52
 
53
53
  } // namespace duckdb
@@ -6,8 +6,9 @@
6
6
 
7
7
  namespace duckdb {
8
8
 
9
- AlterInfo::AlterInfo(AlterType type, string schema_p, string name_p, bool if_exists)
10
- : type(type), if_exists(if_exists), schema(move(schema_p)), name(move(name_p)), allow_internal(false) {
9
+ AlterInfo::AlterInfo(AlterType type, string catalog_p, string schema_p, string name_p, bool if_exists)
10
+ : type(type), if_exists(if_exists), catalog(move(catalog_p)), schema(move(schema_p)), name(move(name_p)),
11
+ allow_internal(false) {
11
12
  }
12
13
 
13
14
  AlterInfo::~AlterInfo() {
@@ -43,4 +44,13 @@ unique_ptr<AlterInfo> AlterInfo::Deserialize(Deserializer &source) {
43
44
  return result;
44
45
  }
45
46
 
47
+ AlterEntryData AlterInfo::GetAlterEntryData() const {
48
+ AlterEntryData data;
49
+ data.catalog = catalog;
50
+ data.schema = schema;
51
+ data.name = name;
52
+ data.if_exists = if_exists;
53
+ return data;
54
+ }
55
+
46
56
  } // namespace duckdb