duckdb 1.1.2-dev2.0 → 1.1.2-dev6.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 (289) hide show
  1. package/binding.gyp +4 -2
  2. package/package.json +1 -1
  3. package/src/duckdb/extension/icu/third_party/icu/common/putil.cpp +0 -5
  4. package/src/duckdb/extension/icu/third_party/icu/common/rbbiscan.cpp +1 -1
  5. package/src/duckdb/extension/icu/third_party/icu/common/rbbitblb.cpp +1 -1
  6. package/src/duckdb/extension/icu/third_party/icu/common/ucurr.cpp +1 -1
  7. package/src/duckdb/extension/icu/third_party/icu/common/uresbund.cpp +1 -1
  8. package/src/duckdb/extension/icu/third_party/icu/common/uresimp.h +31 -31
  9. package/src/duckdb/extension/icu/third_party/icu/common/ustring.cpp +1 -1
  10. package/src/duckdb/extension/icu/third_party/icu/common/uvector.cpp +1 -1
  11. package/src/duckdb/extension/icu/third_party/icu/i18n/coleitr.cpp +12 -12
  12. package/src/duckdb/extension/icu/third_party/icu/i18n/format.cpp +1 -1
  13. package/src/duckdb/extension/icu/third_party/icu/i18n/listformatter.cpp +4 -4
  14. package/src/duckdb/extension/icu/third_party/icu/i18n/number_decimalquantity.h +1 -1
  15. package/src/duckdb/extension/icu/third_party/icu/i18n/tzgnames.cpp +1 -1
  16. package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/coleitr.h +28 -28
  17. package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/format.h +7 -7
  18. package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucol.h +1 -1
  19. package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucoleitr.h +41 -41
  20. package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/umsg.h +41 -41
  21. package/src/duckdb/extension/icu/third_party/icu/i18n/usrchimp.h +3 -3
  22. package/src/duckdb/extension/json/include/json_common.hpp +1 -1
  23. package/src/duckdb/extension/json/json_functions/json_structure.cpp +13 -7
  24. package/src/duckdb/extension/parquet/column_writer.cpp +2 -1
  25. package/src/duckdb/extension/parquet/geo_parquet.cpp +24 -9
  26. package/src/duckdb/extension/parquet/include/geo_parquet.hpp +3 -1
  27. package/src/duckdb/extension/parquet/include/parquet_reader.hpp +1 -0
  28. package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +1 -1
  29. package/src/duckdb/extension/parquet/include/templated_column_reader.hpp +0 -4
  30. package/src/duckdb/extension/parquet/parquet_extension.cpp +20 -6
  31. package/src/duckdb/extension/parquet/parquet_reader.cpp +1 -2
  32. package/src/duckdb/extension/parquet/parquet_writer.cpp +1 -1
  33. package/src/duckdb/extension/parquet/serialize_parquet.cpp +0 -2
  34. package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +8 -1
  35. package/src/duckdb/src/catalog/default/default_functions.cpp +5 -5
  36. package/src/duckdb/src/common/allocator.cpp +3 -2
  37. package/src/duckdb/src/common/arrow/arrow_appender.cpp +1 -0
  38. package/src/duckdb/src/common/arrow/arrow_converter.cpp +11 -0
  39. package/src/duckdb/src/common/arrow/schema_metadata.cpp +6 -4
  40. package/src/duckdb/src/common/enum_util.cpp +33 -0
  41. package/src/duckdb/src/common/exception.cpp +3 -0
  42. package/src/duckdb/src/common/extra_type_info.cpp +1 -44
  43. package/src/duckdb/src/common/field_writer.cpp +97 -0
  44. package/src/duckdb/src/common/render_tree.cpp +7 -5
  45. package/src/duckdb/src/common/row_operations/row_match.cpp +359 -0
  46. package/src/duckdb/src/common/serializer/buffered_deserializer.cpp +27 -0
  47. package/src/duckdb/src/common/serializer/buffered_serializer.cpp +36 -0
  48. package/src/duckdb/src/common/serializer/format_serializer.cpp +15 -0
  49. package/src/duckdb/src/common/serializer.cpp +24 -0
  50. package/src/duckdb/src/common/sort/comparators.cpp +2 -2
  51. package/src/duckdb/src/common/types/bit.cpp +57 -34
  52. package/src/duckdb/src/common/types/data_chunk.cpp +32 -29
  53. package/src/duckdb/src/common/types/vector_cache.cpp +12 -6
  54. package/src/duckdb/src/common/vector_operations/comparison_operators.cpp +14 -0
  55. package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +20 -1
  56. package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +2 -2
  57. package/src/duckdb/src/core_functions/aggregate/holistic/approx_top_k.cpp +32 -7
  58. package/src/duckdb/src/core_functions/function_list.cpp +1 -2
  59. package/src/duckdb/src/core_functions/scalar/bit/bitstring.cpp +23 -5
  60. package/src/duckdb/src/core_functions/scalar/date/date_diff.cpp +12 -6
  61. package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +1 -1
  62. package/src/duckdb/src/execution/expression_executor/execute_between.cpp +4 -3
  63. package/src/duckdb/src/execution/expression_executor/execute_case.cpp +4 -3
  64. package/src/duckdb/src/execution/expression_executor/execute_cast.cpp +2 -1
  65. package/src/duckdb/src/execution/expression_executor/execute_comparison.cpp +3 -2
  66. package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +2 -1
  67. package/src/duckdb/src/execution/expression_executor/execute_function.cpp +2 -1
  68. package/src/duckdb/src/execution/expression_executor/execute_operator.cpp +3 -2
  69. package/src/duckdb/src/execution/expression_executor/execute_reference.cpp +1 -1
  70. package/src/duckdb/src/execution/expression_executor.cpp +9 -3
  71. package/src/duckdb/src/execution/expression_executor_state.cpp +11 -9
  72. package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +238 -0
  73. package/src/duckdb/src/execution/index/art/plan_art.cpp +94 -0
  74. package/src/duckdb/src/execution/index/index_type_set.cpp +4 -1
  75. package/src/duckdb/src/execution/join_hashtable.cpp +7 -8
  76. package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +6 -4
  77. package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp +4 -4
  78. package/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp +1 -1
  79. package/src/duckdb/src/execution/operator/csv_scanner/scanner/csv_schema.cpp +44 -5
  80. package/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +28 -24
  81. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +25 -26
  82. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +5 -3
  83. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp +4 -4
  84. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +2 -2
  85. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_refinement.cpp +1 -1
  86. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_replacement.cpp +1 -1
  87. package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine.cpp +1 -1
  88. package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp +2 -2
  89. package/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp +1 -1
  90. package/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp +1 -1
  91. package/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +73 -27
  92. package/src/duckdb/src/execution/operator/helper/physical_buffered_collector.cpp +1 -1
  93. package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +695 -0
  94. package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +1487 -0
  95. package/src/duckdb/src/execution/operator/persistent/csv_buffer.cpp +72 -0
  96. package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +158 -0
  97. package/src/duckdb/src/execution/operator/persistent/csv_reader_options.cpp +280 -0
  98. package/src/duckdb/src/execution/operator/persistent/parallel_csv_reader.cpp +666 -0
  99. package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +14 -4
  100. package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +207 -0
  101. package/src/duckdb/src/execution/partitionable_hashtable.cpp +207 -0
  102. package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +6 -1
  103. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +0 -4
  104. package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +14 -87
  105. package/src/duckdb/src/execution/physical_plan/plan_export.cpp +1 -1
  106. package/src/duckdb/src/execution/physical_plan/plan_get.cpp +1 -1
  107. package/src/duckdb/src/execution/reservoir_sample.cpp +1 -1
  108. package/src/duckdb/src/execution/window_executor.cpp +3 -3
  109. package/src/duckdb/src/function/pragma/pragma_queries.cpp +1 -1
  110. package/src/duckdb/src/function/scalar/strftime_format.cpp +1 -2
  111. package/src/duckdb/src/function/scalar/string/concat.cpp +118 -151
  112. package/src/duckdb/src/function/table/arrow.cpp +13 -0
  113. package/src/duckdb/src/function/table/arrow_conversion.cpp +12 -7
  114. package/src/duckdb/src/function/table/copy_csv.cpp +1 -1
  115. package/src/duckdb/src/function/table/read_csv.cpp +2 -30
  116. package/src/duckdb/src/function/table/sniff_csv.cpp +2 -1
  117. package/src/duckdb/src/function/table/system/duckdb_secrets.cpp +15 -7
  118. package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
  119. package/src/duckdb/src/include/duckdb/catalog/catalog_entry_retriever.hpp +1 -1
  120. package/src/duckdb/src/include/duckdb/common/atomic.hpp +13 -1
  121. package/src/duckdb/src/include/duckdb/common/bitpacking.hpp +3 -4
  122. package/src/duckdb/src/include/duckdb/common/enum_util.hpp +8 -0
  123. package/src/duckdb/src/include/duckdb/common/enums/metric_type.hpp +2 -0
  124. package/src/duckdb/src/include/duckdb/common/exception.hpp +10 -0
  125. package/src/duckdb/src/include/duckdb/common/extra_type_info/enum_type_info.hpp +53 -0
  126. package/src/duckdb/src/include/duckdb/common/insertion_order_preserving_map.hpp +5 -5
  127. package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +5 -0
  128. package/src/duckdb/src/include/duckdb/common/types/bit.hpp +36 -33
  129. package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +10 -13
  130. package/src/duckdb/src/include/duckdb/common/types/uhugeint.hpp +1 -1
  131. package/src/duckdb/src/include/duckdb/common/types/vector_cache.hpp +7 -5
  132. package/src/duckdb/src/include/duckdb/common/windows_undefs.hpp +2 -1
  133. package/src/duckdb/src/include/duckdb/core_functions/aggregate/minmax_n_helpers.hpp +2 -0
  134. package/src/duckdb/src/include/duckdb/core_functions/scalar/bit_functions.hpp +1 -1
  135. package/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp +0 -6
  136. package/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp +1 -1
  137. package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +3 -2
  138. package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +3 -0
  139. package/src/duckdb/src/include/duckdb/execution/index/index_type.hpp +16 -1
  140. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp +4 -4
  141. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp +4 -2
  142. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_schema.hpp +3 -2
  143. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp +91 -36
  144. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/sniff_result.hpp +36 -0
  145. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp +1 -1
  146. package/src/duckdb/src/include/duckdb/execution/operator/join/perfect_hash_join_executor.hpp +0 -1
  147. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_export.hpp +2 -5
  148. package/src/duckdb/src/include/duckdb/function/table_function.hpp +1 -1
  149. package/src/duckdb/src/include/duckdb/main/database.hpp +5 -0
  150. package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +1 -0
  151. package/src/duckdb/src/include/duckdb/main/profiling_info.hpp +20 -22
  152. package/src/duckdb/src/include/duckdb/main/query_profiler.hpp +7 -9
  153. package/src/duckdb/src/include/duckdb/main/secret/secret.hpp +8 -1
  154. package/src/duckdb/src/include/duckdb/main/table_description.hpp +14 -0
  155. package/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp +5 -5
  156. package/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp +15 -5
  157. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +2 -0
  158. package/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp +4 -0
  159. package/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +10 -13
  160. package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +1 -0
  161. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp +2 -2
  162. package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +1 -1
  163. package/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +0 -2
  164. package/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +1 -0
  165. package/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp +5 -1
  166. package/src/duckdb/src/include/duckdb.h +2 -2
  167. package/src/duckdb/src/main/appender.cpp +3 -0
  168. package/src/duckdb/src/main/capi/profiling_info-c.cpp +5 -2
  169. package/src/duckdb/src/main/client_context.cpp +8 -2
  170. package/src/duckdb/src/main/connection.cpp +1 -1
  171. package/src/duckdb/src/main/database.cpp +13 -0
  172. package/src/duckdb/src/main/extension/extension_helper.cpp +1 -1
  173. package/src/duckdb/src/main/extension/extension_install.cpp +9 -1
  174. package/src/duckdb/src/main/extension/extension_load.cpp +3 -2
  175. package/src/duckdb/src/main/extension_install_info.cpp +1 -1
  176. package/src/duckdb/src/main/profiling_info.cpp +78 -58
  177. package/src/duckdb/src/main/query_profiler.cpp +79 -89
  178. package/src/duckdb/src/main/relation/read_csv_relation.cpp +1 -1
  179. package/src/duckdb/src/main/secret/secret.cpp +2 -1
  180. package/src/duckdb/src/main/secret/secret_manager.cpp +14 -0
  181. package/src/duckdb/src/optimizer/cte_filter_pusher.cpp +4 -2
  182. package/src/duckdb/src/optimizer/deliminator.cpp +0 -7
  183. package/src/duckdb/src/optimizer/in_clause_rewriter.cpp +7 -0
  184. package/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp +4 -1
  185. package/src/duckdb/src/optimizer/unnest_rewriter.cpp +21 -21
  186. package/src/duckdb/src/parallel/task_scheduler.cpp +9 -0
  187. package/src/duckdb/src/parser/parsed_data/exported_table_data.cpp +22 -0
  188. package/src/duckdb/src/parser/parsed_expression_iterator.cpp +3 -0
  189. package/src/duckdb/src/parser/statement/insert_statement.cpp +7 -1
  190. package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +1 -1
  191. package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +89 -87
  192. package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +2 -2
  193. package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +4 -9
  194. package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +4 -0
  195. package/src/duckdb/src/planner/binder/query_node/plan_setop.cpp +2 -2
  196. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +4 -1
  197. package/src/duckdb/src/planner/binder/statement/bind_export.cpp +4 -3
  198. package/src/duckdb/src/planner/expression_binder/order_binder.cpp +13 -3
  199. package/src/duckdb/src/planner/expression_binder.cpp +1 -1
  200. package/src/duckdb/src/planner/operator/logical_export.cpp +28 -0
  201. package/src/duckdb/src/planner/table_binding.cpp +1 -2
  202. package/src/duckdb/src/planner/table_filter.cpp +6 -2
  203. package/src/duckdb/src/storage/buffer/buffer_pool.cpp +2 -1
  204. package/src/duckdb/src/storage/checkpoint_manager.cpp +1 -1
  205. package/src/duckdb/src/storage/compression/bitpacking.cpp +7 -3
  206. package/src/duckdb/src/storage/compression/dictionary_compression.cpp +1 -1
  207. package/src/duckdb/src/storage/metadata/metadata_manager.cpp +2 -2
  208. package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +16 -0
  209. package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +29 -0
  210. package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +15 -0
  211. package/src/duckdb/src/storage/single_file_block_manager.cpp +2 -1
  212. package/src/duckdb/src/storage/statistics/distinct_statistics.cpp +3 -5
  213. package/src/duckdb/src/storage/storage_info.cpp +4 -4
  214. package/src/duckdb/src/storage/table/row_group_collection.cpp +1 -1
  215. package/src/duckdb/src/storage/table/row_version_manager.cpp +5 -1
  216. package/src/duckdb/src/storage/temporary_file_manager.cpp +1 -1
  217. package/src/duckdb/src/transaction/duck_transaction.cpp +15 -14
  218. package/src/duckdb/third_party/brotli/common/brotli_platform.h +1 -1
  219. package/src/duckdb/third_party/brotli/dec/decode.cpp +1 -1
  220. package/src/duckdb/third_party/brotli/enc/memory.cpp +4 -4
  221. package/src/duckdb/third_party/fsst/libfsst.cpp +1 -1
  222. package/src/duckdb/third_party/hyperloglog/sds.cpp +1 -1
  223. package/src/duckdb/third_party/hyperloglog/sds.hpp +1 -1
  224. package/src/duckdb/third_party/libpg_query/include/common/keywords.hpp +1 -1
  225. package/src/duckdb/third_party/libpg_query/include/datatype/timestamp.hpp +1 -1
  226. package/src/duckdb/third_party/libpg_query/include/mb/pg_wchar.hpp +1 -1
  227. package/src/duckdb/third_party/libpg_query/include/nodes/bitmapset.hpp +1 -1
  228. package/src/duckdb/third_party/libpg_query/include/nodes/lockoptions.hpp +1 -1
  229. package/src/duckdb/third_party/libpg_query/include/nodes/makefuncs.hpp +1 -1
  230. package/src/duckdb/third_party/libpg_query/include/nodes/pg_list.hpp +1 -1
  231. package/src/duckdb/third_party/libpg_query/include/nodes/value.hpp +1 -1
  232. package/src/duckdb/third_party/libpg_query/include/parser/gramparse.hpp +1 -1
  233. package/src/duckdb/third_party/libpg_query/include/parser/parser.hpp +1 -1
  234. package/src/duckdb/third_party/libpg_query/include/parser/scanner.hpp +1 -1
  235. package/src/duckdb/third_party/libpg_query/include/parser/scansup.hpp +1 -1
  236. package/src/duckdb/third_party/libpg_query/include/pg_functions.hpp +1 -1
  237. package/src/duckdb/third_party/libpg_query/pg_functions.cpp +1 -1
  238. package/src/duckdb/third_party/libpg_query/src_backend_nodes_list.cpp +1 -1
  239. package/src/duckdb/third_party/libpg_query/src_backend_nodes_makefuncs.cpp +1 -1
  240. package/src/duckdb/third_party/libpg_query/src_backend_nodes_value.cpp +1 -1
  241. package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +1964 -1964
  242. package/src/duckdb/third_party/libpg_query/src_backend_parser_parser.cpp +1 -1
  243. package/src/duckdb/third_party/libpg_query/src_backend_parser_scansup.cpp +1 -1
  244. package/src/duckdb/third_party/libpg_query/src_common_keywords.cpp +1 -1
  245. package/src/duckdb/third_party/lz4/lz4.cpp +1 -1
  246. package/src/duckdb/third_party/mbedtls/include/des_alt.h +1 -1
  247. package/src/duckdb/third_party/mbedtls/include/mbedtls/aes_alt.h +1 -1
  248. package/src/duckdb/third_party/mbedtls/include/mbedtls/aria_alt.h +1 -1
  249. package/src/duckdb/third_party/mbedtls/include/mbedtls/asn1write.h +1 -1
  250. package/src/duckdb/third_party/mbedtls/include/mbedtls/camellia_alt.h +1 -1
  251. package/src/duckdb/third_party/mbedtls/include/mbedtls/ccm_alt.h +1 -1
  252. package/src/duckdb/third_party/mbedtls/include/mbedtls/chacha20.h +1 -1
  253. package/src/duckdb/third_party/mbedtls/include/mbedtls/chachapoly.h +1 -1
  254. package/src/duckdb/third_party/mbedtls/include/mbedtls/cmac.h +1 -1
  255. package/src/duckdb/third_party/mbedtls/include/mbedtls/config_psa.h +1 -1
  256. package/src/duckdb/third_party/mbedtls/include/mbedtls/ecdsa.h +1 -1
  257. package/src/duckdb/third_party/mbedtls/include/mbedtls/ecp.h +1 -1
  258. package/src/duckdb/third_party/mbedtls/include/mbedtls/gcm_alt.h +1 -1
  259. package/src/duckdb/third_party/mbedtls/include/mbedtls/md5.h +1 -1
  260. package/src/duckdb/third_party/mbedtls/include/mbedtls/nist_kw.h +1 -1
  261. package/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs12.h +1 -1
  262. package/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs5.h +1 -1
  263. package/src/duckdb/third_party/mbedtls/include/mbedtls/psa_util.h +1 -1
  264. package/src/duckdb/third_party/mbedtls/include/mbedtls/ripemd160.h +1 -1
  265. package/src/duckdb/third_party/mbedtls/include/mbedtls/threading.h +1 -1
  266. package/src/duckdb/third_party/mbedtls/include/mbedtls/timing.h +1 -1
  267. package/src/duckdb/third_party/mbedtls/include/platform_alt.h +1 -1
  268. package/src/duckdb/third_party/mbedtls/include/psa/crypto.h +1 -1
  269. package/src/duckdb/third_party/mbedtls/include/rsa_alt.h +1 -1
  270. package/src/duckdb/third_party/mbedtls/include/sha1_alt.h +1 -1
  271. package/src/duckdb/third_party/mbedtls/include/sha256_alt.h +1 -1
  272. package/src/duckdb/third_party/mbedtls/include/sha512_alt.h +1 -1
  273. package/src/duckdb/third_party/mbedtls/include/ssl_misc.h +1 -1
  274. package/src/duckdb/third_party/mbedtls/library/aesni.h +1 -1
  275. package/src/duckdb/third_party/mbedtls/library/padlock.h +1 -1
  276. package/src/duckdb/third_party/miniz/miniz.cpp +1 -1
  277. package/src/duckdb/third_party/parquet/parquet_types.cpp +1 -1
  278. package/src/duckdb/third_party/parquet/windows_compatibility.h +1 -1
  279. package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
  280. package/src/duckdb/third_party/pcg/pcg_uint128.hpp +1 -1
  281. package/src/duckdb/third_party/skiplist/Node.h +4 -4
  282. package/src/duckdb/third_party/snappy/snappy.cc +1 -1
  283. package/src/duckdb/third_party/snappy/snappy_version.hpp +1 -1
  284. package/src/duckdb/third_party/thrift/thrift/thrift-config.h +1 -1
  285. package/src/duckdb/third_party/zstd/decompress/zstd_decompress_block.cpp +1 -1
  286. package/src/duckdb/third_party/zstd/include/zstd_static.h +1 -1
  287. package/src/duckdb/ub_src_execution_index_art.cpp +2 -0
  288. package/src/duckdb/ub_src_parser_parsed_data.cpp +2 -0
  289. package/src/duckdb/ub_src_planner_operator.cpp +2 -0
