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
@@ -53,10 +53,11 @@
53
53
  #include "duckdb/common/enums/vector_type.hpp"
54
54
  #include "duckdb/common/enums/wal_type.hpp"
55
55
  #include "duckdb/common/enums/window_aggregation_mode.hpp"
56
+ #include "duckdb/common/exception.hpp"
56
57
  #include "duckdb/common/exception_format_value.hpp"
57
58
  #include "duckdb/common/extra_type_info.hpp"
58
59
  #include "duckdb/common/file_buffer.hpp"
59
- #include "duckdb/common/file_system.hpp"
60
+ #include "duckdb/common/file_open_flags.hpp"
60
61
  #include "duckdb/common/printer.hpp"
61
62
  #include "duckdb/common/sort/partition_state.hpp"
62
63
  #include "duckdb/common/types.hpp"
@@ -81,11 +82,14 @@
81
82
  #include "duckdb/function/scalar/compressed_materialization_functions.hpp"
82
83
  #include "duckdb/function/scalar/strftime_format.hpp"
83
84
  #include "duckdb/function/table/arrow/arrow_duck_schema.hpp"
85
+ #include "duckdb/function/table_function.hpp"
84
86
  #include "duckdb/main/appender.hpp"
85
87
  #include "duckdb/main/capi/capi_internal.hpp"
88
+ #include "duckdb/main/client_properties.hpp"
86
89
  #include "duckdb/main/config.hpp"
87
90
  #include "duckdb/main/error_manager.hpp"
88
91
  #include "duckdb/main/extension_helper.hpp"
92
+ #include "duckdb/main/external_dependencies.hpp"
89
93
  #include "duckdb/main/query_result.hpp"
90
94
  #include "duckdb/main/secret/secret.hpp"
91
95
  #include "duckdb/main/settings.hpp"
@@ -544,6 +548,29 @@ ArrowDateTimeType EnumUtil::FromString<ArrowDateTimeType>(const char *value) {
544
548
  throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
545
549
  }
546
550
 
551
+ template<>
552
+ const char* EnumUtil::ToChars<ArrowOffsetSize>(ArrowOffsetSize value) {
553
+ switch(value) {
554
+ case ArrowOffsetSize::REGULAR:
555
+ return "REGULAR";
556
+ case ArrowOffsetSize::LARGE:
557
+ return "LARGE";
558
+ default:
559
+ throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented", value));
560
+ }
561
+ }
562
+
563
+ template<>
564
+ ArrowOffsetSize EnumUtil::FromString<ArrowOffsetSize>(const char *value) {
565
+ if (StringUtil::Equals(value, "REGULAR")) {
566
+ return ArrowOffsetSize::REGULAR;
567
+ }
568
+ if (StringUtil::Equals(value, "LARGE")) {
569
+ return ArrowOffsetSize::LARGE;
570
+ }
571
+ throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
572
+ }
573
+
547
574
  template<>
