duckdb 0.10.2-dev0.0 → 0.10.2-dev3.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 (699) hide show
  1. package/binding.gyp +22 -18
  2. package/binding.gyp.in +3 -0
  3. package/package.json +1 -1
  4. package/src/duckdb/extension/icu/icu-timezone.cpp +3 -1
  5. package/src/duckdb/extension/icu/icu_extension.cpp +6 -2
  6. package/src/duckdb/extension/json/buffered_json_reader.cpp +10 -3
  7. package/src/duckdb/extension/json/include/buffered_json_reader.hpp +2 -0
  8. package/src/duckdb/extension/json/include/json_scan.hpp +13 -7
  9. package/src/duckdb/extension/json/include/json_serializer.hpp +5 -4
  10. package/src/duckdb/extension/json/include/json_structure.hpp +3 -3
  11. package/src/duckdb/extension/json/json_functions/json_serialize_plan.cpp +15 -5
  12. package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +15 -6
  13. package/src/duckdb/extension/json/json_functions/json_structure.cpp +21 -20
  14. package/src/duckdb/extension/json/json_functions/read_json.cpp +37 -3
  15. package/src/duckdb/extension/json/json_functions.cpp +7 -2
  16. package/src/duckdb/extension/json/json_scan.cpp +57 -33
  17. package/src/duckdb/extension/parquet/column_reader.cpp +12 -3
  18. package/src/duckdb/extension/parquet/column_writer.cpp +44 -7
  19. package/src/duckdb/extension/parquet/include/parquet_writer.hpp +5 -1
  20. package/src/duckdb/extension/parquet/parquet_extension.cpp +30 -3
  21. package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
  22. package/src/duckdb/extension/parquet/parquet_writer.cpp +4 -2
  23. package/src/duckdb/extension/parquet/zstd_file_system.cpp +1 -1
  24. package/src/duckdb/src/catalog/catalog.cpp +5 -1
  25. package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +21 -5
  26. package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +8 -9
  27. package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +3 -7
  28. package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +1 -1
  29. package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +6 -7
  30. package/src/duckdb/src/catalog/catalog_entry.cpp +8 -0
  31. package/src/duckdb/src/catalog/catalog_search_path.cpp +5 -0
  32. package/src/duckdb/src/catalog/catalog_set.cpp +2 -2
  33. package/src/duckdb/src/catalog/default/default_functions.cpp +6 -6
  34. package/src/duckdb/src/catalog/default/default_schemas.cpp +1 -1
  35. package/src/duckdb/src/catalog/default/default_views.cpp +7 -7
  36. package/src/duckdb/src/catalog/dependency_catalog_set.cpp +2 -1
  37. package/src/duckdb/src/catalog/dependency_list.cpp +92 -8
  38. package/src/duckdb/src/catalog/dependency_manager.cpp +53 -68
  39. package/src/duckdb/src/catalog/duck_catalog.cpp +1 -1
  40. package/src/duckdb/src/common/adbc/adbc.cpp +287 -45
  41. package/src/duckdb/src/common/arrow/appender/union_data.cpp +2 -2
  42. package/src/duckdb/src/common/box_renderer.cpp +12 -12
  43. package/src/duckdb/src/common/crypto/md5.cpp +2 -1
  44. package/src/duckdb/src/common/enum_util.cpp +307 -1
  45. package/src/duckdb/src/common/enums/expression_type.cpp +4 -0
  46. package/src/duckdb/src/common/enums/optimizer_type.cpp +1 -1
  47. package/src/duckdb/src/common/file_system.cpp +60 -13
  48. package/src/duckdb/src/common/filename_pattern.cpp +13 -13
  49. package/src/duckdb/src/common/gzip_file_system.cpp +1 -1
  50. package/src/duckdb/src/common/http_state.cpp +1 -1
  51. package/src/duckdb/src/common/local_file_system.cpp +72 -71
  52. package/src/duckdb/src/common/multi_file_reader.cpp +48 -28
  53. package/src/duckdb/src/common/row_operations/row_matcher.cpp +2 -2
  54. package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +13 -1
  55. package/src/duckdb/src/common/serializer/buffered_file_writer.cpp +32 -13
  56. package/src/duckdb/src/common/string_util.cpp +2 -3
  57. package/src/duckdb/src/common/tree_renderer.cpp +32 -67
  58. package/src/duckdb/src/common/types/bit.cpp +6 -6
  59. package/src/duckdb/src/common/types/data_chunk.cpp +2 -2
  60. package/src/duckdb/src/common/types/hash.cpp +6 -6
  61. package/src/duckdb/src/common/types/hyperloglog.cpp +2 -0
  62. package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +13 -0
  63. package/src/duckdb/src/common/types/row/tuple_data_layout.cpp +5 -7
  64. package/src/duckdb/src/common/types/uuid.cpp +1 -1
  65. package/src/duckdb/src/common/types/vector.cpp +22 -14
  66. package/src/duckdb/src/common/types.cpp +8 -1
  67. package/src/duckdb/src/common/vector_operations/comparison_operators.cpp +20 -18
  68. package/src/duckdb/src/common/vector_operations/generators.cpp +1 -1
  69. package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +267 -110
  70. package/src/duckdb/src/common/vector_operations/vector_hash.cpp +52 -23
  71. package/src/duckdb/src/common/virtual_file_system.cpp +33 -20
  72. package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +2 -2
  73. package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +3 -3
  74. package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +31 -16
  75. package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +3 -0
  76. package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +2 -0
  77. package/src/duckdb/src/core_functions/core_functions.cpp +1 -1
  78. package/src/duckdb/src/core_functions/function_list.cpp +2 -2
  79. package/src/duckdb/src/core_functions/scalar/date/time_bucket.cpp +1 -1
  80. package/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp +46 -17
  81. package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +1 -1
  82. package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +82 -45
  83. package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +2 -2
  84. package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +3 -0
  85. package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +3 -2
  86. package/src/duckdb/src/core_functions/scalar/string/hex.cpp +2 -4
  87. package/src/duckdb/src/core_functions/scalar/string/repeat.cpp +12 -21
  88. package/src/duckdb/src/execution/column_binding_resolver.cpp +2 -10
  89. package/src/duckdb/src/execution/expression_executor/execute_comparison.cpp +133 -66
  90. package/src/duckdb/src/execution/expression_executor/execute_function.cpp +0 -2
  91. package/src/duckdb/src/execution/expression_executor.cpp +0 -4
  92. package/src/duckdb/src/execution/expression_executor_state.cpp +1 -1
  93. package/src/duckdb/src/execution/index/art/art.cpp +2 -2
  94. package/src/duckdb/src/execution/index/unknown_index.cpp +13 -13
  95. package/src/duckdb/src/execution/join_hashtable.cpp +1 -1
  96. package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +0 -1
  97. package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer.cpp +10 -7
  98. package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp +32 -1
  99. package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp +16 -2
  100. package/src/duckdb/src/execution/operator/csv_scanner/scanner/scanner_boundary.cpp +7 -7
  101. package/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +354 -159
  102. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +11 -2
  103. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +22 -7
  104. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +1 -1
  105. package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp +10 -10
  106. package/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp +9 -18
  107. package/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp +180 -47
  108. package/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp +100 -58
  109. package/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +88 -21
  110. package/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp +12 -13
  111. package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +2 -0
  112. package/src/duckdb/src/execution/operator/persistent/csv_rejects_table.cpp +118 -23
  113. package/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp +2 -2
  114. package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +14 -5
  115. package/src/duckdb/src/execution/operator/persistent/physical_copy_database.cpp +1 -1
  116. package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +5 -5
  117. package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +1 -1
  118. package/src/duckdb/src/execution/physical_plan/plan_simple.cpp +0 -9
  119. package/src/duckdb/src/execution/physical_plan/plan_vacuum.cpp +18 -0
  120. package/src/duckdb/src/execution/physical_plan_generator.cpp +5 -3
  121. package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +81 -106
  122. package/src/duckdb/src/execution/reservoir_sample.cpp +1 -1
  123. package/src/duckdb/src/execution/window_executor.cpp +48 -28
  124. package/src/duckdb/src/execution/window_segment_tree.cpp +20 -23
  125. package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +1 -1
  126. package/src/duckdb/src/function/cast/enum_casts.cpp +20 -55
  127. package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +10 -9
  128. package/src/duckdb/src/function/cast_rules.cpp +9 -1
  129. package/src/duckdb/src/function/compression_config.cpp +1 -1
  130. package/src/duckdb/src/function/function_binder.cpp +45 -44
  131. package/src/duckdb/src/function/function_set.cpp +9 -9
  132. package/src/duckdb/src/function/pragma/pragma_queries.cpp +1 -2
  133. package/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp +21 -5
  134. package/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +2 -2
  135. package/src/duckdb/src/function/scalar/list/list_select.cpp +5 -2
  136. package/src/duckdb/src/function/scalar/list/list_zip.cpp +5 -4
  137. package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +60 -32
  138. package/src/duckdb/src/function/scalar/sequence/nextval.cpp +1 -1
  139. package/src/duckdb/src/function/scalar/strftime_format.cpp +31 -25
  140. package/src/duckdb/src/function/scalar/string/caseconvert.cpp +6 -6
  141. package/src/duckdb/src/function/scalar/string/length.cpp +23 -2
  142. package/src/duckdb/src/function/scalar/string/like.cpp +1 -1
  143. package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +1 -1
  144. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +3 -3
  145. package/src/duckdb/src/function/table/arrow/arrow_array_scan_state.cpp +1 -1
  146. package/src/duckdb/src/function/table/arrow.cpp +7 -1
  147. package/src/duckdb/src/function/table/copy_csv.cpp +17 -13
  148. package/src/duckdb/src/function/table/read_csv.cpp +52 -39
  149. package/src/duckdb/src/function/table/sniff_csv.cpp +7 -13
  150. package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +1 -1
  151. package/src/duckdb/src/function/table/system/duckdb_databases.cpp +7 -1
  152. package/src/duckdb/src/function/table/system/duckdb_extensions.cpp +12 -2
  153. package/src/duckdb/src/function/table/system/duckdb_sequences.cpp +1 -2
  154. package/src/duckdb/src/function/table/system/duckdb_tables.cpp +2 -2
  155. package/src/duckdb/src/function/table/system/pragma_metadata_info.cpp +9 -2
  156. package/src/duckdb/src/function/table/system/pragma_table_info.cpp +10 -6
  157. package/src/duckdb/src/function/table/table_scan.cpp +1 -4
  158. package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
  159. package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +6 -2
  160. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp +1 -1
  161. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp +1 -1
  162. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +1 -1
  163. package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +6 -1
  164. package/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +3 -3
  165. package/src/duckdb/src/include/duckdb/catalog/default/default_functions.hpp +3 -3
  166. package/src/duckdb/src/include/duckdb/catalog/dependency.hpp +26 -4
  167. package/src/duckdb/src/include/duckdb/catalog/dependency_list.hpp +39 -6
  168. package/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp +19 -14
  169. package/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp +1 -1
  170. package/src/duckdb/src/include/duckdb/catalog/standard_entry.hpp +4 -0
  171. package/src/duckdb/src/include/duckdb/common/allocator.hpp +3 -3
  172. package/src/duckdb/src/include/duckdb/common/arrow/arrow_wrapper.hpp +1 -1
  173. package/src/duckdb/src/include/duckdb/common/bit_utils.hpp +1 -1
  174. package/src/duckdb/src/include/duckdb/common/box_renderer.hpp +16 -16
  175. package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +0 -1
  176. package/src/duckdb/src/include/duckdb/common/enum_util.hpp +32 -0
  177. package/src/duckdb/src/include/duckdb/common/enums/expression_type.hpp +4 -2
  178. package/src/duckdb/src/include/duckdb/common/exception/binder_exception.hpp +14 -10
  179. package/src/duckdb/src/include/duckdb/common/exception/catalog_exception.hpp +4 -4
  180. package/src/duckdb/src/include/duckdb/common/exception/conversion_exception.hpp +6 -6
  181. package/src/duckdb/src/include/duckdb/common/exception/http_exception.hpp +3 -3
  182. package/src/duckdb/src/include/duckdb/common/exception/parser_exception.hpp +4 -4
  183. package/src/duckdb/src/include/duckdb/common/exception/transaction_exception.hpp +2 -2
  184. package/src/duckdb/src/include/duckdb/common/exception.hpp +57 -58
  185. package/src/duckdb/src/include/duckdb/common/exception_format_value.hpp +2 -2
  186. package/src/duckdb/src/include/duckdb/common/extra_type_info.hpp +2 -2
  187. package/src/duckdb/src/include/duckdb/common/file_open_flags.hpp +134 -0
  188. package/src/duckdb/src/include/duckdb/common/file_opener.hpp +9 -6
  189. package/src/duckdb/src/include/duckdb/common/file_system.hpp +35 -36
  190. package/src/duckdb/src/include/duckdb/common/filename_pattern.hpp +4 -6
  191. package/src/duckdb/src/include/duckdb/common/fixed_size_map.hpp +13 -13
  192. package/src/duckdb/src/include/duckdb/common/helper.hpp +42 -47
  193. package/src/duckdb/src/include/duckdb/common/http_state.hpp +1 -1
  194. package/src/duckdb/src/include/duckdb/common/hugeint.hpp +2 -2
  195. package/src/duckdb/src/include/duckdb/common/index_vector.hpp +10 -10
  196. package/src/duckdb/src/include/duckdb/common/local_file_system.hpp +13 -10
  197. package/src/duckdb/src/include/duckdb/common/memory_safety.hpp +3 -3
  198. package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +1 -1
  199. package/src/duckdb/src/include/duckdb/common/opener_file_system.hpp +50 -24
  200. package/src/duckdb/src/include/duckdb/common/operator/abs.hpp +12 -4
  201. package/src/duckdb/src/include/duckdb/common/optional_ptr.hpp +5 -5
  202. package/src/duckdb/src/include/duckdb/common/pipe_file_system.hpp +1 -1
  203. package/src/duckdb/src/include/duckdb/common/platform.h +1 -1
  204. package/src/duckdb/src/include/duckdb/common/printer.hpp +5 -5
  205. package/src/duckdb/src/include/duckdb/common/profiler.hpp +2 -2
  206. package/src/duckdb/src/include/duckdb/common/progress_bar/display/terminal_progress_bar_display.hpp +5 -5
  207. package/src/duckdb/src/include/duckdb/common/random_engine.hpp +1 -1
  208. package/src/duckdb/src/include/duckdb/common/re2_regex.hpp +7 -7
  209. package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_reader.hpp +3 -0
  210. package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp +2 -2
  211. package/src/duckdb/src/include/duckdb/common/serializer/deserialization_data.hpp +17 -6
  212. package/src/duckdb/src/include/duckdb/common/serializer/deserializer.hpp +12 -0
  213. package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +14 -0
  214. package/src/duckdb/src/include/duckdb/common/serializer/serializer.hpp +16 -0
  215. package/src/duckdb/src/include/duckdb/common/sort/duckdb_pdqsort.hpp +3 -0
  216. package/src/duckdb/src/include/duckdb/common/sort/partition_state.hpp +2 -0
  217. package/src/duckdb/src/include/duckdb/common/string_util.hpp +4 -4
  218. package/src/duckdb/src/include/duckdb/common/tree_renderer.hpp +24 -25
  219. package/src/duckdb/src/include/duckdb/common/typedefs.hpp +5 -5
  220. package/src/duckdb/src/include/duckdb/common/types/cast_helpers.hpp +1 -2
  221. package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp +10 -10
  222. package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection_iterators.hpp +5 -5
  223. package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +1 -1
  224. package/src/duckdb/src/include/duckdb/common/types/constraint_conflict_info.hpp +1 -2
  225. package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +2 -2
  226. package/src/duckdb/src/include/duckdb/common/types/date.hpp +1 -1
  227. package/src/duckdb/src/include/duckdb/common/types/hash.hpp +5 -5
  228. package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +1 -1
  229. package/src/duckdb/src/include/duckdb/common/types/interval.hpp +4 -4
  230. package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +1 -1
  231. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_layout.hpp +10 -3
  232. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_segment.hpp +1 -1
  233. package/src/duckdb/src/include/duckdb/common/types/selection_vector.hpp +12 -12
  234. package/src/duckdb/src/include/duckdb/common/types/string_heap.hpp +1 -1
  235. package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +21 -20
  236. package/src/duckdb/src/include/duckdb/common/types/time.hpp +2 -2
  237. package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +3 -3
  238. package/src/duckdb/src/include/duckdb/common/types/uuid.hpp +2 -2
  239. package/src/duckdb/src/include/duckdb/common/types/value.hpp +2 -2
  240. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +15 -7
  241. package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +1 -1
  242. package/src/duckdb/src/include/duckdb/common/types.hpp +14 -10
  243. package/src/duckdb/src/include/duckdb/common/uhugeint.hpp +2 -2
  244. package/src/duckdb/src/include/duckdb/common/union_by_name.hpp +1 -1
  245. package/src/duckdb/src/include/duckdb/common/unique_ptr.hpp +15 -14
  246. package/src/duckdb/src/include/duckdb/common/vector.hpp +21 -21
  247. package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +2 -0
  248. package/src/duckdb/src/include/duckdb/common/vector_operations/general_cast.hpp +2 -1
  249. package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +2 -3
  250. package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -2
  251. package/src/duckdb/src/include/duckdb/common/vector_operations/vector_operations.hpp +50 -32
  252. package/src/duckdb/src/include/duckdb/common/virtual_file_system.hpp +10 -11
  253. package/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp +1 -1
  254. package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +13 -1
  255. package/src/duckdb/src/include/duckdb/core_functions/function_list.hpp +1 -1
  256. package/src/duckdb/src/include/duckdb/core_functions/lambda_functions.hpp +2 -1
  257. package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +1 -1
  258. package/src/duckdb/src/include/duckdb/execution/column_binding_resolver.hpp +1 -1
  259. package/src/duckdb/src/include/duckdb/execution/expression_executor.hpp +1 -1
  260. package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +2 -5
  261. package/src/duckdb/src/include/duckdb/execution/merge_sort_tree.hpp +3 -3
  262. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/aggregate_object.hpp +2 -2
  263. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/distinct_aggregate_data.hpp +1 -1
  264. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp +1 -1
  265. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/column_count_scanner.hpp +0 -3
  266. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer.hpp +9 -6
  267. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp +3 -0
  268. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_error.hpp +40 -22
  269. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_handle.hpp +5 -0
  270. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_scanner.hpp +1 -0
  271. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_option.hpp +6 -4
  272. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp +24 -10
  273. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine.hpp +4 -0
  274. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/global_csv_state.hpp +3 -1
  275. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/skip_scanner.hpp +0 -3
  276. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp +58 -17
  277. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp +1 -1
  278. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_explain_analyze.hpp +1 -1
  279. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_prepare.hpp +3 -3
  280. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_set.hpp +1 -1
  281. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_vacuum.hpp +4 -1
  282. package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_rejects_table.hpp +16 -5
  283. package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +6 -6
  284. package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +2 -1
  285. package/src/duckdb/src/include/duckdb/execution/window_executor.hpp +1 -1
  286. package/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp +1 -1
  287. package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +1 -1
  288. package/src/duckdb/src/include/duckdb/function/cast/cast_function_set.hpp +5 -5
  289. package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +4 -4
  290. package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +6 -6
  291. package/src/duckdb/src/include/duckdb/function/compression_function.hpp +4 -4
  292. package/src/duckdb/src/include/duckdb/function/copy_function.hpp +10 -13
  293. package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
  294. package/src/duckdb/src/include/duckdb/function/function_binder.hpp +24 -23
  295. package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +1 -1
  296. package/src/duckdb/src/include/duckdb/function/function_set.hpp +1 -1
  297. package/src/duckdb/src/include/duckdb/function/pragma_function.hpp +1 -1
  298. package/src/duckdb/src/include/duckdb/function/scalar/regexp.hpp +3 -3
  299. package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +7 -7
  300. package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +3 -3
  301. package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +6 -6
  302. package/src/duckdb/src/include/duckdb/function/table/arrow/arrow_duck_schema.hpp +4 -4
  303. package/src/duckdb/src/include/duckdb/function/table/arrow.hpp +2 -2
  304. package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +1 -3
  305. package/src/duckdb/src/include/duckdb/function/table/table_scan.hpp +1 -1
  306. package/src/duckdb/src/include/duckdb/function/table_function.hpp +12 -11
  307. package/src/duckdb/src/include/duckdb/function/udf_function.hpp +66 -60
  308. package/src/duckdb/src/include/duckdb/main/appender.hpp +6 -6
  309. package/src/duckdb/src/include/duckdb/main/attached_database.hpp +3 -1
  310. package/src/duckdb/src/include/duckdb/main/buffered_data/buffered_data.hpp +2 -2
  311. package/src/duckdb/src/include/duckdb/main/buffered_data/simple_buffered_data.hpp +1 -1
  312. package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +2 -2
  313. package/src/duckdb/src/include/duckdb/main/chunk_scan_state/query_result.hpp +2 -2
  314. package/src/duckdb/src/include/duckdb/main/client_context.hpp +1 -1
  315. package/src/duckdb/src/include/duckdb/main/client_context_file_opener.hpp +3 -2
  316. package/src/duckdb/src/include/duckdb/main/client_data.hpp +1 -0
  317. package/src/duckdb/src/include/duckdb/main/client_properties.hpp +2 -1
  318. package/src/duckdb/src/include/duckdb/main/config.hpp +14 -5
  319. package/src/duckdb/src/include/duckdb/main/connection.hpp +27 -26
  320. package/src/duckdb/src/include/duckdb/main/database.hpp +19 -3
  321. package/src/duckdb/src/include/duckdb/main/database_file_opener.hpp +58 -0
  322. package/src/duckdb/src/include/duckdb/main/database_path_and_type.hpp +2 -2
  323. package/src/duckdb/src/include/duckdb/main/error_manager.hpp +6 -6
  324. package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +8 -0
  325. package/src/duckdb/src/include/duckdb/main/extension_helper.hpp +1 -0
  326. package/src/duckdb/src/include/duckdb/main/external_dependencies.hpp +2 -1
  327. package/src/duckdb/src/include/duckdb/main/prepared_statement.hpp +8 -8
  328. package/src/duckdb/src/include/duckdb/main/query_profiler.hpp +2 -59
  329. package/src/duckdb/src/include/duckdb/main/query_result.hpp +3 -3
  330. package/src/duckdb/src/include/duckdb/main/relation/query_relation.hpp +1 -1
  331. package/src/duckdb/src/include/duckdb/main/relation.hpp +1 -1
  332. package/src/duckdb/src/include/duckdb/main/secret/secret.hpp +11 -7
  333. package/src/duckdb/src/include/duckdb/main/secret/secret_manager.hpp +2 -2
  334. package/src/duckdb/src/include/duckdb/main/secret/secret_storage.hpp +4 -4
  335. package/src/duckdb/src/include/duckdb/main/settings.hpp +78 -70
  336. package/src/duckdb/src/include/duckdb/optimizer/column_lifetime_analyzer.hpp +45 -0
  337. package/src/duckdb/src/include/duckdb/optimizer/compressed_materialization.hpp +11 -13
  338. package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
  339. package/src/duckdb/src/include/duckdb/optimizer/join_order/cost_model.hpp +1 -1
  340. package/src/duckdb/src/include/duckdb/optimizer/join_order/join_node.hpp +1 -1
  341. package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph.hpp +1 -1
  342. package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph_manager.hpp +1 -1
  343. package/src/duckdb/src/include/duckdb/optimizer/join_order/relation_manager.hpp +1 -1
  344. package/src/duckdb/src/include/duckdb/optimizer/matcher/expression_matcher.hpp +7 -7
  345. package/src/duckdb/src/include/duckdb/optimizer/matcher/function_matcher.hpp +7 -7
  346. package/src/duckdb/src/include/duckdb/optimizer/matcher/type_matcher.hpp +1 -1
  347. package/src/duckdb/src/include/duckdb/optimizer/optimizer.hpp +3 -0
  348. package/src/duckdb/src/include/duckdb/optimizer/statistics_propagator.hpp +32 -30
  349. package/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp +1 -1
  350. package/src/duckdb/src/include/duckdb/parallel/event.hpp +1 -1
  351. package/src/duckdb/src/include/duckdb/parallel/executor_task.hpp +1 -1
  352. package/src/duckdb/src/include/duckdb/parallel/interrupt.hpp +2 -2
  353. package/src/duckdb/src/include/duckdb/parallel/pipeline_event.hpp +1 -1
  354. package/src/duckdb/src/include/duckdb/parser/column_list.hpp +4 -4
  355. package/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp +49 -8
  356. package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -1
  357. package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
  358. package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
  359. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp +1 -1
  360. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_function_info.hpp +1 -1
  361. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +1 -1
  362. package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_database_info.hpp +40 -0
  363. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +2 -1
  364. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +1 -0
  365. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +2 -1
  366. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_macro_info.hpp +1 -1
  367. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_pragma_function_info.hpp +1 -1
  368. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_secret_info.hpp +2 -2
  369. package/src/duckdb/src/include/duckdb/parser/parsed_data/extra_drop_info.hpp +3 -3
  370. package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +3 -2
  371. package/src/duckdb/src/include/duckdb/parser/parsed_data/vacuum_info.hpp +2 -5
  372. package/src/duckdb/src/include/duckdb/parser/parser.hpp +1 -1
  373. package/src/duckdb/src/include/duckdb/parser/parser_extension.hpp +3 -3
  374. package/src/duckdb/src/include/duckdb/parser/query_error_context.hpp +1 -1
  375. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +3 -5
  376. package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +2 -2
  377. package/src/duckdb/src/include/duckdb/planner/binder.hpp +16 -9
  378. package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
  379. package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
  380. package/src/duckdb/src/include/duckdb/planner/expression/bound_default_expression.hpp +1 -1
  381. package/src/duckdb/src/include/duckdb/planner/expression/bound_expanded_expression.hpp +34 -0
  382. package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +1 -1
  383. package/src/duckdb/src/include/duckdb/planner/expression.hpp +1 -1
  384. package/src/duckdb/src/include/duckdb/planner/expression_binder/base_select_binder.hpp +5 -8
  385. package/src/duckdb/src/include/duckdb/planner/expression_binder/column_alias_binder.hpp +3 -4
  386. package/src/duckdb/src/include/duckdb/planner/expression_binder/group_binder.hpp +3 -2
  387. package/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp +3 -5
  388. package/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp +6 -14
  389. package/src/duckdb/src/include/duckdb/planner/expression_binder/qualify_binder.hpp +3 -6
  390. package/src/duckdb/src/include/duckdb/planner/expression_binder/select_bind_state.hpp +52 -0
  391. package/src/duckdb/src/include/duckdb/planner/expression_binder/select_binder.hpp +4 -10
  392. package/src/duckdb/src/include/duckdb/planner/expression_binder/table_function_binder.hpp +5 -2
  393. package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +1 -0
  394. package/src/duckdb/src/include/duckdb/planner/expression_iterator.hpp +2 -0
  395. package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +3 -6
  396. package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +2 -0
  397. package/src/duckdb/src/include/duckdb/planner/logical_tokens.hpp +1 -0
  398. package/src/duckdb/src/include/duckdb/planner/operator/list.hpp +1 -0
  399. package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_database.hpp +4 -12
  400. package/src/duckdb/src/include/duckdb/planner/operator/logical_create_secret.hpp +1 -1
  401. package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +2 -2
  402. package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_get.hpp +1 -1
  403. package/src/duckdb/src/include/duckdb/planner/operator/logical_dummy_scan.hpp +1 -1
  404. package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +1 -1
  405. package/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +2 -2
  406. package/src/duckdb/src/include/duckdb/planner/operator/logical_expression_get.hpp +2 -2
  407. package/src/duckdb/src/include/duckdb/planner/operator/logical_extension_operator.hpp +2 -2
  408. package/src/duckdb/src/include/duckdb/planner/operator/logical_materialized_cte.hpp +2 -2
  409. package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +1 -1
  410. package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +3 -2
  411. package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +3 -3
  412. package/src/duckdb/src/include/duckdb/planner/operator/logical_reset.hpp +1 -1
  413. package/src/duckdb/src/include/duckdb/planner/operator/logical_set.hpp +2 -1
  414. package/src/duckdb/src/include/duckdb/planner/operator/logical_vacuum.hpp +52 -0
  415. package/src/duckdb/src/include/duckdb/planner/operator_extension.hpp +1 -1
  416. package/src/duckdb/src/include/duckdb/planner/parsed_data/bound_create_table_info.hpp +2 -2
  417. package/src/duckdb/src/include/duckdb/planner/query_node/bound_select_node.hpp +5 -4
  418. package/src/duckdb/src/include/duckdb/planner/subquery/flatten_dependent_join.hpp +2 -2
  419. package/src/duckdb/src/include/duckdb/storage/arena_allocator.hpp +4 -1
  420. package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +1 -1
  421. package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +3 -3
  422. package/src/duckdb/src/include/duckdb/storage/checkpoint/row_group_writer.hpp +2 -3
  423. package/src/duckdb/src/include/duckdb/storage/checkpoint/string_checkpoint_state.hpp +1 -1
  424. package/src/duckdb/src/include/duckdb/storage/checkpoint/table_data_writer.hpp +3 -3
  425. package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +5 -5
  426. package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_analyze.hpp +1 -1
  427. package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_compress.hpp +1 -1
  428. package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_fetch.hpp +1 -1
  429. package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_scan.hpp +1 -1
  430. package/src/duckdb/src/include/duckdb/storage/compression/alprd/algorithm/alprd.hpp +3 -3
  431. package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_analyze.hpp +2 -2
  432. package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_compress.hpp +1 -1
  433. package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_fetch.hpp +1 -1
  434. package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_scan.hpp +3 -3
  435. package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/flag_buffer.hpp +1 -1
  436. package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/leading_zero_buffer.hpp +3 -3
  437. package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp.hpp +3 -3
  438. package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +0 -1
  439. package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_fetch.hpp +1 -1
  440. package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_scan.hpp +4 -4
  441. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas.hpp +4 -4
  442. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +0 -1
  443. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_fetch.hpp +1 -1
  444. package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_scan.hpp +3 -3
  445. package/src/duckdb/src/include/duckdb/storage/data_pointer.hpp +1 -1
  446. package/src/duckdb/src/include/duckdb/storage/index.hpp +1 -1
  447. package/src/duckdb/src/include/duckdb/storage/magic_bytes.hpp +1 -1
  448. package/src/duckdb/src/include/duckdb/storage/object_cache.hpp +3 -3
  449. package/src/duckdb/src/include/duckdb/storage/optimistic_data_writer.hpp +1 -1
  450. package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
  451. package/src/duckdb/src/include/duckdb/storage/single_file_block_manager.hpp +4 -1
  452. package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +24 -24
  453. package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats_union.hpp +3 -3
  454. package/src/duckdb/src/include/duckdb/storage/statistics/segment_statistics.hpp +2 -2
  455. package/src/duckdb/src/include/duckdb/storage/storage_info.hpp +2 -2
  456. package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +4 -4
  457. package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +9 -6
  458. package/src/duckdb/src/include/duckdb/storage/table/append_state.hpp +1 -1
  459. package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +2 -2
  460. package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +1 -1
  461. package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +10 -1
  462. package/src/duckdb/src/include/duckdb/storage/table/data_table_info.hpp +3 -2
  463. package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +1 -1
  464. package/src/duckdb/src/include/duckdb/storage/table/row_group_segment_tree.hpp +1 -1
  465. package/src/duckdb/src/include/duckdb/storage/table/row_version_manager.hpp +2 -1
  466. package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +3 -3
  467. package/src/duckdb/src/include/duckdb/storage/table/segment_lock.hpp +1 -1
  468. package/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +4 -4
  469. package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +2 -0
  470. package/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp +3 -2
  471. package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +1 -1
  472. package/src/duckdb/src/include/duckdb/storage/table/update_segment.hpp +1 -1
  473. package/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp +2 -1
  474. package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +1 -1
  475. package/src/duckdb/src/include/duckdb/transaction/delete_info.hpp +20 -1
  476. package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +1 -1
  477. package/src/duckdb/src/include/duckdb/transaction/transaction_data.hpp +1 -1
  478. package/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp +1 -1
  479. package/src/duckdb/src/include/duckdb/transaction/update_info.hpp +1 -1
  480. package/src/duckdb/src/main/appender.cpp +1 -1
  481. package/src/duckdb/src/main/attached_database.cpp +11 -3
  482. package/src/duckdb/src/main/capi/arrow-c.cpp +6 -2
  483. package/src/duckdb/src/main/capi/cast/utils-c.cpp +1 -1
  484. package/src/duckdb/src/main/capi/duckdb-c.cpp +1 -1
  485. package/src/duckdb/src/main/capi/pending-c.cpp +1 -1
  486. package/src/duckdb/src/main/capi/prepared-c.cpp +2 -2
  487. package/src/duckdb/src/main/capi/result-c.cpp +4 -4
  488. package/src/duckdb/src/main/client_context.cpp +4 -12
  489. package/src/duckdb/src/main/client_context_file_opener.cpp +15 -3
  490. package/src/duckdb/src/main/client_data.cpp +5 -0
  491. package/src/duckdb/src/main/config.cpp +82 -82
  492. package/src/duckdb/src/main/database.cpp +31 -7
  493. package/src/duckdb/src/main/database_manager.cpp +3 -2
  494. package/src/duckdb/src/main/database_path_and_type.cpp +4 -4
  495. package/src/duckdb/src/main/error_manager.cpp +1 -1
  496. package/src/duckdb/src/main/extension/extension_alias.cpp +9 -9
  497. package/src/duckdb/src/main/extension/extension_helper.cpp +10 -5
  498. package/src/duckdb/src/main/extension/extension_install.cpp +1 -1
  499. package/src/duckdb/src/main/extension/extension_load.cpp +111 -37
  500. package/src/duckdb/src/main/query_profiler.cpp +1 -118
  501. package/src/duckdb/src/main/secret/secret_manager.cpp +1 -2
  502. package/src/duckdb/src/main/secret/secret_storage.cpp +1 -1
  503. package/src/duckdb/src/main/settings/settings.cpp +81 -65
  504. package/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +8 -1
  505. package/src/duckdb/src/optimizer/compressed_materialization/compress_aggregate.cpp +3 -0
  506. package/src/duckdb/src/optimizer/compressed_materialization.cpp +26 -28
  507. package/src/duckdb/src/optimizer/cse_optimizer.cpp +5 -5
  508. package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -6
  509. package/src/duckdb/src/optimizer/optimizer.cpp +14 -17
  510. package/src/duckdb/src/optimizer/pushdown/pushdown_cross_product.cpp +16 -5
  511. package/src/duckdb/src/optimizer/pushdown/pushdown_inner_join.cpp +7 -4
  512. package/src/duckdb/src/optimizer/pushdown/pushdown_set_operation.cpp +2 -2
  513. package/src/duckdb/src/optimizer/remove_unused_columns.cpp +3 -3
  514. package/src/duckdb/src/optimizer/rule/ordered_aggregate_optimizer.cpp +2 -2
  515. package/src/duckdb/src/optimizer/statistics/expression/propagate_aggregate.cpp +1 -1
  516. package/src/duckdb/src/optimizer/statistics/expression/propagate_between.cpp +8 -8
  517. package/src/duckdb/src/optimizer/statistics/expression/propagate_case.cpp +1 -1
  518. package/src/duckdb/src/optimizer/statistics/expression/propagate_cast.cpp +1 -1
  519. package/src/duckdb/src/optimizer/statistics/expression/propagate_columnref.cpp +1 -1
  520. package/src/duckdb/src/optimizer/statistics/expression/propagate_comparison.cpp +7 -7
  521. package/src/duckdb/src/optimizer/statistics/expression/propagate_conjunction.cpp +6 -6
  522. package/src/duckdb/src/optimizer/statistics/expression/propagate_constant.cpp +1 -1
  523. package/src/duckdb/src/optimizer/statistics/expression/propagate_function.cpp +2 -2
  524. package/src/duckdb/src/optimizer/statistics/expression/propagate_operator.cpp +10 -10
  525. package/src/duckdb/src/optimizer/statistics/operator/propagate_aggregate.cpp +1 -1
  526. package/src/duckdb/src/optimizer/statistics/operator/propagate_cross_product.cpp +1 -1
  527. package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +14 -7
  528. package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
  529. package/src/duckdb/src/optimizer/statistics/operator/propagate_join.cpp +9 -9
  530. package/src/duckdb/src/optimizer/statistics/operator/propagate_limit.cpp +1 -1
  531. package/src/duckdb/src/optimizer/statistics/operator/propagate_order.cpp +1 -1
  532. package/src/duckdb/src/optimizer/statistics/operator/propagate_projection.cpp +2 -2
  533. package/src/duckdb/src/optimizer/statistics/operator/propagate_set_operation.cpp +1 -1
  534. package/src/duckdb/src/optimizer/statistics/operator/propagate_window.cpp +1 -1
  535. package/src/duckdb/src/optimizer/statistics_propagator.cpp +39 -18
  536. package/src/duckdb/src/parallel/pipeline_finish_event.cpp +1 -1
  537. package/src/duckdb/src/parallel/task_scheduler.cpp +8 -1
  538. package/src/duckdb/src/parser/constraints/unique_constraint.cpp +4 -2
  539. package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +64 -0
  540. package/src/duckdb/src/parser/parsed_data/vacuum_info.cpp +1 -0
  541. package/src/duckdb/src/parser/transform/expression/transform_function.cpp +13 -5
  542. package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +24 -0
  543. package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +1 -8
  544. package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +2 -1
  545. package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +3 -0
  546. package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +2 -6
  547. package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +2 -6
  548. package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +2 -6
  549. package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +1 -1
  550. package/src/duckdb/src/parser/transform/statement/transform_select.cpp +5 -2
  551. package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +2 -8
  552. package/src/duckdb/src/parser/transform/statement/transform_update.cpp +1 -6
  553. package/src/duckdb/src/parser/transform/statement/transform_use.cpp +3 -2
  554. package/src/duckdb/src/parser/transformer.cpp +14 -2
  555. package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +40 -17
  556. package/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp +8 -3
  557. package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +32 -30
  558. package/src/duckdb/src/planner/binder/query_node/bind_cte_node.cpp +28 -17
  559. package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +146 -101
  560. package/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp +28 -26
  561. package/src/duckdb/src/planner/binder/query_node/plan_cte_node.cpp +29 -0
  562. package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +10 -10
  563. package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +3 -2
  564. package/src/duckdb/src/planner/binder/statement/bind_copy_database.cpp +23 -28
  565. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +11 -12
  566. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +9 -11
  567. package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +10 -13
  568. package/src/duckdb/src/planner/binder/statement/bind_pragma.cpp +3 -3
  569. package/src/duckdb/src/planner/binder/statement/bind_set.cpp +3 -0
  570. package/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp +66 -65
  571. package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +54 -46
  572. package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +3 -0
  573. package/src/duckdb/src/planner/binder/tableref/bind_subqueryref.cpp +1 -1
  574. package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +5 -5
  575. package/src/duckdb/src/planner/binder.cpp +78 -6
  576. package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +11 -3
  577. package/src/duckdb/src/planner/expression/bound_expanded_expression.cpp +22 -0
  578. package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +11 -58
  579. package/src/duckdb/src/planner/expression_binder/column_alias_binder.cpp +5 -8
  580. package/src/duckdb/src/planner/expression_binder/group_binder.cpp +5 -4
  581. package/src/duckdb/src/planner/expression_binder/having_binder.cpp +5 -19
  582. package/src/duckdb/src/planner/expression_binder/lateral_binder.cpp +8 -8
  583. package/src/duckdb/src/planner/expression_binder/order_binder.cpp +42 -26
  584. package/src/duckdb/src/planner/expression_binder/qualify_binder.cpp +3 -22
  585. package/src/duckdb/src/planner/expression_binder/select_bind_state.cpp +52 -0
  586. package/src/duckdb/src/planner/expression_binder/select_binder.cpp +43 -5
  587. package/src/duckdb/src/planner/expression_binder/table_function_binder.cpp +19 -7
  588. package/src/duckdb/src/planner/logical_operator.cpp +20 -3
  589. package/src/duckdb/src/planner/operator/logical_copy_database.cpp +4 -14
  590. package/src/duckdb/src/planner/operator/logical_delete.cpp +1 -1
  591. package/src/duckdb/src/planner/operator/logical_get.cpp +1 -1
  592. package/src/duckdb/src/planner/operator/logical_insert.cpp +1 -1
  593. package/src/duckdb/src/planner/operator/logical_update.cpp +1 -1
  594. package/src/duckdb/src/planner/operator/logical_vacuum.cpp +65 -0
  595. package/src/duckdb/src/planner/planner.cpp +4 -4
  596. package/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +26 -27
  597. package/src/duckdb/src/storage/arena_allocator.cpp +9 -0
  598. package/src/duckdb/src/storage/buffer/buffer_pool_reservation.cpp +1 -1
  599. package/src/duckdb/src/storage/buffer_manager.cpp +2 -10
  600. package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +2 -3
  601. package/src/duckdb/src/storage/checkpoint_manager.cpp +15 -8
  602. package/src/duckdb/src/storage/compression/bitpacking.cpp +6 -1
  603. package/src/duckdb/src/storage/compression/string_uncompressed.cpp +1 -1
  604. package/src/duckdb/src/storage/data_pointer.cpp +1 -1
  605. package/src/duckdb/src/storage/data_table.cpp +18 -7
  606. package/src/duckdb/src/storage/local_storage.cpp +8 -5
  607. package/src/duckdb/src/storage/magic_bytes.cpp +6 -5
  608. package/src/duckdb/src/storage/partial_block_manager.cpp +1 -1
  609. package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +20 -9
  610. package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +12 -10
  611. package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +23 -0
  612. package/src/duckdb/src/storage/single_file_block_manager.cpp +46 -19
  613. package/src/duckdb/src/storage/standard_buffer_manager.cpp +21 -5
  614. package/src/duckdb/src/storage/statistics/array_stats.cpp +1 -1
  615. package/src/duckdb/src/storage/statistics/base_statistics.cpp +2 -3
  616. package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
  617. package/src/duckdb/src/storage/statistics/struct_stats.cpp +1 -1
  618. package/src/duckdb/src/storage/storage_info.cpp +19 -19
  619. package/src/duckdb/src/storage/storage_manager.cpp +18 -13
  620. package/src/duckdb/src/storage/table/chunk_info.cpp +11 -3
  621. package/src/duckdb/src/storage/table/column_data.cpp +88 -66
  622. package/src/duckdb/src/storage/table/row_group.cpp +7 -7
  623. package/src/duckdb/src/storage/table/row_version_manager.cpp +2 -2
  624. package/src/duckdb/src/storage/table/standard_column_data.cpp +4 -0
  625. package/src/duckdb/src/storage/table/update_segment.cpp +3 -1
  626. package/src/duckdb/src/storage/table_index_list.cpp +6 -1
  627. package/src/duckdb/src/storage/temporary_file_manager.cpp +1 -1
  628. package/src/duckdb/src/storage/wal_replay.cpp +8 -7
  629. package/src/duckdb/src/storage/write_ahead_log.cpp +3 -4
  630. package/src/duckdb/src/transaction/cleanup_state.cpp +10 -3
  631. package/src/duckdb/src/transaction/commit_state.cpp +11 -4
  632. package/src/duckdb/src/transaction/duck_transaction.cpp +23 -3
  633. package/src/duckdb/src/transaction/rollback_state.cpp +1 -1
  634. package/src/duckdb/src/transaction/transaction_context.cpp +1 -1
  635. package/src/duckdb/src/transaction/undo_buffer.cpp +3 -1
  636. package/src/duckdb/third_party/fmt/include/fmt/core.h +0 -5
  637. package/src/duckdb/third_party/fsst/fsst.h +1 -1
  638. package/src/duckdb/third_party/fsst/libfsst.cpp +1 -140
  639. package/src/duckdb/third_party/fsst/libfsst.hpp +0 -13
  640. package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +4 -0
  641. package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +8 -1
  642. package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +2 -1
  643. package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +15401 -15354
  644. package/src/duckdb/third_party/libpg_query/src_backend_parser_scan.cpp +299 -538
  645. package/src/duckdb/third_party/lz4/lz4.cpp +2605 -0
  646. package/src/duckdb/third_party/lz4/lz4.hpp +843 -0
  647. package/src/duckdb/third_party/parquet/parquet_types.cpp +3 -0
  648. package/src/duckdb/third_party/parquet/parquet_types.h +2 -1
  649. package/src/duckdb/third_party/re2/re2/bitmap256.cc +44 -0
  650. package/src/duckdb/third_party/re2/re2/bitmap256.h +3 -35
  651. package/src/duckdb/third_party/re2/re2/bitstate.cc +31 -24
  652. package/src/duckdb/third_party/re2/re2/compile.cc +146 -164
  653. package/src/duckdb/third_party/re2/re2/dfa.cc +174 -181
  654. package/src/duckdb/third_party/re2/re2/filtered_re2.cc +19 -3
  655. package/src/duckdb/third_party/re2/re2/filtered_re2.h +27 -23
  656. package/src/duckdb/third_party/re2/re2/mimics_pcre.cc +21 -11
  657. package/src/duckdb/third_party/re2/re2/nfa.cc +91 -131
  658. package/src/duckdb/third_party/re2/re2/onepass.cc +11 -10
  659. package/src/duckdb/third_party/re2/re2/parse.cc +171 -154
  660. package/src/duckdb/third_party/re2/re2/perl_groups.cc +35 -35
  661. package/src/duckdb/third_party/re2/re2/pod_array.h +55 -0
  662. package/src/duckdb/third_party/re2/re2/prefilter.cc +40 -40
  663. package/src/duckdb/third_party/re2/re2/prefilter.h +24 -2
  664. package/src/duckdb/third_party/re2/re2/prefilter_tree.cc +70 -84
  665. package/src/duckdb/third_party/re2/re2/prefilter_tree.h +5 -4
  666. package/src/duckdb/third_party/re2/re2/prog.cc +315 -58
  667. package/src/duckdb/third_party/re2/re2/prog.h +77 -44
  668. package/src/duckdb/third_party/re2/re2/re2.cc +333 -221
  669. package/src/duckdb/third_party/re2/re2/re2.h +277 -201
  670. package/src/duckdb/third_party/re2/re2/regexp.cc +137 -105
  671. package/src/duckdb/third_party/re2/re2/regexp.h +45 -40
  672. package/src/duckdb/third_party/re2/re2/set.cc +40 -17
  673. package/src/duckdb/third_party/re2/re2/set.h +11 -6
  674. package/src/duckdb/third_party/re2/re2/simplify.cc +50 -41
  675. package/src/duckdb/third_party/re2/re2/sparse_array.h +392 -0
  676. package/src/duckdb/third_party/re2/re2/sparse_set.h +264 -0
  677. package/src/duckdb/third_party/re2/re2/stringpiece.cc +1 -1
  678. package/src/duckdb/third_party/re2/re2/stringpiece.h +11 -8
  679. package/src/duckdb/third_party/re2/re2/tostring.cc +8 -6
  680. package/src/duckdb/third_party/re2/re2/unicode_casefold.cc +39 -10
  681. package/src/duckdb/third_party/re2/re2/unicode_casefold.h +1 -1
  682. package/src/duckdb/third_party/re2/re2/unicode_groups.cc +5019 -4566
  683. package/src/duckdb/third_party/re2/re2/unicode_groups.h +1 -1
  684. package/src/duckdb/third_party/re2/re2/walker-inl.h +21 -20
  685. package/src/duckdb/third_party/re2/util/logging.h +14 -18
  686. package/src/duckdb/third_party/re2/util/mix.h +4 -4
  687. package/src/duckdb/third_party/re2/util/mutex.h +48 -15
  688. package/src/duckdb/third_party/re2/util/rune.cc +5 -5
  689. package/src/duckdb/third_party/re2/util/strutil.cc +1 -16
  690. package/src/duckdb/third_party/re2/util/strutil.h +1 -3
  691. package/src/duckdb/third_party/re2/util/utf.h +1 -1
  692. package/src/duckdb/third_party/re2/util/util.h +9 -1
  693. package/src/duckdb/third_party/utf8proc/include/utf8proc_wrapper.hpp +2 -0
  694. package/src/duckdb/third_party/utf8proc/utf8proc_wrapper.cpp +36 -1
  695. package/src/duckdb/ub_src_common.cpp +0 -2
  696. package/src/duckdb/ub_src_execution_physical_plan.cpp +2 -0
  697. package/src/duckdb/ub_src_planner_expression.cpp +2 -0
  698. package/src/duckdb/ub_src_planner_expression_binder.cpp +2 -0
  699. package/src/duckdb/ub_src_planner_operator.cpp +2 -0