@@ -19,6 +19,7 @@
19
19
  #include "duckdb/parser/parsed_data/pragma_info.hpp"
20
20
  #include "duckdb/parser/parsed_data/transaction_info.hpp"
21
21
  #include "duckdb/parser/parsed_data/vacuum_info.hpp"
22
+ #include "duckdb/parser/parsed_data/exported_table_data.hpp"
22
23
 
23
24
  namespace duckdb {
24
25
 
@@ -36,6 +37,9 @@ unique_ptr<ParseInfo> ParseInfo::Deserialize(Deserializer &deserializer) {
36
37
  case ParseInfoType::ATTACH_INFO:
37
38
  result = AttachInfo::Deserialize(deserializer);
38
39
  break;
40
+ case ParseInfoType::BOUND_EXPORT_DATA:
41
+ result = BoundExportData::Deserialize(deserializer);
42
+ break;
39
43
  case ParseInfoType::COPY_DATABASE_INFO:
40
44
  result = CopyDatabaseInfo::Deserialize(deserializer);
41
45
  break;
@@ -225,6 +229,17 @@ unique_ptr<ParseInfo> AttachInfo::Deserialize(Deserializer &deserializer) {
225
229
  return std::move(result);
226
230
  }
227
231
 
232
+ void BoundExportData::Serialize(Serializer &serializer) const {
233
+ ParseInfo::Serialize(serializer);
234
+ serializer.WritePropertyWithDefault<vector<ExportedTableInfo>>(200, "data", data);
235
+ }
236
+
237
+ unique_ptr<ParseInfo> BoundExportData::Deserialize(Deserializer &deserializer) {
238
+ auto result = duckdb::unique_ptr<BoundExportData>(new BoundExportData());
239
+ deserializer.ReadPropertyWithDefault<vector<ExportedTableInfo>>(200, "data", result->data);
240
+ return std::move(result);
241
+ }
242
+
228
243
  void ChangeColumnTypeInfo::Serialize(Serializer &serializer) const {
229
244
  AlterTableInfo::Serialize(serializer);
230
245
  serializer.WritePropertyWithDefault<string>(400, "column_name", column_name);
@@ -376,8 +376,9 @@ void SingleFileBlockManager::MarkBlockAsUsed(block_id_t block_id) {
376
376
  }
377
377
  max_block++;
378
378
  } else if (free_list.find(block_id) != free_list.end()) {
379
- // block is currently int he free list - erase
379
+ // block is currently in the free list - erase
380
380
  free_list.erase(block_id);
381
+ newly_freed_list.erase(block_id);
381
382
  } else {
382
383
  // block is already in use - increase reference count
383
384
  IncreaseBlockReferenceCountInternal(block_id);
@@ -7,14 +7,11 @@
7
7
 
8
8
  namespace duckdb {
9
9
 
10
- DistinctStatistics::DistinctStatistics()
11
- : log(make_uniq<HyperLogLog>()), sample_count(0), total_count(0),
12
- hash_vec(LogicalType::HASH, STANDARD_VECTOR_SIZE) {
10
+ DistinctStatistics::DistinctStatistics() : log(make_uniq<HyperLogLog>()), sample_count(0), total_count(0) {
13
11
  }
14
12
 
15
13
  DistinctStatistics::DistinctStatistics(unique_ptr<HyperLogLog> log, idx_t sample_count, idx_t total_count)
16
- : log(std::move(log)), sample_count(sample_count), total_count(total_count),
17
- hash_vec(LogicalType::HASH, STANDARD_VECTOR_SIZE) {
14
+ : log(std::move(log)), sample_count(sample_count), total_count(total_count) {
18
15
  }
19
16
 
20
17
  unique_ptr<DistinctStatistics> DistinctStatistics::Copy() const {
@@ -41,6 +38,7 @@ void DistinctStatistics::Update(Vector &v, idx_t count, bool sample) {
41
38
  sample_count += count;
42
39
 
43
40
  lock_guard<mutex> guard(lock);
41
+ Vector hash_vec(LogicalType::HASH, count);
44
42
  VectorOperations::Hash(v, hash_vec, count);
45
43
 
46
44
  UnifiedVectorFormat vdata;
@@ -28,13 +28,13 @@ static const StorageVersionInfo storage_version_info[] = {
28
28
  {"v0.3.0", 25}, {"v0.3.1", 27}, {"v0.3.2", 31}, {"v0.3.3", 33}, {"v0.3.4", 33}, {"v0.3.5", 33}, {"v0.4.0", 33},
29
29
  {"v0.5.0", 38}, {"v0.5.1", 38}, {"v0.6.0", 39}, {"v0.6.1", 39}, {"v0.7.0", 43}, {"v0.7.1", 43}, {"v0.8.0", 51},
30
30
  {"v0.8.1", 51}, {"v0.9.0", 64}, {"v0.9.1", 64}, {"v0.9.2", 64}, {"v0.10.0", 64}, {"v0.10.1", 64}, {"v0.10.2", 64},
31
- {"v0.10.3", 64}, {"v1.0.0", 64}, {"v1.1.0", 64}, {nullptr, 0}};
31
+ {"v0.10.3", 64}, {"v1.0.0", 64}, {"v1.1.0", 64}, {"v1.1.1", 64}, {"v1.1.2", 64}, {"v1.1.3", 64}, {nullptr, 0}};
32
32
  // END OF STORAGE VERSION INFO
33
33
 
34
34
  // START OF SERIALIZATION VERSION INFO
35
- static const SerializationVersionInfo serialization_version_info[] = {{"v0.10.0", 1}, {"v0.10.1", 1}, {"v0.10.2", 1},
36
- {"v0.10.3", 2}, {"v1.0.0", 2}, {"v1.1.0", 3},
37
- {"latest", 3}, {nullptr, 0}};
35
+ static const SerializationVersionInfo serialization_version_info[] = {
36
+ {"v0.10.0", 1}, {"v0.10.1", 1}, {"v0.10.2", 1}, {"v0.10.3", 2}, {"v1.0.0", 2}, {"v1.1.0", 3},
37
+ {"v1.1.1", 3}, {"v1.1.2", 3}, {"v1.1.3", 3}, {"latest", 3}, {nullptr, 0}};
38
38
  // END OF SERIALIZATION VERSION INFO
39
39
 
40
40
  optional_idx GetStorageVersion(const char *version_string) {
@@ -962,8 +962,8 @@ unique_ptr<CheckpointTask> RowGroupCollection::GetCheckpointTask(CollectionCheck
962
962
  }
963
963
 
964
964
  void RowGroupCollection::Checkpoint(TableDataWriter &writer, TableStatistics &global_stats) {
965
- auto segments = row_groups->MoveSegments();
966
965
  auto l = row_groups->Lock();
966
+ auto segments = row_groups->MoveSegments(l);
967
967
 
968
968
  CollectionCheckpointState checkpoint_state(*this, writer, segments, global_stats);
969
969
 
@@ -139,11 +139,15 @@ void RowVersionManager::CleanupAppend(transaction_t lowest_active_transaction, i
139
139
  for (idx_t vector_idx = start_vector_idx; vector_idx <= end_vector_idx; vector_idx++) {
140
140
  idx_t vcount =
141
141
  vector_idx == end_vector_idx ? row_group_end - end_vector_idx * STANDARD_VECTOR_SIZE : STANDARD_VECTOR_SIZE;
142
- auto &info = *vector_info[vector_idx];
143
142
  if (vcount != STANDARD_VECTOR_SIZE) {
144
143
  // not written fully - skip
145
144
  continue;
146
145
  }
146
+ if (!vector_info[vector_idx]) {
147
+ // already vacuumed - skip
148
+ continue;
149
+ }
150
+ auto &info = *vector_info[vector_idx];
147
151
  // if we wrote the entire chunk info try to compress it
148
152
  unique_ptr<ChunkInfo> new_info;
149
153
  auto cleanup = info.Cleanup(lowest_active_transaction, new_info);
@@ -72,7 +72,7 @@ void BlockIndexManager::SetMaxIndex(idx_t new_index) {
72
72
  auto difference = new_index - old;
73
73
  auto size_on_disk = difference * TEMP_FILE_BLOCK_SIZE;
74
74
  manager->IncreaseSizeOnDisk(size_on_disk);
75
- // Increase can throw, so this is only updated after it was succesfully updated
75
+ // Increase can throw, so this is only updated after it was successfully updated
76
76
  max_index = new_index;
77
77
  }
78
78
  }
@@ -271,23 +271,24 @@ unique_ptr<StorageLockKey> DuckTransaction::TryGetCheckpointLock() {
271
271
  }
272
272
 
273
273
  shared_ptr<CheckpointLock> DuckTransaction::SharedLockTable(DataTableInfo &info) {
274
- lock_guard<mutex> l(active_locks_lock);
274
+ unique_lock<mutex> transaction_lock(active_locks_lock);
275
275
  auto entry = active_locks.find(info);
276
- if (entry != active_locks.end()) {
277
- // found an existing lock
278
- auto lock_weak_ptr = entry->second;
279
- // check if it is expired
280
- auto lock = lock_weak_ptr.lock();
281
- if (lock) {
282
- // not expired - return it
283
- return lock;
284
- }
276
+ if (entry == active_locks.end()) {
277
+ entry = active_locks.insert(entry, make_pair(std::ref(info), make_uniq<ActiveTableLock>()));
278
+ }
279
+ auto &active_table_lock = *entry->second;
280
+ transaction_lock.unlock(); // release transaction-level lock before acquiring table-level lock
281
+ lock_guard<mutex> table_lock(active_table_lock.checkpoint_lock_mutex);
282
+ auto checkpoint_lock = active_table_lock.checkpoint_lock.lock();
283
+ // check if it is expired (or has never been acquired yet)
284
+ if (checkpoint_lock) {
285
+ // not expired - return it
286
+ return checkpoint_lock;
285
287
  }
286
288
  // no existing lock - obtain it
287
- auto table_lock = info.GetSharedLock();
288
- auto checkpoint_lock = make_shared_ptr<CheckpointLock>(std::move(table_lock));
289
- // insert it into the active locks and return it
290
- active_locks.insert(make_pair(std::ref(info), checkpoint_lock));
289
+ checkpoint_lock = make_shared_ptr<CheckpointLock>(info.GetSharedLock());
290
+ // store it for future reference
291
+ active_table_lock.checkpoint_lock = checkpoint_lock;
291
292
  return checkpoint_lock;
292
293
  }
293
294
 
@@ -540,4 +540,4 @@ T __brotli_swap_tmp = (A)[(I)]; \
540
540
  #endif
541
541
  }
542
542
  }
543
- #endif /* BROTLI_COMMON_PLATFORM_H_ */
543
+ #endif /* BROTLI_COMMON_PLATFORM_H_ */
@@ -2755,4 +2755,4 @@ void InverseMoveToFrontTransformForTest(uint8_t *v, brotli_reg_t l, BrotliDecode
2755
2755
  }
2756
2756
  #endif
2757
2757
 
2758
- }
2758
+ }
@@ -64,7 +64,7 @@ void duckdb_brotli::BrotliWipeOutMemoryManager(MemoryManager* m) {
64
64
 
65
65
  #else /* BROTLI_ENCODER_EXIT_ON_OOM */
66
66
 
67
- static void SortPointers(void** items, const size_t n) {
67
+ void SortPointers(void** items, const size_t n) {
68
68
  /* Shell sort. */
69
69
  /* TODO(eustas): fine-tune for "many slots" case */
70
70
  static const size_t gaps[] = {23, 10, 4, 1};
@@ -135,7 +135,7 @@ static void CollectGarbagePointers(MemoryManager* m) {
135
135
  }
136
136
  }
137
137
 
138
- void* BrotliAllocate(MemoryManager* m, size_t n) {
138
+ void* duckdb_brotli::BrotliAllocate(MemoryManager* m, size_t n) {
139
139
  void* result = m->alloc_func(m->opaque, n);
140
140
  if (!result) {
141
141
  m->is_oom = BROTLI_TRUE;
@@ -146,14 +146,14 @@ void* BrotliAllocate(MemoryManager* m, size_t n) {
146
146
  return result;
147
147
  }
148
148
 
149
- void BrotliFree(MemoryManager* m, void* p) {
149
+ void duckdb_brotli::BrotliFree(MemoryManager* m, void* p) {
150
150
  if (!p) return;
151
151
  m->free_func(m->opaque, p);
152
152
  if (m->new_freed == MAX_NEW_FREED) CollectGarbagePointers(m);
153
153
  m->pointers[NEW_FREED_OFFSET + (m->new_freed++)] = p;
154
154
  }
155
155
 
156
- void BrotliWipeOutMemoryManager(MemoryManager* m) {
156
+ void duckdb_brotli::BrotliWipeOutMemoryManager(MemoryManager* m) {
157
157
  size_t i;
158
158
  CollectGarbagePointers(m);
159
159
  /* Now all unfreed pointers are in perm-allocated list. */
@@ -503,4 +503,4 @@ extern "C" duckdb_fsst_decoder_t duckdb_fsst_decoder(duckdb_fsst_encoder_t *enco
503
503
  u32 cnt2 = duckdb_fsst_import(&decoder, buf);
504
504
  assert(cnt1 == cnt2); (void) cnt1; (void) cnt2;
505
505
  return decoder;
506
- }
506
+ }
@@ -1112,4 +1112,4 @@ void *sdmalloc(size_t size) { return malloc(size); }
1112
1112
  void *sdrealloc(void *ptr, size_t size) { return realloc(ptr,size); }
1113
1113
  void sdfree(void *ptr) { free(ptr); }
1114
1114
 
1115
- }
1115
+ }
@@ -281,4 +281,4 @@ int sdsTest(int argc, char *argv[]);
281
281
  }
282
282
 
283
283
 
284
- #endif
284
+ #endif
@@ -31,4 +31,4 @@ typedef struct PGScanKeyword {
31
31
  } PGScanKeyword;
32
32
 
33
33
  const PGScanKeyword *ScanKeywordLookup(const char *text, const PGScanKeyword *keywords, int num_keywords);
34
- }
34
+ }
@@ -48,4 +48,4 @@ typedef struct {
48
48
  int32_t day; /* days, after time for alignment */
49
49
  int32_t month; /* months and years, after time for alignment */
50
50
  } PGInterval;
51
- }
51
+ }
@@ -25,4 +25,4 @@
25
25
  */
26
26
  namespace duckdb_libpgquery {
27
27
  typedef unsigned int pg_wchar;
28
- }
28
+ }
@@ -99,4 +99,4 @@ int bms_next_member(const PGBitmapset *a, int prevbit);
99
99
  /* support for hashtables using Bitmapsets as keys: */
100
100
  uint32_t bms_hash_value(const PGBitmapset *a);
101
101
 
102
- }
102
+ }
@@ -41,4 +41,4 @@ typedef enum PGLockWaitPolicy {
41
41
  LockWaitError
42
42
  } PGLockWaitPolicy;
43
43
 
44
- }
44
+ }
@@ -66,4 +66,4 @@ PGDefElem *makeDefElemExtended(const char *nameSpace, const char *name, PGNode *
66
66
 
67
67
  PGGroupingSet *makeGroupingSet(GroupingSetKind kind, PGList *content, int location);
68
68
 
69
- }
69
+ }
@@ -336,4 +336,4 @@ PGList *list_copy_tail(const PGList *list, int nskip);
336
336
  int length(PGList *list);
337
337
  #endif /* ENABLE_LIST_COMPAT */
338
338
 
339
- }
339
+ }
@@ -57,4 +57,4 @@ PGValue *makeFloat(char *numericStr);
57
57
  PGValue *makeString(const char *str);