548
575
  const char* EnumUtil::ToChars<ArrowVariableSizeType>(ArrowVariableSizeType value) {
549
576
  switch(value) {
@@ -1630,6 +1657,229 @@ ExceptionFormatValueType EnumUtil::FromString<ExceptionFormatValueType>(const ch
1630
1657
  throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
1631
1658
  }
1632
1659
 
1660
+ template<>
1661
+ const char* EnumUtil::ToChars<ExceptionType>(ExceptionType value) {
1662
+ switch(value) {
1663
+ case ExceptionType::INVALID:
1664
+ return "INVALID";
1665
+ case ExceptionType::OUT_OF_RANGE:
1666
+ return "OUT_OF_RANGE";
1667
+ case ExceptionType::CONVERSION:
1668
+ return "CONVERSION";
1669
+ case ExceptionType::UNKNOWN_TYPE:
1670
+ return "UNKNOWN_TYPE";
1671
+ case ExceptionType::DECIMAL:
1672
+ return "DECIMAL";
1673
+ case ExceptionType::MISMATCH_TYPE:
1674
+ return "MISMATCH_TYPE";
1675
+ case ExceptionType::DIVIDE_BY_ZERO:
1676
+ return "DIVIDE_BY_ZERO";
1677
+ case ExceptionType::OBJECT_SIZE:
1678
+ return "OBJECT_SIZE";
1679
+ case ExceptionType::INVALID_TYPE:
1680
+ return "INVALID_TYPE";
1681
+ case ExceptionType::SERIALIZATION:
1682
+ return "SERIALIZATION";
1683
+ case ExceptionType::TRANSACTION:
1684
+ return "TRANSACTION";
1685
+ case ExceptionType::NOT_IMPLEMENTED:
1686
+ return "NOT_IMPLEMENTED";
1687
+ case ExceptionType::EXPRESSION:
1688
+ return "EXPRESSION";
1689
+ case ExceptionType::CATALOG:
1690
+ return "CATALOG";
1691
+ case ExceptionType::PARSER:
1692
+ return "PARSER";
1693
+ case ExceptionType::PLANNER:
1694
+ return "PLANNER";
1695
+ case ExceptionType::SCHEDULER:
1696
+ return "SCHEDULER";
1697
+ case ExceptionType::EXECUTOR:
1698
+ return "EXECUTOR";
1699
+ case ExceptionType::CONSTRAINT:
1700
+ return "CONSTRAINT";
1701
+ case ExceptionType::INDEX:
1702
+ return "INDEX";
1703
+ case ExceptionType::STAT:
1704
+ return "STAT";
1705
+ case ExceptionType::CONNECTION:
1706
+ return "CONNECTION";
1707
+ case ExceptionType::SYNTAX:
1708
+ return "SYNTAX";
1709
+ case ExceptionType::SETTINGS:
1710
+ return "SETTINGS";
1711
+ case ExceptionType::BINDER:
1712
+ return "BINDER";
1713
+ case ExceptionType::NETWORK:
1714
+ return "NETWORK";
1715
+ case ExceptionType::OPTIMIZER:
1716
+ return "OPTIMIZER";
1717
+ case ExceptionType::NULL_POINTER:
1718
+ return "NULL_POINTER";
1719
+ case ExceptionType::IO:
1720
+ return "IO";
1721
+ case ExceptionType::INTERRUPT:
1722
+ return "INTERRUPT";
1723
+ case ExceptionType::FATAL:
1724
+ return "FATAL";
1725
+ case ExceptionType::INTERNAL:
1726
+ return "INTERNAL";
1727
+ case ExceptionType::INVALID_INPUT:
1728
+ return "INVALID_INPUT";
1729
+ case ExceptionType::OUT_OF_MEMORY:
1730
+ return "OUT_OF_MEMORY";
1731
+ case ExceptionType::PERMISSION:
1732
+ return "PERMISSION";
1733
+ case ExceptionType::PARAMETER_NOT_RESOLVED:
1734
+ return "PARAMETER_NOT_RESOLVED";
1735
+ case ExceptionType::PARAMETER_NOT_ALLOWED:
1736
+ return "PARAMETER_NOT_ALLOWED";
1737
+ case ExceptionType::DEPENDENCY:
1738
+ return "DEPENDENCY";
1739
+ case ExceptionType::HTTP:
1740
+ return "HTTP";
1741
+ case ExceptionType::MISSING_EXTENSION:
1742
+ return "MISSING_EXTENSION";
1743
+ case ExceptionType::AUTOLOAD:
1744
+ return "AUTOLOAD";
1745
+ case ExceptionType::SEQUENCE:
1746
+ return "SEQUENCE";
1747
+ default:
1748
+ throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented", value));
1749
+ }
1750
+ }
1751
+
1752
+ template<>
1753
+ ExceptionType EnumUtil::FromString<ExceptionType>(const char *value) {
1754
+ if (StringUtil::Equals(value, "INVALID")) {
1755
+ return ExceptionType::INVALID;
1756
+ }
1757
+ if (StringUtil::Equals(value, "OUT_OF_RANGE")) {
1758
+ return ExceptionType::OUT_OF_RANGE;
1759
+ }
1760
+ if (StringUtil::Equals(value, "CONVERSION")) {
1761
+ return ExceptionType::CONVERSION;
1762
+ }
1763
+ if (StringUtil::Equals(value, "UNKNOWN_TYPE")) {
1764
+ return ExceptionType::UNKNOWN_TYPE;
1765
+ }
1766
+ if (StringUtil::Equals(value, "DECIMAL")) {
1767
+ return ExceptionType::DECIMAL;
1768
+ }
1769
+ if (StringUtil::Equals(value, "MISMATCH_TYPE")) {
1770
+ return ExceptionType::MISMATCH_TYPE;
1771
+ }
1772
+ if (StringUtil::Equals(value, "DIVIDE_BY_ZERO")) {
1773
+ return ExceptionType::DIVIDE_BY_ZERO;
1774
+ }
1775
+ if (StringUtil::Equals(value, "OBJECT_SIZE")) {
1776
+ return ExceptionType::OBJECT_SIZE;
1777
+ }
1778
+ if (StringUtil::Equals(value, "INVALID_TYPE")) {
1779
+ return ExceptionType::INVALID_TYPE;
1780
+ }
1781
+ if (StringUtil::Equals(value, "SERIALIZATION")) {
1782
+ return ExceptionType::SERIALIZATION;
1783
+ }
1784
+ if (StringUtil::Equals(value, "TRANSACTION")) {
1785
+ return ExceptionType::TRANSACTION;
1786
+ }
1787
+ if (StringUtil::Equals(value, "NOT_IMPLEMENTED")) {
1788
+ return ExceptionType::NOT_IMPLEMENTED;
1789
+ }
1790
+ if (StringUtil::Equals(value, "EXPRESSION")) {
1791
+ return ExceptionType::EXPRESSION;
1792
+ }
1793
+ if (StringUtil::Equals(value, "CATALOG")) {
1794
+ return ExceptionType::CATALOG;
1795
+ }
1796
+ if (StringUtil::Equals(value, "PARSER")) {
1797
+ return ExceptionType::PARSER;
1798
+ }
1799
+ if (StringUtil::Equals(value, "PLANNER")) {
1800
+ return ExceptionType::PLANNER;
1801
+ }
1802
+ if (StringUtil::Equals(value, "SCHEDULER")) {
1803
+ return ExceptionType::SCHEDULER;
1804
+ }
1805
+ if (StringUtil::Equals(value, "EXECUTOR")) {
1806
+ return ExceptionType::EXECUTOR;
1807
+ }
1808
+ if (StringUtil::Equals(value, "CONSTRAINT")) {
1809
+ return ExceptionType::CONSTRAINT;
1810
+ }
1811
+ if (StringUtil::Equals(value, "INDEX")) {
1812
+ return ExceptionType::INDEX;
1813
+ }
1814
+ if (StringUtil::Equals(value, "STAT")) {
1815
+ return ExceptionType::STAT;
1816
+ }
1817
+ if (StringUtil::Equals(value, "CONNECTION")) {
1818
+ return ExceptionType::CONNECTION;
1819
+ }
1820
+ if (StringUtil::Equals(value, "SYNTAX")) {
1821
+ return ExceptionType::SYNTAX;
1822
+ }
1823
+ if (StringUtil::Equals(value, "SETTINGS")) {
1824
+ return ExceptionType::SETTINGS;
1825
+ }
1826
+ if (StringUtil::Equals(value, "BINDER")) {
1827
+ return ExceptionType::BINDER;
1828
+ }
1829
+ if (StringUtil::Equals(value, "NETWORK")) {
1830
+ return ExceptionType::NETWORK;
1831
+ }
1832
+ if (StringUtil::Equals(value, "OPTIMIZER")) {
1833
+ return ExceptionType::OPTIMIZER;
1834
+ }
1835
+ if (StringUtil::Equals(value, "NULL_POINTER")) {
1836
+ return ExceptionType::NULL_POINTER;
1837
+ }
1838
+ if (StringUtil::Equals(value, "IO")) {
1839
+ return ExceptionType::IO;
1840
+ }
1841
+ if (StringUtil::Equals(value, "INTERRUPT")) {
1842
+ return ExceptionType::INTERRUPT;
1843
+ }
1844
+ if (StringUtil::Equals(value, "FATAL")) {
1845
+ return ExceptionType::FATAL;
1846
+ }
1847
+ if (StringUtil::Equals(value, "INTERNAL")) {
1848
+ return ExceptionType::INTERNAL;
1849
+ }
1850
+ if (StringUtil::Equals(value, "INVALID_INPUT")) {
1851
+ return ExceptionType::INVALID_INPUT;
1852
+ }
1853
+ if (StringUtil::Equals(value, "OUT_OF_MEMORY")) {
1854
+ return ExceptionType::OUT_OF_MEMORY;
1855
+ }
1856
+ if (StringUtil::Equals(value, "PERMISSION")) {
1857
+ return ExceptionType::PERMISSION;
1858
+ }
1859
+ if (StringUtil::Equals(value, "PARAMETER_NOT_RESOLVED")) {
1860
+ return ExceptionType::PARAMETER_NOT_RESOLVED;
1861
+ }
1862
+ if (StringUtil::Equals(value, "PARAMETER_NOT_ALLOWED")) {
1863
+ return ExceptionType::PARAMETER_NOT_ALLOWED;
1864
+ }
1865
+ if (StringUtil::Equals(value, "DEPENDENCY")) {
1866
+ return ExceptionType::DEPENDENCY;
1867
+ }
1868
+ if (StringUtil::Equals(value, "HTTP")) {
1869
+ return ExceptionType::HTTP;
1870
+ }
1871
+ if (StringUtil::Equals(value, "MISSING_EXTENSION")) {
1872
+ return ExceptionType::MISSING_EXTENSION;
1873
+ }
1874
+ if (StringUtil::Equals(value, "AUTOLOAD")) {
1875
+ return ExceptionType::AUTOLOAD;
1876
+ }
1877
+ if (StringUtil::Equals(value, "SEQUENCE")) {
1878
+ return ExceptionType::SEQUENCE;
1879
+ }
1880
+ throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
1881
+ }
1882
+
1633
1883
  template<>
1634
1884
  const char* EnumUtil::ToChars<ExplainOutputType>(ExplainOutputType value) {
1635
1885
  switch(value) {
@@ -1762,6 +2012,8 @@ const char* EnumUtil::ToChars<ExpressionClass>(ExpressionClass value) {
1762
2012
  return "BOUND_LAMBDA_REF";
1763
2013
  case ExpressionClass::BOUND_EXPRESSION:
1764
2014
  return "BOUND_EXPRESSION";
2015
+ case ExpressionClass::BOUND_EXPANDED:
2016
+ return "BOUND_EXPANDED";
1765
2017
  default:
1766
2018
  throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented", value));
1767
2019
  }
@@ -1886,6 +2138,9 @@ ExpressionClass EnumUtil::FromString<ExpressionClass>(const char *value) {
1886
2138
  if (StringUtil::Equals(value, "BOUND_EXPRESSION")) {
1887
2139
  return ExpressionClass::BOUND_EXPRESSION;
1888
2140
  }
2141
+ if (StringUtil::Equals(value, "BOUND_EXPANDED")) {
2142
+ return ExpressionClass::BOUND_EXPANDED;
2143
+ }
1889
2144
  throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
1890
2145
  }
1891
2146
 
@@ -2028,6 +2283,8 @@ const char* EnumUtil::ToChars<ExpressionType>(ExpressionType value) {
2028
2283
  return "POSITIONAL_REFERENCE";
2029
2284
  case ExpressionType::BOUND_LAMBDA_REF:
2030
2285
  return "BOUND_LAMBDA_REF";
2286
+ case ExpressionType::BOUND_EXPANDED:
2287
+ return "BOUND_EXPANDED";
2031
2288
  default:
2032
2289
  throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented", value));
2033
2290
  }
@@ -2239,6 +2496,9 @@ ExpressionType EnumUtil::FromString<ExpressionType>(const char *value) {
2239
2496
  if (StringUtil::Equals(value, "BOUND_LAMBDA_REF")) {
2240
2497
  return ExpressionType::BOUND_LAMBDA_REF;
2241
2498
  }
2499
+ if (StringUtil::Equals(value, "BOUND_EXPANDED")) {
2500
+ return ExpressionType::BOUND_EXPANDED;
2501
+ }
2242
2502
  throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
2243
2503
  }
2244
2504
 
@@ -2270,6 +2530,24 @@ ExtensionLoadResult EnumUtil::FromString<ExtensionLoadResult>(const char *value)
2270
2530
  throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
2271
2531
  }
2272
2532
 
2533
+ template<>
2534
+ const char* EnumUtil::ToChars<ExternalDependenciesType>(ExternalDependenciesType value) {
2535
+ switch(value) {
2536
+ case ExternalDependenciesType::PYTHON_DEPENDENCY:
2537
+ return "PYTHON_DEPENDENCY";
2538
+ default:
2539
+ throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented", value));
2540
+ }
2541
+ }
2542
+
2543
+ template<>
2544
+ ExternalDependenciesType EnumUtil::FromString<ExternalDependenciesType>(const char *value) {
2545
+ if (StringUtil::Equals(value, "PYTHON_DEPENDENCY")) {
2546
+ return ExternalDependenciesType::PYTHON_DEPENDENCY;
2547
+ }
2548
+ throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
2549
+ }
2550
+
2273
2551
  template<>
2274
2552
  const char* EnumUtil::ToChars<ExtraDropInfoType>(ExtraDropInfoType value) {
2275
2553
  switch(value) {
@@ -4119,6 +4397,8 @@ const char* EnumUtil::ToChars<ParseInfoType>(ParseInfoType value) {
4119
4397
  return "COMMENT_ON_INFO";
4120
4398
  case ParseInfoType::COMMENT_ON_COLUMN_INFO:
4121
4399
  return "COMMENT_ON_COLUMN_INFO";
4400
+ case ParseInfoType::COPY_DATABASE_INFO:
4401
+ return "COPY_DATABASE_INFO";
4122
4402
  default:
4123
4403
  throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented", value));
4124
4404
  }
@@ -4171,6 +4451,9 @@ ParseInfoType EnumUtil::FromString<ParseInfoType>(const char *value) {
4171
4451
  if (StringUtil::Equals(value, "COMMENT_ON_COLUMN_INFO")) {
4172
4452
  return ParseInfoType::COMMENT_ON_COLUMN_INFO;
4173
4453
  }
4454
+ if (StringUtil::Equals(value, "COPY_DATABASE_INFO")) {
4455
+ return ParseInfoType::COPY_DATABASE_INFO;
4456
+ }
4174
4457
  throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
4175
4458
  }
4176
4459
 
@@ -5301,6 +5584,29 @@ SampleMethod EnumUtil::FromString<SampleMethod>(const char *value) {
5301
5584
  throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
5302
5585
  }
5303
5586
 
5587
+ template<>
5588
+ const char* EnumUtil::ToChars<ScanType>(ScanType value) {
5589
+ switch(value) {
5590
+ case ScanType::TABLE:
5591
+ return "TABLE";
5592
+ case ScanType::PARQUET:
5593
+ return "PARQUET";
5594
+ default:
5595
+ throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented", value));
5596
+ }
5597
+ }
5598
+
5599
+ template<>
5600
+ ScanType EnumUtil::FromString<ScanType>(const char *value) {
5601
+ if (StringUtil::Equals(value, "TABLE")) {
5602
+ return ScanType::TABLE;
5603
+ }
5604
+ if (StringUtil::Equals(value, "PARQUET")) {
5605
+ return ScanType::PARQUET;
5606
+ }
5607
+ throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
5608
+ }
5609
+
5304
5610
  template<>
5305
5611
  const char* EnumUtil::ToChars<SecretDisplayType>(SecretDisplayType value) {
5306
5612
  switch(value) {
@@ -141,6 +141,8 @@ string ExpressionTypeToString(ExpressionType type) {
141
141
  return "LAMBDA";
142
142
  case ExpressionType::ARROW:
143
143
  return "ARROW";
144
+ case ExpressionType::BOUND_EXPANDED:
145
+ return "BOUND_EXPANDED";
144
146
  case ExpressionType::INVALID:
145
147
  break;
146
148
  }
@@ -224,6 +226,8 @@ string ExpressionClassToString(ExpressionClass type) {
224
226
  return "BOUND_LAMBDA";
225
227
  case ExpressionClass::BOUND_EXPRESSION:
226
228
  return "BOUND_EXPRESSION";
229
+ case ExpressionClass::BOUND_EXPANDED:
230
+ return "BOUND_EXPANDED";
227
231
  default:
228
232
  return "ExpressionClass::!!UNIMPLEMENTED_CASE!!";
229
233
  }
@@ -10,7 +10,7 @@ struct DefaultOptimizerType {
10
10
  OptimizerType type;
11
11
  };
12
12
 
13
- static DefaultOptimizerType internal_optimizer_types[] = {
13
+ static const DefaultOptimizerType internal_optimizer_types[] = {
14
14
  {"expression_rewriter", OptimizerType::EXPRESSION_REWRITER},
15
15
  {"filter_pullup", OptimizerType::FILTER_PULLUP},
16
16
  {"filter_pushdown", OptimizerType::FILTER_PUSHDOWN},
@@ -45,6 +45,41 @@ extern "C" WINBASEAPI BOOL WINAPI GetPhysicallyInstalledSystemMemory(PULONGLONG)
45
45
 
46
46
  namespace duckdb {
47
47
 
48
+ constexpr FileOpenFlags FileFlags::FILE_FLAGS_READ;
49
+ constexpr FileOpenFlags FileFlags::FILE_FLAGS_WRITE;
50
+ constexpr FileOpenFlags FileFlags::FILE_FLAGS_DIRECT_IO;
51
+ constexpr FileOpenFlags FileFlags::FILE_FLAGS_FILE_CREATE;
52
+ constexpr FileOpenFlags FileFlags::FILE_FLAGS_FILE_CREATE_NEW;
53
+ constexpr FileOpenFlags FileFlags::FILE_FLAGS_APPEND;
54
+ constexpr FileOpenFlags FileFlags::FILE_FLAGS_PRIVATE;
55
+ constexpr FileOpenFlags FileFlags::FILE_FLAGS_NULL_IF_NOT_EXISTS;
56
+ constexpr FileOpenFlags FileFlags::FILE_FLAGS_PARALLEL_ACCESS;
57
+
58
+ void FileOpenFlags::Verify() {
59
+ #ifdef DEBUG
60
+ bool is_read = flags & FileOpenFlags::FILE_FLAGS_READ;
61
+ bool is_write = flags & FileOpenFlags::FILE_FLAGS_WRITE;
62
+ bool is_create =
63
+ (flags & FileOpenFlags::FILE_FLAGS_FILE_CREATE) || (flags & FileOpenFlags::FILE_FLAGS_FILE_CREATE_NEW);
64
+ bool is_private = (flags & FileOpenFlags::FILE_FLAGS_PRIVATE);
65
+ bool null_if_not_exists = flags & FileOpenFlags::FILE_FLAGS_NULL_IF_NOT_EXISTS;
66
+
67
+ // require either READ or WRITE (or both)
68
+ D_ASSERT(is_read || is_write);
69
+ // CREATE/Append flags require writing
70
+ D_ASSERT(is_write || !(flags & FileOpenFlags::FILE_FLAGS_APPEND));
71
+ D_ASSERT(is_write || !(flags & FileOpenFlags::FILE_FLAGS_FILE_CREATE));
72
+ D_ASSERT(is_write || !(flags & FileOpenFlags::FILE_FLAGS_FILE_CREATE_NEW));
73
+ // cannot combine CREATE and CREATE_NEW flags
74
+ D_ASSERT(!(flags & FileOpenFlags::FILE_FLAGS_FILE_CREATE && flags & FileOpenFlags::FILE_FLAGS_FILE_CREATE_NEW));
75
+
76
+ // For is_private can only be set along with a create flag
77
+ D_ASSERT(!is_private || is_create);
78
+ // FILE_FLAGS_NULL_IF_NOT_EXISTS cannot be combined with CREATE/CREATE_NEW
79
+ D_ASSERT(!(null_if_not_exists && is_create));
80
+ #endif
81
+ }
82
+
48
83
  FileSystem::~FileSystem() {
49
84
  }
50
85
 
@@ -82,7 +117,7 @@ void FileSystem::SetWorkingDirectory(const string &path) {
82
117
  }
83
118
  }
84
119
 
85
- idx_t FileSystem::GetAvailableMemory() {
120
+ optional_idx FileSystem::GetAvailableMemory() {
86
121
  errno = 0;
87
122
 
88
123
  #ifdef __MVS__
@@ -93,7 +128,7 @@ idx_t FileSystem::GetAvailableMemory() {
93
128
  idx_t max_memory = MinValue<idx_t>((idx_t)sysconf(_SC_PHYS_PAGES) * (idx_t)sysconf(_SC_PAGESIZE), UINTPTR_MAX);
94
129
  #endif
95
130
  if (errno != 0) {
96
- return DConstants::INVALID_INDEX;
131
+ return optional_idx();
97
132
  }
98
133
  return max_memory;
99
134
  }
@@ -183,7 +218,7 @@ void FileSystem::SetWorkingDirectory(const string &path) {
183
218
  }
184
219
  }
185
220
 
186
- idx_t FileSystem::GetAvailableMemory() {
221
+ optional_idx FileSystem::GetAvailableMemory() {
187
222
  ULONGLONG available_memory_kb;
188
223
  if (GetPhysicallyInstalledSystemMemory(&available_memory_kb)) {
189
224
  return MinValue<idx_t>(available_memory_kb * 1000, UINTPTR_MAX);
@@ -195,7 +230,7 @@ idx_t FileSystem::GetAvailableMemory() {
195
230
  if (GlobalMemoryStatusEx(&mem_state)) {
196
231
  return MinValue<idx_t>(mem_state.ullTotalPhys, UINTPTR_MAX);
197
232
  }
198
- return DConstants::INVALID_INDEX;
233
+ return optional_idx();
199
234
  }
200
235
 
201
236
  string FileSystem::GetWorkingDirectory() {
@@ -286,8 +321,7 @@ string FileSystem::ExpandPath(const string &path) {
286
321
  }
287
322
 
288
323
  // LCOV_EXCL_START
289
- unique_ptr<FileHandle> FileSystem::OpenFile(const string &path, uint8_t flags, FileLockType lock,
290
- FileCompressionType compression, FileOpener *opener) {
324
+ unique_ptr<FileHandle> FileSystem::OpenFile(const string &path, FileOpenFlags flags, optional_ptr<FileOpener> opener) {
291
325
  throw NotImplementedException("%s: OpenFile is not implemented!", GetName());
292
326
  }
293
327
 
@@ -295,6 +329,11 @@ void FileSystem::Read(FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t
295
329
  throw NotImplementedException("%s: Read (with location) is not implemented!", GetName());
296
330
  }
297
331
 
332
+ bool FileSystem::Trim(FileHandle &handle, idx_t offset_bytes, idx_t length_bytes) {
333
+ // This is not a required method. Derived FileSystems may optionally override/implement.
334
+ return false;
335
+ }
336
+
298
337
  void FileSystem::Write(FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t location) {
299
338
  throw NotImplementedException("%s: Write (with location) is not implemented!", GetName());
300
339
  }
@@ -323,15 +362,15 @@ void FileSystem::Truncate(FileHandle &handle, int64_t new_size) {
323
362
  throw NotImplementedException("%s: Truncate is not implemented!", GetName());
324
363
  }
325
364
 
326
- bool FileSystem::DirectoryExists(const string &directory) {
365
+ bool FileSystem::DirectoryExists(const string &directory, optional_ptr<FileOpener> opener) {
327
366
  throw NotImplementedException("%s: DirectoryExists is not implemented!", GetName());
328
367
  }
329
368
 
330
- void FileSystem::CreateDirectory(const string &directory) {
369
+ void FileSystem::CreateDirectory(const string &directory, optional_ptr<FileOpener> opener) {
331
370
  throw NotImplementedException("%s: CreateDirectory is not implemented!", GetName());
332
371
  }
333
372
 
334
- void FileSystem::RemoveDirectory(const string &directory) {
373
+ void FileSystem::RemoveDirectory(const string &directory, optional_ptr<FileOpener> opener) {
335
374
  throw NotImplementedException("%s: RemoveDirectory is not implemented!", GetName());
336
375
  }
337
376
 
@@ -340,19 +379,19 @@ bool FileSystem::ListFiles(const string &directory, const std::function<void(con
340
379
  throw NotImplementedException("%s: ListFiles is not implemented!", GetName());
341
380
  }
342
381
 
343
- void FileSystem::MoveFile(const string &source, const string &target) {
382
+ void FileSystem::MoveFile(const string &source, const string &target, optional_ptr<FileOpener> opener) {
344
383
  throw NotImplementedException("%s: MoveFile is not implemented!", GetName());
345
384
  }
346
385
 
347
- bool FileSystem::FileExists(const string &filename) {
386
+ bool FileSystem::FileExists(const string &filename, optional_ptr<FileOpener> opener) {
348
387
  throw NotImplementedException("%s: FileExists is not implemented!", GetName());
349
388
  }
350
389
 
351
- bool FileSystem::IsPipe(const string &filename) {
390
+ bool FileSystem::IsPipe(const string &filename, optional_ptr<FileOpener> opener) {
352
391
  return false;
353
392
  }
354
393
 
355
- void FileSystem::RemoveFile(const string &filename) {
394
+ void FileSystem::RemoveFile(const string &filename, optional_ptr<FileOpener> opener) {
356
395
  throw NotImplementedException("%s: RemoveFile is not implemented!", GetName());
357
396
  }
358
397
 
@@ -458,6 +497,10 @@ bool FileSystem::CanSeek() {
458
497
  throw NotImplementedException("%s: CanSeek is not implemented!", GetName());
459
498
  }
460
499
 
500
+ bool FileSystem::IsManuallySet() {
501
+ return false;
502
+ }
503
+
461
504
  unique_ptr<FileHandle> FileSystem::OpenCompressedFile(unique_ptr<FileHandle> handle, bool write) {
462
505
  throw NotImplementedException("%s: OpenCompressedFile is not implemented!", GetName());
463
506
  }
@@ -477,6 +520,10 @@ int64_t FileHandle::Read(void *buffer, idx_t nr_bytes) {
477
520
  return file_system.Read(*this, buffer, nr_bytes);
478
521
  }
479
522
 
523
+ bool FileHandle::Trim(idx_t offset_bytes, idx_t length_bytes) {
524
+ return file_system.Trim(*this, offset_bytes, length_bytes);
525
+ }
526
+
480
527
  int64_t FileHandle::Write(void *buffer, idx_t nr_bytes) {
481
528
  return file_system.Write(*this, buffer, nr_bytes);
482
529
  }
@@ -7,34 +7,34 @@ void FilenamePattern::SetFilenamePattern(const string &pattern) {
7
7
  const string id_format {"{i}"};
8
8
  const string uuid_format {"{uuid}"};
9
9
 
10
- _base = pattern;
10
+ base = pattern;
11
11
 
12
- _pos = _base.find(id_format);
13
- if (_pos != string::npos) {
14
- _base = StringUtil::Replace(_base, id_format, "");
15
- _uuid = false;
12
+ pos = base.find(id_format);
13
+ if (pos != string::npos) {
14
+ base = StringUtil::Replace(base, id_format, "");
15
+ uuid = false;
16
16
  }
17
17
 
18
- _pos = _base.find(uuid_format);
19
- if (_pos != string::npos) {
20
- _base = StringUtil::Replace(_base, uuid_format, "");
21
- _uuid = true;
18
+ pos = base.find(uuid_format);
19
+ if (pos != string::npos) {
20
+ base = StringUtil::Replace(base, uuid_format, "");
21
+ uuid = true;
22
22
  }
23
23
 
24
- _pos = std::min(_pos, (idx_t)_base.length());
24
+ pos = std::min(pos, (idx_t)base.length());
25
25
  }
26
26
 
27
27
  string FilenamePattern::CreateFilename(FileSystem &fs, const string &path, const string &extension,
28
28
  idx_t offset) const {
29
- string result(_base);
29
+ string result(base);
30
30
  string replacement;
31
31
 
32
- if (_uuid) {
32
+ if (uuid) {
33
33
  replacement = UUID::ToString(UUID::GenerateRandomUUID());
34
34
  } else {
35
35
  replacement = std::to_string(offset);
36
36
  }
37
- result.insert(_pos, replacement);
37
+ result.insert(pos, replacement);
38
38
  return fs.JoinPath(path, result + "." + extension);
39
39
  }
40
40
 
@@ -92,7 +92,7 @@ MiniZStreamWrapper::~MiniZStreamWrapper() {
92
92
  }
93
93
  try {
94
94
  MiniZStreamWrapper::Close();
95
- } catch (...) {
95
+ } catch (...) { // NOLINT - cannot throw in exception
96
96
  }
97
97
  }
98
98
 
@@ -74,7 +74,7 @@ shared_ptr<HTTPState> HTTPState::TryGetState(ClientContext &context, bool create
74
74
  return http_state;
75
75
  }
76
76
 
77
- shared_ptr<HTTPState> HTTPState::TryGetState(FileOpener *opener, bool create_on_missing) {
77
+ shared_ptr<HTTPState> HTTPState::TryGetState(optional_ptr<FileOpener> opener, bool create_on_missing) {
78
78
  auto client_context = FileOpener::TryGetClientContext(opener);
79
79
  if (client_context) {
80
80
  return TryGetState(*client_context, create_on_missing);