@@ -47,7 +47,7 @@ void AccessModeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
47
47
  config.options.access_mode = DBConfig().options.access_mode;
48
48
  }
49
49
 
50
- Value AccessModeSetting::GetSetting(ClientContext &context) {
50
+ Value AccessModeSetting::GetSetting(const ClientContext &context) {
51
51
  auto &config = DBConfig::GetConfig(context);
52
52
  switch (config.options.access_mode) {
53
53
  case AccessMode::AUTOMATIC:
@@ -73,7 +73,7 @@ void AllowPersistentSecrets::ResetGlobal(DatabaseInstance *db, DBConfig &config)
73
73
  config.secret_manager->ResetEnablePersistentSecrets();
74
74
  }
75
75
 
76
- Value AllowPersistentSecrets::GetSetting(ClientContext &context) {
76
+ Value AllowPersistentSecrets::GetSetting(const ClientContext &context) {
77
77
  auto &config = DBConfig::GetConfig(context);
78
78
  return Value::BOOLEAN(config.secret_manager->PersistentSecretsEnabled());
79
79
  }
@@ -90,7 +90,7 @@ void CheckpointThresholdSetting::ResetGlobal(DatabaseInstance *db, DBConfig &con
90
90
  config.options.checkpoint_wal_size = DBConfig().options.checkpoint_wal_size;
91
91
  }
92
92
 
93
- Value CheckpointThresholdSetting::GetSetting(ClientContext &context) {
93
+ Value CheckpointThresholdSetting::GetSetting(const ClientContext &context) {
94
94
  auto &config = DBConfig::GetConfig(context);
95
95
  return Value(StringUtil::BytesToHumanReadableString(config.options.checkpoint_wal_size));
96
96
  }
@@ -118,7 +118,7 @@ void DebugCheckpointAbort::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
118
118
  config.options.checkpoint_abort = DBConfig().options.checkpoint_abort;
119
119
  }
120
120
 
121
- Value DebugCheckpointAbort::GetSetting(ClientContext &context) {
121
+ Value DebugCheckpointAbort::GetSetting(const ClientContext &context) {
122
122
  auto &config = DBConfig::GetConfig(*context.db);
123
123
  auto setting = config.options.checkpoint_abort;
124
124
  switch (setting) {
@@ -146,7 +146,7 @@ void DebugForceExternal::SetLocal(ClientContext &context, const Value &input) {
146
146
  ClientConfig::GetConfig(context).force_external = input.GetValue<bool>();
147
147
  }
148
148
 
149
- Value DebugForceExternal::GetSetting(ClientContext &context) {
149
+ Value DebugForceExternal::GetSetting(const ClientContext &context) {
150
150
  return Value::BOOLEAN(ClientConfig::GetConfig(context).force_external);
151
151
  }
152
152
 
@@ -161,7 +161,7 @@ void DebugForceNoCrossProduct::SetLocal(ClientContext &context, const Value &inp
161
161
  ClientConfig::GetConfig(context).force_no_cross_product = input.GetValue<bool>();
162
162
  }
163
163
 
164
- Value DebugForceNoCrossProduct::GetSetting(ClientContext &context) {
164
+ Value DebugForceNoCrossProduct::GetSetting(const ClientContext &context) {
165
165
  return Value::BOOLEAN(ClientConfig::GetConfig(context).force_no_cross_product);
166
166
  }
167
167
 
@@ -180,7 +180,7 @@ void OrderedAggregateThreshold::SetLocal(ClientContext &context, const Value &in
180
180
  ClientConfig::GetConfig(context).ordered_aggregate_threshold = param;
181
181
  }
182
182
 
183
- Value OrderedAggregateThreshold::GetSetting(ClientContext &context) {
183
+ Value OrderedAggregateThreshold::GetSetting(const ClientContext &context) {
184
184
  return Value::UBIGINT(ClientConfig::GetConfig(context).ordered_aggregate_threshold);
185
185
  }
186
186
 
@@ -204,7 +204,7 @@ void DebugWindowMode::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
204
204
  config.options.window_mode = DBConfig().options.window_mode;
205
205
  }
206
206
 
207
- Value DebugWindowMode::GetSetting(ClientContext &context) {
207
+ Value DebugWindowMode::GetSetting(const ClientContext &context) {
208
208
  return Value();
209
209
  }
210
210
 
@@ -219,7 +219,7 @@ void DebugAsOfIEJoin::SetLocal(ClientContext &context, const Value &input) {
219
219
  ClientConfig::GetConfig(context).force_asof_iejoin = input.GetValue<bool>();
220
220
  }
221
221
 
222
- Value DebugAsOfIEJoin::GetSetting(ClientContext &context) {
222
+ Value DebugAsOfIEJoin::GetSetting(const ClientContext &context) {
223
223
  return Value::BOOLEAN(ClientConfig::GetConfig(context).force_asof_iejoin);
224
224
  }
225
225
 
@@ -234,7 +234,7 @@ void PreferRangeJoins::SetLocal(ClientContext &context, const Value &input) {
234
234
  ClientConfig::GetConfig(context).prefer_range_joins = input.GetValue<bool>();
235
235
  }
236
236
 
237
- Value PreferRangeJoins::GetSetting(ClientContext &context) {
237
+ Value PreferRangeJoins::GetSetting(const ClientContext &context) {
238
238
  return Value::BOOLEAN(ClientConfig::GetConfig(context).prefer_range_joins);
239
239
  }
240
240
 
@@ -263,7 +263,7 @@ void DefaultCollationSetting::SetLocal(ClientContext &context, const Value &inpu
263
263
  config.options.collation = parameter;
264
264
  }
265
265
 
266
- Value DefaultCollationSetting::GetSetting(ClientContext &context) {
266
+ Value DefaultCollationSetting::GetSetting(const ClientContext &context) {
267
267
  auto &config = DBConfig::GetConfig(context);
268
268
  return Value(config.options.collation);
269
269
  }
@@ -287,7 +287,7 @@ void DefaultOrderSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
287
287
  config.options.default_order_type = DBConfig().options.default_order_type;
288
288
  }
289
289
 
290
- Value DefaultOrderSetting::GetSetting(ClientContext &context) {
290
+ Value DefaultOrderSetting::GetSetting(const ClientContext &context) {
291
291
  auto &config = DBConfig::GetConfig(context);
292
292
  switch (config.options.default_order_type) {
293
293
  case OrderType::ASCENDING:
@@ -325,7 +325,7 @@ void DefaultNullOrderSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config
325
325
  config.options.default_null_order = DBConfig().options.default_null_order;
326
326
  }
327
327
 
328
- Value DefaultNullOrderSetting::GetSetting(ClientContext &context) {
328
+ Value DefaultNullOrderSetting::GetSetting(const ClientContext &context) {
329
329
  auto &config = DBConfig::GetConfig(context);
330
330
  switch (config.options.default_null_order) {
331
331
  case DefaultOrderByNullType::NULLS_FIRST:
@@ -352,7 +352,7 @@ void DefaultSecretStorage::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
352
352
  config.secret_manager->ResetDefaultStorage();
353
353
  }
354
354
 
355
- Value DefaultSecretStorage::GetSetting(ClientContext &context) {
355
+ Value DefaultSecretStorage::GetSetting(const ClientContext &context) {
356
356
  auto &config = DBConfig::GetConfig(context);
357
357
  return config.secret_manager->DefaultStorage();
358
358
  }
@@ -377,7 +377,7 @@ void DisabledFileSystemsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &con
377
377
  fs.SetDisabledFileSystems(vector<string>());
378
378
  }
379
379
 
380
- Value DisabledFileSystemsSetting::GetSetting(ClientContext &context) {
380
+ Value DisabledFileSystemsSetting::GetSetting(const ClientContext &context) {
381
381
  return Value("");
382
382
  }
383
383
 
@@ -402,7 +402,7 @@ void DisabledOptimizersSetting::ResetGlobal(DatabaseInstance *db, DBConfig &conf
402
402
  config.options.disabled_optimizers = DBConfig().options.disabled_optimizers;
403
403
  }
404
404
 
405
- Value DisabledOptimizersSetting::GetSetting(ClientContext &context) {
405
+ Value DisabledOptimizersSetting::GetSetting(const ClientContext &context) {
406
406
  auto &config = DBConfig::GetConfig(context);
407
407
  string result;
408
408
  for (auto &optimizer : config.options.disabled_optimizers) {
@@ -432,7 +432,7 @@ void EnableExternalAccessSetting::ResetGlobal(DatabaseInstance *db, DBConfig &co
432
432
  config.options.enable_external_access = DBConfig().options.enable_external_access;
433
433
  }
434
434
 
435
- Value EnableExternalAccessSetting::GetSetting(ClientContext &context) {
435
+ Value EnableExternalAccessSetting::GetSetting(const ClientContext &context) {
436
436
  auto &config = DBConfig::GetConfig(context);
437
437
  return Value::BOOLEAN(config.options.enable_external_access);
438
438
  }
@@ -448,7 +448,7 @@ void EnableFSSTVectors::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
448
448
  config.options.enable_fsst_vectors = DBConfig().options.enable_fsst_vectors;
449
449
  }
450
450
 
451
- Value EnableFSSTVectors::GetSetting(ClientContext &context) {
451
+ Value EnableFSSTVectors::GetSetting(const ClientContext &context) {
452
452
  auto &config = DBConfig::GetConfig(context);
453
453
  return Value::BOOLEAN(config.options.enable_fsst_vectors);
454
454
  }
@@ -471,11 +471,28 @@ void AllowUnsignedExtensionsSetting::ResetGlobal(DatabaseInstance *db, DBConfig
471
471
  config.options.allow_unsigned_extensions = DBConfig().options.allow_unsigned_extensions;
472
472
  }
473
473
 
474
- Value AllowUnsignedExtensionsSetting::GetSetting(ClientContext &context) {
474
+ Value AllowUnsignedExtensionsSetting::GetSetting(const ClientContext &context) {
475
475
  auto &config = DBConfig::GetConfig(context);
476
476
  return Value::BOOLEAN(config.options.allow_unsigned_extensions);
477
477
  }
478
478
 
479
+ //===--------------------------------------------------------------------===//
480
+ // Allow Extensions Metadata Mismatch
481
+ //===--------------------------------------------------------------------===//
482
+ void AllowExtensionsMetadataMismatchSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) {
483
+ auto new_value = input.GetValue<bool>();
484
+ config.options.allow_extensions_metadata_mismatch = new_value;
485
+ }
486
+
487
+ void AllowExtensionsMetadataMismatchSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
488
+ config.options.allow_extensions_metadata_mismatch = DBConfig().options.allow_extensions_metadata_mismatch;
489
+ }
490
+
491
+ Value AllowExtensionsMetadataMismatchSetting::GetSetting(const ClientContext &context) {
492
+ auto &config = DBConfig::GetConfig(context);
493
+ return Value::BOOLEAN(config.options.allow_extensions_metadata_mismatch);
494
+ }
495
+
479
496
  //===--------------------------------------------------------------------===//
480
497
  // Allow Unredacted Secrets
481
498
  //===--------------------------------------------------------------------===//
@@ -494,7 +511,7 @@ void AllowUnredactedSecretsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &
494
511
  config.options.allow_unredacted_secrets = DBConfig().options.allow_unredacted_secrets;
495
512
  }
496
513
 
497
- Value AllowUnredactedSecretsSetting::GetSetting(ClientContext &context) {
514
+ Value AllowUnredactedSecretsSetting::GetSetting(const ClientContext &context) {
498
515
  auto &config = DBConfig::GetConfig(context);
499
516
  return Value::BOOLEAN(config.options.allow_unredacted_secrets);
500
517
  }
@@ -510,7 +527,7 @@ void EnableObjectCacheSetting::ResetGlobal(DatabaseInstance *db, DBConfig &confi
510
527
  config.options.object_cache_enable = DBConfig().options.object_cache_enable;
511
528
  }
512
529
 
513
- Value EnableObjectCacheSetting::GetSetting(ClientContext &context) {
530
+ Value EnableObjectCacheSetting::GetSetting(const ClientContext &context) {
514
531
  auto &config = DBConfig::GetConfig(context);
515
532
  return Value::BOOLEAN(config.options.object_cache_enable);
516
533
  }
@@ -526,7 +543,7 @@ void EnableHTTPMetadataCacheSetting::ResetGlobal(DatabaseInstance *db, DBConfig
526
543
  config.options.http_metadata_cache_enable = DBConfig().options.http_metadata_cache_enable;
527
544
  }
528
545
 
529
- Value EnableHTTPMetadataCacheSetting::GetSetting(ClientContext &context) {
546
+ Value EnableHTTPMetadataCacheSetting::GetSetting(const ClientContext &context) {
530
547
  auto &config = DBConfig::GetConfig(context);
531
548
  return Value::BOOLEAN(config.options.http_metadata_cache_enable);
532
549
  }
@@ -559,7 +576,7 @@ void EnableProfilingSetting::SetLocal(ClientContext &context, const Value &input
559
576
  config.emit_profiler_output = true;
560
577
  }
561
578
 
562
- Value EnableProfilingSetting::GetSetting(ClientContext &context) {
579
+ Value EnableProfilingSetting::GetSetting(const ClientContext &context) {
563
580
  auto &config = ClientConfig::GetConfig(context);
564
581
  if (!config.enable_profiler) {
565
582
  return Value();
@@ -587,7 +604,7 @@ void CustomExtensionRepository::SetGlobal(DatabaseInstance *db, DBConfig &config
587
604
  config.options.custom_extension_repo = input.ToString();
588
605
  }
589
606
 
590
- Value CustomExtensionRepository::GetSetting(ClientContext &context) {
607
+ Value CustomExtensionRepository::GetSetting(const ClientContext &context) {
591
608
  auto &config = DBConfig::GetConfig(context);
592
609
  return Value(config.options.custom_extension_repo);
593
610
  }
@@ -603,7 +620,7 @@ void AutoloadExtensionRepository::SetGlobal(DatabaseInstance *db, DBConfig &conf
603
620
  config.options.autoinstall_extension_repo = input.ToString();
604
621
  }
605
622
 
606
- Value AutoloadExtensionRepository::GetSetting(ClientContext &context) {
623
+ Value AutoloadExtensionRepository::GetSetting(const ClientContext &context) {
607
624
  auto &config = DBConfig::GetConfig(context);
608
625
  return Value(config.options.autoinstall_extension_repo);
609
626
  }
@@ -619,7 +636,7 @@ void AutoinstallKnownExtensions::ResetGlobal(DatabaseInstance *db, DBConfig &con
619
636
  config.options.autoinstall_known_extensions = DBConfig().options.autoinstall_known_extensions;
620
637
  }
621
638
 
622
- Value AutoinstallKnownExtensions::GetSetting(ClientContext &context) {
639
+ Value AutoinstallKnownExtensions::GetSetting(const ClientContext &context) {
623
640
  auto &config = DBConfig::GetConfig(context);
624
641
  return Value::BOOLEAN(config.options.autoinstall_known_extensions);
625
642
  }
@@ -634,7 +651,7 @@ void AutoloadKnownExtensions::ResetGlobal(DatabaseInstance *db, DBConfig &config
634
651
  config.options.autoload_known_extensions = DBConfig().options.autoload_known_extensions;
635
652
  }
636
653
 
637
- Value AutoloadKnownExtensions::GetSetting(ClientContext &context) {
654
+ Value AutoloadKnownExtensions::GetSetting(const ClientContext &context) {
638
655
  auto &config = DBConfig::GetConfig(context);
639
656
  return Value::BOOLEAN(config.options.autoload_known_extensions);
640
657
  }
@@ -654,7 +671,7 @@ void EnableProgressBarSetting::SetLocal(ClientContext &context, const Value &inp
654
671
  config.enable_progress_bar = input.GetValue<bool>();
655
672
  }
656
673
 
657
- Value EnableProgressBarSetting::GetSetting(ClientContext &context) {
674
+ Value EnableProgressBarSetting::GetSetting(const ClientContext &context) {
658
675
  return Value::BOOLEAN(ClientConfig::GetConfig(context).enable_progress_bar);
659
676
  }
660
677
 
@@ -673,7 +690,7 @@ void EnableProgressBarPrintSetting::ResetLocal(ClientContext &context) {
673
690
  config.print_progress_bar = ClientConfig().print_progress_bar;
674
691
  }
675
692
 
676
- Value EnableProgressBarPrintSetting::GetSetting(ClientContext &context) {
693
+ Value EnableProgressBarPrintSetting::GetSetting(const ClientContext &context) {
677
694
  return Value::BOOLEAN(ClientConfig::GetConfig(context).print_progress_bar);
678
695
  }
679
696
 
@@ -688,7 +705,7 @@ void ErrorsAsJsonSetting::SetLocal(ClientContext &context, const Value &input) {
688
705
  ClientConfig::GetConfig(context).errors_as_json = BooleanValue::Get(input);
689
706
  }
690
707
 
691
- Value ErrorsAsJsonSetting::GetSetting(ClientContext &context) {
708
+ Value ErrorsAsJsonSetting::GetSetting(const ClientContext &context) {
692
709
  return Value::BOOLEAN(ClientConfig::GetConfig(context).errors_as_json ? 1 : 0);
693
710
  }
694
711
 
@@ -713,7 +730,7 @@ void ExplainOutputSetting::SetLocal(ClientContext &context, const Value &input)
713
730
  }
714
731
  }
715
732
 
716
- Value ExplainOutputSetting::GetSetting(ClientContext &context) {
733
+ Value ExplainOutputSetting::GetSetting(const ClientContext &context) {
717
734
  switch (ClientConfig::GetConfig(context).explain_output_type) {
718
735
  case ExplainOutputType::ALL:
719
736
  return "all";
@@ -730,7 +747,6 @@ Value ExplainOutputSetting::GetSetting(ClientContext &context) {
730
747
  // Extension Directory Setting
731
748
  //===--------------------------------------------------------------------===//
732
749
  void ExtensionDirectorySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) {
733
- auto new_directory = input.ToString();
734
750
  config.options.extension_directory = input.ToString();
735
751
  }
736
752
 
@@ -738,7 +754,7 @@ void ExtensionDirectorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &conf
738
754
  config.options.extension_directory = DBConfig().options.extension_directory;
739
755
  }
740
756
 
741
- Value ExtensionDirectorySetting::GetSetting(ClientContext &context) {
757
+ Value ExtensionDirectorySetting::GetSetting(const ClientContext &context) {
742
758
  return Value(DBConfig::GetConfig(context).options.extension_directory);
743
759
  }
744
760
 
@@ -765,7 +781,7 @@ void ExternalThreadsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config)
765
781
  config.options.external_threads = new_external_threads;
766
782
  }
767
783
 
768
- Value ExternalThreadsSetting::GetSetting(ClientContext &context) {
784
+ Value ExternalThreadsSetting::GetSetting(const ClientContext &context) {
769
785
  auto &config = DBConfig::GetConfig(context);
770
786
  return Value::BIGINT(config.options.external_threads);
771
787
  }
@@ -784,7 +800,7 @@ void FileSearchPathSetting::SetLocal(ClientContext &context, const Value &input)
784
800
  client_data.file_search_path = parameter;
785
801
  }
786
802
 
787
- Value FileSearchPathSetting::GetSetting(ClientContext &context) {
803
+ Value FileSearchPathSetting::GetSetting(const ClientContext &context) {
788
804
  auto &client_data = ClientData::Get(context);
789
805
  return Value(client_data.file_search_path);
790
806
  }
@@ -814,7 +830,7 @@ void ForceCompressionSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config
814
830
  config.options.force_compression = DBConfig().options.force_compression;
815
831
  }
816
832
 
817
- Value ForceCompressionSetting::GetSetting(ClientContext &context) {
833
+ Value ForceCompressionSetting::GetSetting(const ClientContext &context) {
818
834
  auto &config = DBConfig::GetConfig(*context.db);
819
835
  return CompressionTypeToString(config.options.force_compression);
820
836
  }
@@ -836,7 +852,7 @@ void ForceBitpackingModeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &con
836
852
  config.options.force_bitpacking_mode = DBConfig().options.force_bitpacking_mode;
837
853
  }
838
854
 
839
- Value ForceBitpackingModeSetting::GetSetting(ClientContext &context) {
855
+ Value ForceBitpackingModeSetting::GetSetting(const ClientContext &context) {
840
856
  return Value(BitpackingModeToString(context.db->config.options.force_bitpacking_mode));
841
857
  }
842
858
 
@@ -857,7 +873,7 @@ void HomeDirectorySetting::SetLocal(ClientContext &context, const Value &input)
857
873
  config.home_directory = input.IsNull() ? string() : input.ToString();
858
874
  }
859
875
 
860
- Value HomeDirectorySetting::GetSetting(ClientContext &context) {
876
+ Value HomeDirectorySetting::GetSetting(const ClientContext &context) {
861
877
  auto &config = ClientConfig::GetConfig(context);
862
878
  return Value(config.home_directory);
863
879
  }
@@ -874,7 +890,7 @@ void IntegerDivisionSetting::SetLocal(ClientContext &context, const Value &input
874
890
  config.integer_division = input.GetValue<bool>();
875
891
  }
876
892
 
877
- Value IntegerDivisionSetting::GetSetting(ClientContext &context) {
893
+ Value IntegerDivisionSetting::GetSetting(const ClientContext &context) {
878
894
  auto &config = ClientConfig::GetConfig(context);
879
895
  return Value(config.integer_division);
880
896
  }
@@ -900,7 +916,7 @@ void LogQueryPathSetting::SetLocal(ClientContext &context, const Value &input) {
900
916
  }
901
917
  }
902
918
 
903
- Value LogQueryPathSetting::GetSetting(ClientContext &context) {
919
+ Value LogQueryPathSetting::GetSetting(const ClientContext &context) {
904
920
  auto &client_data = ClientData::Get(context);
905
921
  return client_data.log_query_writer ? Value(client_data.log_query_writer->path) : Value();
906
922
  }
@@ -917,7 +933,7 @@ void LockConfigurationSetting::ResetGlobal(DatabaseInstance *db, DBConfig &confi
917
933
  config.options.lock_configuration = DBConfig().options.lock_configuration;
918
934
  }
919
935
 
920
- Value LockConfigurationSetting::GetSetting(ClientContext &context) {
936
+ Value LockConfigurationSetting::GetSetting(const ClientContext &context) {
921
937
  auto &config = DBConfig::GetConfig(context);
922
938
  return Value::BOOLEAN(config.options.lock_configuration);
923
939
  }
@@ -933,7 +949,7 @@ void ImmediateTransactionModeSetting::ResetGlobal(DatabaseInstance *db, DBConfig
933
949
  config.options.immediate_transaction_mode = DBConfig().options.immediate_transaction_mode;
934
950
  }
935
951
 
936
- Value ImmediateTransactionModeSetting::GetSetting(ClientContext &context) {
952
+ Value ImmediateTransactionModeSetting::GetSetting(const ClientContext &context) {
937
953
  auto &config = DBConfig::GetConfig(context);
938
954
  return Value::BOOLEAN(config.options.immediate_transaction_mode);
939
955
  }
@@ -949,7 +965,7 @@ void MaximumExpressionDepthSetting::SetLocal(ClientContext &context, const Value
949
965
  ClientConfig::GetConfig(context).max_expression_depth = input.GetValue<uint64_t>();
950
966
  }
951
967
 
952
- Value MaximumExpressionDepthSetting::GetSetting(ClientContext &context) {
968
+ Value MaximumExpressionDepthSetting::GetSetting(const ClientContext &context) {
953
969
  return Value::UBIGINT(ClientConfig::GetConfig(context).max_expression_depth);
954
970
  }
955
971
 
@@ -967,7 +983,7 @@ void MaximumMemorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
967
983
  config.SetDefaultMaxMemory();
968
984
  }
969
985
 
970
- Value MaximumMemorySetting::GetSetting(ClientContext &context) {
986
+ Value MaximumMemorySetting::GetSetting(const ClientContext &context) {
971
987
  auto &config = DBConfig::GetConfig(context);
972
988
  return Value(StringUtil::BytesToHumanReadableString(config.options.maximum_memory));
973
989
  }
@@ -983,7 +999,7 @@ void OldImplicitCasting::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
983
999
  config.options.old_implicit_casting = DBConfig().options.old_implicit_casting;
984
1000
  }
985
1001
 
986
- Value OldImplicitCasting::GetSetting(ClientContext &context) {
1002
+ Value OldImplicitCasting::GetSetting(const ClientContext &context) {
987
1003
  auto &config = DBConfig::GetConfig(context);
988
1004
  return Value::BOOLEAN(config.options.old_implicit_casting);
989
1005
  }
@@ -1000,7 +1016,7 @@ void PartitionedWriteFlushThreshold::SetLocal(ClientContext &context, const Valu
1000
1016
  ClientConfig::GetConfig(context).partitioned_write_flush_threshold = input.GetValue<idx_t>();
1001
1017
  }
1002
1018
 
1003
- Value PartitionedWriteFlushThreshold::GetSetting(ClientContext &context) {
1019
+ Value PartitionedWriteFlushThreshold::GetSetting(const ClientContext &context) {
1004
1020
  return Value::BIGINT(ClientConfig::GetConfig(context).partitioned_write_flush_threshold);
1005
1021
  }
1006
1022
 
@@ -1015,7 +1031,7 @@ void PasswordSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
1015
1031
  // nop
1016
1032
  }
1017
1033
 
1018
- Value PasswordSetting::GetSetting(ClientContext &context) {
1034
+ Value PasswordSetting::GetSetting(const ClientContext &context) {
1019
1035
  return Value();
1020
1036
  }
1021
1037
 
@@ -1034,7 +1050,7 @@ void PerfectHashThresholdSetting::SetLocal(ClientContext &context, const Value &
1034
1050
  ClientConfig::GetConfig(context).perfect_ht_threshold = bits;
1035
1051
  }
1036
1052
 
1037
- Value PerfectHashThresholdSetting::GetSetting(ClientContext &context) {
1053
+ Value PerfectHashThresholdSetting::GetSetting(const ClientContext &context) {
1038
1054
  return Value::BIGINT(ClientConfig::GetConfig(context).perfect_ht_threshold);
1039
1055
  }
1040
1056
 
@@ -1049,7 +1065,7 @@ void PivotFilterThreshold::SetLocal(ClientContext &context, const Value &input)
1049
1065
  ClientConfig::GetConfig(context).pivot_filter_threshold = input.GetValue<uint64_t>();
1050
1066
  }
1051
1067
 
1052
- Value PivotFilterThreshold::GetSetting(ClientContext &context) {
1068
+ Value PivotFilterThreshold::GetSetting(const ClientContext &context) {
1053
1069
  return Value::BIGINT(ClientConfig::GetConfig(context).pivot_filter_threshold);
1054
1070
  }
1055
1071
 
@@ -1064,7 +1080,7 @@ void PivotLimitSetting::SetLocal(ClientContext &context, const Value &input) {
1064
1080
  ClientConfig::GetConfig(context).pivot_limit = input.GetValue<uint64_t>();
1065
1081
  }
1066
1082
 
1067
- Value PivotLimitSetting::GetSetting(ClientContext &context) {
1083
+ Value PivotLimitSetting::GetSetting(const ClientContext &context) {
1068
1084
  return Value::BIGINT(ClientConfig::GetConfig(context).pivot_limit);
1069
1085
  }
1070
1086
 
@@ -1079,7 +1095,7 @@ void PreserveIdentifierCase::SetLocal(ClientContext &context, const Value &input
1079
1095
  ClientConfig::GetConfig(context).preserve_identifier_case = input.GetValue<bool>();
1080
1096
  }
1081
1097
 
1082
- Value PreserveIdentifierCase::GetSetting(ClientContext &context) {
1098
+ Value PreserveIdentifierCase::GetSetting(const ClientContext &context) {
1083
1099
  return Value::BOOLEAN(ClientConfig::GetConfig(context).preserve_identifier_case);
1084
1100
  }
1085
1101
 
@@ -1094,7 +1110,7 @@ void PreserveInsertionOrder::ResetGlobal(DatabaseInstance *db, DBConfig &config)
1094
1110
  config.options.preserve_insertion_order = DBConfig().options.preserve_insertion_order;
1095
1111
  }
1096
1112
 
1097
- Value PreserveInsertionOrder::GetSetting(ClientContext &context) {
1113
+ Value PreserveInsertionOrder::GetSetting(const ClientContext &context) {
1098
1114
  auto &config = DBConfig::GetConfig(context);
1099
1115
  return Value::BOOLEAN(config.options.preserve_insertion_order);
1100
1116
  }
@@ -1112,7 +1128,7 @@ void ExportLargeBufferArrow::ResetGlobal(DatabaseInstance *db, DBConfig &config)
1112
1128
  config.options.arrow_offset_size = DBConfig().options.arrow_offset_size;
1113
1129
  }
1114
1130
 
1115
- Value ExportLargeBufferArrow::GetSetting(ClientContext &context) {
1131
+ Value ExportLargeBufferArrow::GetSetting(const ClientContext &context) {
1116
1132
  auto &config = DBConfig::GetConfig(context);
1117
1133
  bool export_large_buffers_arrow = config.options.arrow_offset_size == ArrowOffsetSize::LARGE;
1118
1134
  return Value::BOOLEAN(export_large_buffers_arrow);
@@ -1131,7 +1147,7 @@ void ProfileOutputSetting::SetLocal(ClientContext &context, const Value &input)
1131
1147
  config.profiler_save_location = parameter;
1132
1148
  }
1133
1149
 
1134
- Value ProfileOutputSetting::GetSetting(ClientContext &context) {
1150
+ Value ProfileOutputSetting::GetSetting(const ClientContext &context) {
1135
1151
  auto &config = ClientConfig::GetConfig(context);
1136
1152
  return Value(config.profiler_save_location);
1137
1153
  }
@@ -1161,7 +1177,7 @@ void ProfilingModeSetting::SetLocal(ClientContext &context, const Value &input)
1161
1177
  }
1162
1178
  }
1163
1179
 
1164
- Value ProfilingModeSetting::GetSetting(ClientContext &context) {
1180
+ Value ProfilingModeSetting::GetSetting(const ClientContext &context) {
1165
1181
  auto &config = ClientConfig::GetConfig(context);
1166
1182
  if (!config.enable_profiler) {
1167
1183
  return Value();
@@ -1186,7 +1202,7 @@ void ProgressBarTimeSetting::SetLocal(ClientContext &context, const Value &input
1186
1202
  config.enable_progress_bar = true;
1187
1203
  }
1188
1204
 
1189
- Value ProgressBarTimeSetting::GetSetting(ClientContext &context) {
1205
+ Value ProgressBarTimeSetting::GetSetting(const ClientContext &context) {
1190
1206
  return Value::BIGINT(ClientConfig::GetConfig(context).wait_time);
1191
1207
  }
1192
1208
 
@@ -1205,7 +1221,7 @@ void SchemaSetting::SetLocal(ClientContext &context, const Value &input) {
1205
1221
  client_data.catalog_search_path->Set(CatalogSearchEntry::Parse(parameter), CatalogSetPathType::SET_SCHEMA);
1206
1222
  }
1207
1223
 
1208
- Value SchemaSetting::GetSetting(ClientContext &context) {
1224
+ Value SchemaSetting::GetSetting(const ClientContext &context) {
1209
1225
  auto &client_data = ClientData::Get(context);
1210
1226
  return client_data.catalog_search_path->GetDefault().schema;
1211
1227
  }
@@ -1225,7 +1241,7 @@ void SearchPathSetting::SetLocal(ClientContext &context, const Value &input) {
1225
1241
  client_data.catalog_search_path->Set(CatalogSearchEntry::ParseList(parameter), CatalogSetPathType::SET_SCHEMAS);
1226
1242
  }
1227
1243
 
1228
- Value SearchPathSetting::GetSetting(ClientContext &context) {
1244
+ Value SearchPathSetting::GetSetting(const ClientContext &context) {
1229
1245
  auto &client_data = ClientData::Get(context);
1230
1246
  auto &set_paths = client_data.catalog_search_path->GetSetPaths();
1231
1247
  return Value(CatalogSearchEntry::ListToString(set_paths));
@@ -1242,7 +1258,7 @@ void SecretDirectorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config)
1242
1258
  config.secret_manager->ResetPersistentSecretPath();
1243
1259
  }
1244
1260
 
1245
- Value SecretDirectorySetting::GetSetting(ClientContext &context) {
1261
+ Value SecretDirectorySetting::GetSetting(const ClientContext &context) {
1246
1262
  auto &config = DBConfig::GetConfig(context);
1247
1263
  return config.secret_manager->PersistentSecretPath();
1248
1264
  }
@@ -1268,7 +1284,7 @@ void TempDirectorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
1268
1284
  }
1269
1285
  }
1270
1286
 
1271
- Value TempDirectorySetting::GetSetting(ClientContext &context) {
1287
+ Value TempDirectorySetting::GetSetting(const ClientContext &context) {
1272
1288
  auto &buffer_manager = BufferManager::GetBufferManager(context);
1273
1289
  return Value(buffer_manager.GetTemporaryDirectory());
1274
1290
  }
@@ -1296,7 +1312,7 @@ void ThreadsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
1296
1312
  config.options.maximum_threads = new_maximum_threads;
1297
1313
  }
1298
1314
 
1299
- Value ThreadsSetting::GetSetting(ClientContext &context) {
1315
+ Value ThreadsSetting::GetSetting(const ClientContext &context) {
1300
1316
  auto &config = DBConfig::GetConfig(context);
1301
1317
  return Value::BIGINT(config.options.maximum_threads);
1302
1318
  }
@@ -1312,7 +1328,7 @@ void UsernameSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
1312
1328
  // nop
1313
1329
  }
1314
1330
 
1315
- Value UsernameSetting::GetSetting(ClientContext &context) {
1331
+ Value UsernameSetting::GetSetting(const ClientContext &context) {
1316
1332
  return Value();
1317
1333
  }
1318
1334
 
@@ -1333,7 +1349,7 @@ void FlushAllocatorSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config)
1333
1349
  }
1334
1350
  }
1335
1351
 
1336
- Value FlushAllocatorSetting::GetSetting(ClientContext &context) {
1352
+ Value FlushAllocatorSetting::GetSetting(const ClientContext &context) {
1337
1353
  auto &config = DBConfig::GetConfig(context);
1338
1354
  return Value(StringUtil::BytesToHumanReadableString(config.options.allocator_flush_threshold));
1339
1355
  }
@@ -1357,7 +1373,7 @@ void DuckDBApiSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) {
1357
1373
  config.options.duckdb_api = GetDefaultUserAgent();
1358
1374
  }
1359
1375
 
1360
- Value DuckDBApiSetting::GetSetting(ClientContext &context) {
1376
+ Value DuckDBApiSetting::GetSetting(const ClientContext &context) {
1361
1377
  auto &config = DBConfig::GetConfig(context);
1362
1378
  return Value(config.options.duckdb_api);
1363
1379
  }
@@ -1382,7 +1398,7 @@ void CustomUserAgentSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config)
1382
1398
  config.options.custom_user_agent = DBConfig().options.custom_user_agent;
1383
1399
  }
1384
1400
 
1385
- Value CustomUserAgentSetting::GetSetting(ClientContext &context) {
1401
+ Value CustomUserAgentSetting::GetSetting(const ClientContext &context) {
1386
1402
  auto &config = DBConfig::GetConfig(context);
1387
1403
  return Value(config.options.custom_user_agent);
1388
1404
  }
@@ -1,4 +1,5 @@
1
- #include "duckdb/optimizer/column_lifetime_optimizer.hpp"
1
+ #include "duckdb/optimizer/column_lifetime_analyzer.hpp"
2
+
2
3
  #include "duckdb/planner/expression/bound_columnref_expression.hpp"
3
4
  #include "duckdb/planner/operator/logical_comparison_join.hpp"
4
5
  #include "duckdb/planner/operator/logical_filter.hpp"
@@ -139,6 +140,12 @@ void ColumnLifetimeAnalyzer::VisitOperator(LogicalOperator &op) {
139
140
 
140
141
  // then generate the projection map
141
142
  GenerateProjectionMap(op.children[0]->GetColumnBindings(), unused_bindings, filter.projection_map);
143
+ auto bindings = filter.GetColumnBindings();
144
+
145
+ if (bindings.empty()) {
146
+ return;
147
+ }
148
+
142
149
  return;
143
150
  }
144
151
  default:
@@ -7,6 +7,9 @@ namespace duckdb {
7
7
 
8
8
  void CompressedMaterialization::CompressAggregate(unique_ptr<LogicalOperator> &op) {
9
9
  auto &aggregate = op->Cast<LogicalAggregate>();
10
+ if (aggregate.grouping_sets.size() > 1) {
11
+ return; // FIXME: we should be able to compress here but for some reason the NULL statistics ain't right
12
+ }
10
13
  auto &groups = aggregate.groups;
11
14
  column_binding_set_t group_binding_set;
12
15
  for (const auto &group : groups) {