58
58
  PGValue *makeBitString(char *str);
59
59
 
60
- }
60
+ }
@@ -65,4 +65,4 @@ int base_yylex(YYSTYPE *lvalp, YYLTYPE *llocp, core_yyscan_t yyscanner);
65
65
  void parser_init(base_yy_extra_type *yyext);
66
66
  int base_yyparse(core_yyscan_t yyscanner);
67
67
 
68
- }
68
+ }
@@ -37,4 +37,4 @@ std::vector<PGSimplifiedToken> tokenize(const char *str);
37
37
  PGList *SystemFuncName(const char *name);
38
38
  PGTypeName *SystemTypeName(const char *name);
39
39
 
40
- }
40
+ }
@@ -124,4 +124,4 @@ int core_yylex(core_YYSTYPE *lvalp, YYLTYPE *llocp, core_yyscan_t yyscanner);
124
124
  int scanner_errposition(int location, core_yyscan_t yyscanner);
125
125
  void scanner_yyerror(const char *message, core_yyscan_t yyscanner);
126
126
 
127
- }
127
+ }
@@ -27,4 +27,4 @@ bool scanner_isspace(char ch);
27
27
  void set_preserve_identifier_case(bool downcase);
28
28
  bool get_preserve_identifier_case();
29
29
 
30
- }
30
+ }
@@ -60,4 +60,4 @@ PGDefElem *defWithOids(bool value);
60
60
  typedef unsigned int pg_wchar;
61
61
  unsigned char *unicode_to_utf8(pg_wchar c, unsigned char *utf8string);
62
62
 
63
- }
63
+ }
@@ -274,4 +274,4 @@ PGNode *newNode(size_t size, PGNodeTag type) {
274
274
  result->type = type;
275
275
  return result;
276
276
  }
277
- }
277
+ }
@@ -537,4 +537,4 @@ list_copy_tail(const PGList *oldlist, int nskip)
537
537
  int length(const PGList *list);
538
538
 
539
539
 
540
- }
540
+ }
@@ -302,4 +302,4 @@ PGGroupingSet *makeGroupingSet(GroupingSetKind kind, PGList *content, int locati
302
302
  n->location = location;
303
303
  return n;
304
304
  }
305
- }
305
+ }
@@ -71,4 +71,4 @@ PGValue *makeString(const char *str) {
71
71
  * Caller is responsible for passing a palloc'd string.
72
72
  */
73
73
 
74
- }
74
+ }