duckdb 1.1.2-dev4.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 (288) hide show
  1. package/package.json +1 -1
  2. package/src/duckdb/extension/icu/third_party/icu/common/putil.cpp +0 -5
  3. package/src/duckdb/extension/icu/third_party/icu/common/rbbiscan.cpp +1 -1
  4. package/src/duckdb/extension/icu/third_party/icu/common/rbbitblb.cpp +1 -1
  5. package/src/duckdb/extension/icu/third_party/icu/common/ucurr.cpp +1 -1
  6. package/src/duckdb/extension/icu/third_party/icu/common/uresbund.cpp +1 -1
  7. package/src/duckdb/extension/icu/third_party/icu/common/uresimp.h +31 -31
  8. package/src/duckdb/extension/icu/third_party/icu/common/ustring.cpp +1 -1
  9. package/src/duckdb/extension/icu/third_party/icu/common/uvector.cpp +1 -1
  10. package/src/duckdb/extension/icu/third_party/icu/i18n/coleitr.cpp +12 -12
  11. package/src/duckdb/extension/icu/third_party/icu/i18n/format.cpp +1 -1
  12. package/src/duckdb/extension/icu/third_party/icu/i18n/listformatter.cpp +4 -4
  13. package/src/duckdb/extension/icu/third_party/icu/i18n/number_decimalquantity.h +1 -1
  14. package/src/duckdb/extension/icu/third_party/icu/i18n/tzgnames.cpp +1 -1
  15. package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/coleitr.h +28 -28
  16. package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/format.h +7 -7
  17. package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucol.h +1 -1
  18. package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucoleitr.h +41 -41
  19. package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/umsg.h +41 -41
  20. package/src/duckdb/extension/icu/third_party/icu/i18n/usrchimp.h +3 -3
  21. package/src/duckdb/extension/json/include/json_common.hpp +1 -1
  22. package/src/duckdb/extension/json/json_functions/json_structure.cpp +13 -7
  23. package/src/duckdb/extension/parquet/column_writer.cpp +2 -1
  24. package/src/duckdb/extension/parquet/geo_parquet.cpp +24 -9
  25. package/src/duckdb/extension/parquet/include/geo_parquet.hpp +3 -1
  26. package/src/duckdb/extension/parquet/include/parquet_reader.hpp +1 -0
  27. package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +1 -1
  28. package/src/duckdb/extension/parquet/include/templated_column_reader.hpp +0 -4
  29. package/src/duckdb/extension/parquet/parquet_extension.cpp +20 -6
  30. package/src/duckdb/extension/parquet/parquet_reader.cpp +1 -2
  31. package/src/duckdb/extension/parquet/parquet_writer.cpp +1 -1
  32. package/src/duckdb/extension/parquet/serialize_parquet.cpp +0 -2
  33. package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +8 -1
  34. package/src/duckdb/src/catalog/default/default_functions.cpp +5 -5
  35. package/src/duckdb/src/common/allocator.cpp +3 -2
  36. package/src/duckdb/src/common/arrow/arrow_appender.cpp +1 -0
  37. package/src/duckdb/src/common/arrow/arrow_converter.cpp +11 -0
  38. package/src/duckdb/src/common/arrow/schema_metadata.cpp +6 -4
  39. package/src/duckdb/src/common/enum_util.cpp +33 -0
  40. package/src/duckdb/src/common/exception.cpp +3 -0
  41. package/src/duckdb/src/common/extra_type_info.cpp +1 -44
  42. package/src/duckdb/src/common/field_writer.cpp +97 -0
  43. package/src/duckdb/src/common/render_tree.cpp +7 -5
  44. package/src/duckdb/src/common/row_operations/row_match.cpp +359 -0
  45. package/src/duckdb/src/common/serializer/buffered_deserializer.cpp +27 -0
  46. package/src/duckdb/src/common/serializer/buffered_serializer.cpp +36 -0
  47. package/src/duckdb/src/common/serializer/format_serializer.cpp +15 -0
  48. package/src/duckdb/src/common/serializer.cpp +24 -0
  49. package/src/duckdb/src/common/sort/comparators.cpp +2 -2
  50. package/src/duckdb/src/common/types/bit.cpp +57 -34
  51. package/src/duckdb/src/common/types/data_chunk.cpp +32 -29
  52. package/src/duckdb/src/common/types/vector_cache.cpp +12 -6
  53. package/src/duckdb/src/common/vector_operations/comparison_operators.cpp +14 -0
  54. package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +20 -1
  55. package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +2 -2
  56. package/src/duckdb/src/core_functions/aggregate/holistic/approx_top_k.cpp +32 -7
  57. package/src/duckdb/src/core_functions/function_list.cpp +1 -2
  58. package/src/duckdb/src/core_functions/scalar/bit/bitstring.cpp +23 -5
  59. package/src/duckdb/src/core_functions/scalar/date/date_diff.cpp +12 -6
  60. package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +1 -1
  61. package/src/duckdb/src/execution/expression_executor/execute_between.cpp +4 -3
  62. package/src/duckdb/src/execution/expression_executor/execute_case.cpp +4 -3
  63. package/src/duckdb/src/execution/expression_executor/execute_cast.cpp +2 -1
  64. package/src/duckdb/src/execution/expression_executor/execute_comparison.cpp +3 -2
  65. package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +2 -1
  66. package/src/duckdb/src/execution/expression_executor/execute_function.cpp +2 -1
  67. package/src/duckdb/src/execution/expression_executor/execute_operator.cpp +3 -2
  68. package/src/duckdb/src/execution/expression_executor/execute_reference.cpp +1 -1
  69. package/src/duckdb/src/execution/expression_executor.cpp +9 -3
  70. package/src/duckdb/src/execution/expression_executor_state.cpp +11 -9
  71. package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +238 -0
  72. package/src/duckdb/src/execution/index/art/plan_art.cpp +94 -0
  73. package/src/duckdb/src/execution/index/index_type_set.cpp +4 -1
  74. package/src/duckdb/src/execution/join_hashtable.cpp +7 -8
  75. package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +6 -4
  76. package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp +4 -4
  77. package/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp +1 -1
  78. package/src/duckdb/src/execution/operator/csv_scanner/scanner/csv_schema.cpp +44 -5
  79. package/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +28 -24
  80. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +25 -26
  81. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +5 -3
  82. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp +4 -4
  83. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +2 -2
  84. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_refinement.cpp +1 -1
  85. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_replacement.cpp +1 -1
  86. package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine.cpp +1 -1
  87. package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp +2 -2
  88. package/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp +1 -1
  89. package/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp +1 -1
  90. package/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +73 -27
  91. package/src/duckdb/src/execution/operator/helper/physical_buffered_collector.cpp +1 -1
  92. package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +695 -0
  93. package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +1487 -0
  94. package/src/duckdb/src/execution/operator/persistent/csv_buffer.cpp +72 -0
  95. package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +158 -0
  96. package/src/duckdb/src/execution/operator/persistent/csv_reader_options.cpp +280 -0
  97. package/src/duckdb/src/execution/operator/persistent/parallel_csv_reader.cpp +666 -0
  98. package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +14 -4
  99. package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +207 -0
  100. package/src/duckdb/src/execution/partitionable_hashtable.cpp +207 -0
  101. package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +6 -1
  102. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +0 -4
  103. package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +14 -87
  104. package/src/duckdb/src/execution/physical_plan/plan_export.cpp +1 -1
  105. package/src/duckdb/src/execution/physical_plan/plan_get.cpp +1 -1
  106. package/src/duckdb/src/execution/reservoir_sample.cpp +1 -1
  107. package/src/duckdb/src/execution/window_executor.cpp +3 -3
  108. package/src/duckdb/src/function/pragma/pragma_queries.cpp +1 -1
  109. package/src/duckdb/src/function/scalar/strftime_format.cpp +1 -2
  110. package/src/duckdb/src/function/scalar/string/concat.cpp +118 -151
  111. package/src/duckdb/src/function/table/arrow.cpp +13 -0
  112. package/src/duckdb/src/function/table/arrow_conversion.cpp +12 -7
  113. package/src/duckdb/src/function/table/copy_csv.cpp +1 -1
  114. package/src/duckdb/src/function/table/read_csv.cpp +2 -30
  115. package/src/duckdb/src/function/table/sniff_csv.cpp +2 -1
  116. package/src/duckdb/src/function/table/system/duckdb_secrets.cpp +15 -7
  117. package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
  118. package/src/duckdb/src/include/duckdb/catalog/catalog_entry_retriever.hpp +1 -1
  119. package/src/duckdb/src/include/duckdb/common/atomic.hpp +13 -1
  120. package/src/duckdb/src/include/duckdb/common/bitpacking.hpp +3 -4
  121. package/src/duckdb/src/include/duckdb/common/enum_util.hpp +8 -0
  122. package/src/duckdb/src/include/duckdb/common/enums/metric_type.hpp +2 -0
  123. package/src/duckdb/src/include/duckdb/common/exception.hpp +10 -0
  124. package/src/duckdb/src/include/duckdb/common/extra_type_info/enum_type_info.hpp +53 -0
  125. package/src/duckdb/src/include/duckdb/common/insertion_order_preserving_map.hpp +5 -5
  126. package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +5 -0
  127. package/src/duckdb/src/include/duckdb/common/types/bit.hpp +36 -33
  128. package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +10 -13
  129. package/src/duckdb/src/include/duckdb/common/types/uhugeint.hpp +1 -1
  130. package/src/duckdb/src/include/duckdb/common/types/vector_cache.hpp +7 -5
  131. package/src/duckdb/src/include/duckdb/common/windows_undefs.hpp +2 -1
  132. package/src/duckdb/src/include/duckdb/core_functions/aggregate/minmax_n_helpers.hpp +2 -0
  133. package/src/duckdb/src/include/duckdb/core_functions/scalar/bit_functions.hpp +1 -1
  134. package/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp +0 -6
  135. package/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp +1 -1
  136. package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +3 -2
  137. package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +3 -0
  138. package/src/duckdb/src/include/duckdb/execution/index/index_type.hpp +16 -1
  139. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp +4 -4
  140. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp +4 -2
  141. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_schema.hpp +3 -2
  142. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp +91 -36
  143. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/sniff_result.hpp +36 -0
  144. package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp +1 -1
  145. package/src/duckdb/src/include/duckdb/execution/operator/join/perfect_hash_join_executor.hpp +0 -1
  146. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_export.hpp +2 -5
  147. package/src/duckdb/src/include/duckdb/function/table_function.hpp +1 -1
  148. package/src/duckdb/src/include/duckdb/main/database.hpp +5 -0
  149. package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +1 -0
  150. package/src/duckdb/src/include/duckdb/main/profiling_info.hpp +20 -22
  151. package/src/duckdb/src/include/duckdb/main/query_profiler.hpp +7 -9
  152. package/src/duckdb/src/include/duckdb/main/secret/secret.hpp +8 -1
  153. package/src/duckdb/src/include/duckdb/main/table_description.hpp +14 -0
  154. package/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp +5 -5
  155. package/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp +15 -5
  156. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +2 -0
  157. package/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp +4 -0
  158. package/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +10 -13
  159. package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +1 -0
  160. package/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp +2 -2
  161. package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +1 -1
  162. package/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +0 -2
  163. package/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +1 -0
  164. package/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp +5 -1
  165. package/src/duckdb/src/include/duckdb.h +2 -2
  166. package/src/duckdb/src/main/appender.cpp +3 -0
  167. package/src/duckdb/src/main/capi/profiling_info-c.cpp +5 -2
  168. package/src/duckdb/src/main/client_context.cpp +8 -2
  169. package/src/duckdb/src/main/connection.cpp +1 -1
  170. package/src/duckdb/src/main/database.cpp +13 -0
  171. package/src/duckdb/src/main/extension/extension_helper.cpp +1 -1
  172. package/src/duckdb/src/main/extension/extension_install.cpp +9 -1
  173. package/src/duckdb/src/main/extension/extension_load.cpp +3 -2
  174. package/src/duckdb/src/main/extension_install_info.cpp +1 -1
  175. package/src/duckdb/src/main/profiling_info.cpp +78 -58
  176. package/src/duckdb/src/main/query_profiler.cpp +79 -89
  177. package/src/duckdb/src/main/relation/read_csv_relation.cpp +1 -1
  178. package/src/duckdb/src/main/secret/secret.cpp +2 -1
  179. package/src/duckdb/src/main/secret/secret_manager.cpp +14 -0
  180. package/src/duckdb/src/optimizer/cte_filter_pusher.cpp +4 -2
  181. package/src/duckdb/src/optimizer/deliminator.cpp +0 -7
  182. package/src/duckdb/src/optimizer/in_clause_rewriter.cpp +7 -0
  183. package/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp +4 -1
  184. package/src/duckdb/src/optimizer/unnest_rewriter.cpp +21 -21
  185. package/src/duckdb/src/parallel/task_scheduler.cpp +9 -0
  186. package/src/duckdb/src/parser/parsed_data/exported_table_data.cpp +22 -0
  187. package/src/duckdb/src/parser/parsed_expression_iterator.cpp +3 -0
  188. package/src/duckdb/src/parser/statement/insert_statement.cpp +7 -1
  189. package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +1 -1
  190. package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +89 -87
  191. package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +2 -2
  192. package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +4 -9
  193. package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +4 -0
  194. package/src/duckdb/src/planner/binder/query_node/plan_setop.cpp +2 -2
  195. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +4 -1
  196. package/src/duckdb/src/planner/binder/statement/bind_export.cpp +4 -3
  197. package/src/duckdb/src/planner/expression_binder/order_binder.cpp +13 -3
  198. package/src/duckdb/src/planner/expression_binder.cpp +1 -1
  199. package/src/duckdb/src/planner/operator/logical_export.cpp +28 -0
  200. package/src/duckdb/src/planner/table_binding.cpp +1 -2
  201. package/src/duckdb/src/planner/table_filter.cpp +6 -2
  202. package/src/duckdb/src/storage/buffer/buffer_pool.cpp +2 -1
  203. package/src/duckdb/src/storage/checkpoint_manager.cpp +1 -1
  204. package/src/duckdb/src/storage/compression/bitpacking.cpp +7 -3
  205. package/src/duckdb/src/storage/compression/dictionary_compression.cpp +1 -1
  206. package/src/duckdb/src/storage/metadata/metadata_manager.cpp +2 -2
  207. package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +16 -0
  208. package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +29 -0
  209. package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +15 -0
  210. package/src/duckdb/src/storage/single_file_block_manager.cpp +2 -1
  211. package/src/duckdb/src/storage/statistics/distinct_statistics.cpp +3 -5
  212. package/src/duckdb/src/storage/storage_info.cpp +4 -4
  213. package/src/duckdb/src/storage/table/row_group_collection.cpp +1 -1
  214. package/src/duckdb/src/storage/table/row_version_manager.cpp +5 -1
  215. package/src/duckdb/src/storage/temporary_file_manager.cpp +1 -1
  216. package/src/duckdb/src/transaction/duck_transaction.cpp +15 -14
  217. package/src/duckdb/third_party/brotli/common/brotli_platform.h +1 -1
  218. package/src/duckdb/third_party/brotli/dec/decode.cpp +1 -1
  219. package/src/duckdb/third_party/brotli/enc/memory.cpp +4 -4
  220. package/src/duckdb/third_party/fsst/libfsst.cpp +1 -1
  221. package/src/duckdb/third_party/hyperloglog/sds.cpp +1 -1
  222. package/src/duckdb/third_party/hyperloglog/sds.hpp +1 -1
  223. package/src/duckdb/third_party/libpg_query/include/common/keywords.hpp +1 -1
  224. package/src/duckdb/third_party/libpg_query/include/datatype/timestamp.hpp +1 -1
  225. package/src/duckdb/third_party/libpg_query/include/mb/pg_wchar.hpp +1 -1
  226. package/src/duckdb/third_party/libpg_query/include/nodes/bitmapset.hpp +1 -1
  227. package/src/duckdb/third_party/libpg_query/include/nodes/lockoptions.hpp +1 -1
  228. package/src/duckdb/third_party/libpg_query/include/nodes/makefuncs.hpp +1 -1
  229. package/src/duckdb/third_party/libpg_query/include/nodes/pg_list.hpp +1 -1
  230. package/src/duckdb/third_party/libpg_query/include/nodes/value.hpp +1 -1
  231. package/src/duckdb/third_party/libpg_query/include/parser/gramparse.hpp +1 -1
  232. package/src/duckdb/third_party/libpg_query/include/parser/parser.hpp +1 -1
  233. package/src/duckdb/third_party/libpg_query/include/parser/scanner.hpp +1 -1
  234. package/src/duckdb/third_party/libpg_query/include/parser/scansup.hpp +1 -1
  235. package/src/duckdb/third_party/libpg_query/include/pg_functions.hpp +1 -1
  236. package/src/duckdb/third_party/libpg_query/pg_functions.cpp +1 -1
  237. package/src/duckdb/third_party/libpg_query/src_backend_nodes_list.cpp +1 -1
  238. package/src/duckdb/third_party/libpg_query/src_backend_nodes_makefuncs.cpp +1 -1
  239. package/src/duckdb/third_party/libpg_query/src_backend_nodes_value.cpp +1 -1
  240. package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +1964 -1964
  241. package/src/duckdb/third_party/libpg_query/src_backend_parser_parser.cpp +1 -1
  242. package/src/duckdb/third_party/libpg_query/src_backend_parser_scansup.cpp +1 -1
  243. package/src/duckdb/third_party/libpg_query/src_common_keywords.cpp +1 -1
  244. package/src/duckdb/third_party/lz4/lz4.cpp +1 -1
  245. package/src/duckdb/third_party/mbedtls/include/des_alt.h +1 -1
  246. package/src/duckdb/third_party/mbedtls/include/mbedtls/aes_alt.h +1 -1
  247. package/src/duckdb/third_party/mbedtls/include/mbedtls/aria_alt.h +1 -1
  248. package/src/duckdb/third_party/mbedtls/include/mbedtls/asn1write.h +1 -1
  249. package/src/duckdb/third_party/mbedtls/include/mbedtls/camellia_alt.h +1 -1
  250. package/src/duckdb/third_party/mbedtls/include/mbedtls/ccm_alt.h +1 -1
  251. package/src/duckdb/third_party/mbedtls/include/mbedtls/chacha20.h +1 -1
  252. package/src/duckdb/third_party/mbedtls/include/mbedtls/chachapoly.h +1 -1
  253. package/src/duckdb/third_party/mbedtls/include/mbedtls/cmac.h +1 -1
  254. package/src/duckdb/third_party/mbedtls/include/mbedtls/config_psa.h +1 -1
  255. package/src/duckdb/third_party/mbedtls/include/mbedtls/ecdsa.h +1 -1
  256. package/src/duckdb/third_party/mbedtls/include/mbedtls/ecp.h +1 -1
  257. package/src/duckdb/third_party/mbedtls/include/mbedtls/gcm_alt.h +1 -1
  258. package/src/duckdb/third_party/mbedtls/include/mbedtls/md5.h +1 -1
  259. package/src/duckdb/third_party/mbedtls/include/mbedtls/nist_kw.h +1 -1
  260. package/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs12.h +1 -1
  261. package/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs5.h +1 -1
  262. package/src/duckdb/third_party/mbedtls/include/mbedtls/psa_util.h +1 -1
  263. package/src/duckdb/third_party/mbedtls/include/mbedtls/ripemd160.h +1 -1
  264. package/src/duckdb/third_party/mbedtls/include/mbedtls/threading.h +1 -1
  265. package/src/duckdb/third_party/mbedtls/include/mbedtls/timing.h +1 -1
  266. package/src/duckdb/third_party/mbedtls/include/platform_alt.h +1 -1
  267. package/src/duckdb/third_party/mbedtls/include/psa/crypto.h +1 -1
  268. package/src/duckdb/third_party/mbedtls/include/rsa_alt.h +1 -1
  269. package/src/duckdb/third_party/mbedtls/include/sha1_alt.h +1 -1
  270. package/src/duckdb/third_party/mbedtls/include/sha256_alt.h +1 -1
  271. package/src/duckdb/third_party/mbedtls/include/sha512_alt.h +1 -1
  272. package/src/duckdb/third_party/mbedtls/include/ssl_misc.h +1 -1
  273. package/src/duckdb/third_party/mbedtls/library/aesni.h +1 -1
  274. package/src/duckdb/third_party/mbedtls/library/padlock.h +1 -1
  275. package/src/duckdb/third_party/miniz/miniz.cpp +1 -1
  276. package/src/duckdb/third_party/parquet/parquet_types.cpp +1 -1
  277. package/src/duckdb/third_party/parquet/windows_compatibility.h +1 -1
  278. package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
  279. package/src/duckdb/third_party/pcg/pcg_uint128.hpp +1 -1
  280. package/src/duckdb/third_party/skiplist/Node.h +4 -4
  281. package/src/duckdb/third_party/snappy/snappy.cc +1 -1
  282. package/src/duckdb/third_party/snappy/snappy_version.hpp +1 -1
  283. package/src/duckdb/third_party/thrift/thrift/thrift-config.h +1 -1
  284. package/src/duckdb/third_party/zstd/decompress/zstd_decompress_block.cpp +1 -1
  285. package/src/duckdb/third_party/zstd/include/zstd_static.h +1 -1
  286. package/src/duckdb/ub_src_execution_index_art.cpp +2 -0
  287. package/src/duckdb/ub_src_parser_parsed_data.cpp +2 -0
  288. package/src/duckdb/ub_src_planner_operator.cpp +2 -0
@@ -11,7 +11,7 @@
11
11
  * Modification History:
12
12
  *
13
13
  * Date Name Description
14
- * 02/15/2001 synwee Modified all methods to process its own function
14
+ * 02/15/2001 synwee Modified all methods to process its own function
15
15
  * instead of calling the equivalent c++ api (coleitr.h)
16
16
  *******************************************************************************/
17
17
 
@@ -22,8 +22,8 @@
22
22
 
23
23
  #if !UCONFIG_NO_COLLATION
24
24
 
25
- /**
26
- * This indicates an error has occured during processing or if no more CEs is
25
+ /**
26
+ * This indicates an error has occurred during processing or if no more CEs is
27
27
  * to be returned.
28
28
  * @stable ICU 2.0
29
29
  */
@@ -31,7 +31,7 @@
31
31
 
32
32
  #include "unicode/ucol.h"
33
33
 
34
- /**
34
+ /**
35
35
  * The UCollationElements struct.
36
36
  * For usage in C programs.
37
37
  * @stable ICU 2.0
@@ -42,10 +42,10 @@ typedef struct UCollationElements UCollationElements;
42
42
  * \file
43
43
  * \brief C API: UCollationElements
44
44
  *
45
- * The UCollationElements API is used as an iterator to walk through each
45
+ * The UCollationElements API is used as an iterator to walk through each
46
46
  * character of an international string. Use the iterator to return the
47
- * ordering priority of the positioned character. The ordering priority of a
48
- * character, which we refer to as a key, defines how a character is collated
47
+ * ordering priority of the positioned character. The ordering priority of a
48
+ * character, which we refer to as a key, defines how a character is collated
49
49
  * in the given collation object.
50
50
  * For example, consider the following in Slovak and in traditional Spanish collation:
51
51
  * <pre>
@@ -82,19 +82,19 @@ typedef struct UCollationElements UCollationElements;
82
82
  * ucol_next() returns the collation order of the next.
83
83
  * ucol_prev() returns the collation order of the previous character.
84
84
  * The Collation Element Iterator moves only in one direction between calls to
85
- * ucol_reset. That is, ucol_next() and ucol_prev can not be inter-used.
86
- * Whenever ucol_prev is to be called after ucol_next() or vice versa,
87
- * ucol_reset has to be called first to reset the status, shifting pointers to
88
- * either the end or the start of the string. Hence at the next call of
89
- * ucol_prev or ucol_next, the first or last collation order will be returned.
90
- * If a change of direction is done without a ucol_reset, the result is
85
+ * ucol_reset. That is, ucol_next() and ucol_prev can not be inter-used.
86
+ * Whenever ucol_prev is to be called after ucol_next() or vice versa,
87
+ * ucol_reset has to be called first to reset the status, shifting pointers to
88
+ * either the end or the start of the string. Hence at the next call of
89
+ * ucol_prev or ucol_next, the first or last collation order will be returned.
90
+ * If a change of direction is done without a ucol_reset, the result is
91
91
  * undefined.
92
- * The result of a forward iterate (ucol_next) and reversed result of the
93
- * backward iterate (ucol_prev) on the same string are equivalent, if
92
+ * The result of a forward iterate (ucol_next) and reversed result of the
93
+ * backward iterate (ucol_prev) on the same string are equivalent, if
94
94
  * collation orders with the value 0 are ignored.
95
- * Character based on the comparison level of the collator. A collation order
96
- * consists of primary order, secondary order and tertiary order. The data
97
- * type of the collation order is <strong>int32_t</strong>.
95
+ * Character based on the comparison level of the collator. A collation order
96
+ * consists of primary order, secondary order and tertiary order. The data
97
+ * type of the collation order is <strong>int32_t</strong>.
98
98
  *
99
99
  * @see UCollator
100
100
  */
@@ -109,7 +109,7 @@ typedef struct UCollationElements UCollationElements;
109
109
  * @return a struct containing collation element information
110
110
  * @stable ICU 2.0
111
111
  */
112
- U_STABLE UCollationElements* U_EXPORT2
112
+ U_STABLE UCollationElements* U_EXPORT2
113
113
  ucol_openElements(const UCollator *coll,
114
114
  const UChar *text,
115
115
  int32_t textLength,
@@ -123,7 +123,7 @@ ucol_openElements(const UCollator *coll,
123
123
  * @return the hash code.
124
124
  * @stable ICU 2.0
125
125
  */
126
- U_STABLE int32_t U_EXPORT2
126
+ U_STABLE int32_t U_EXPORT2
127
127
  ucol_keyHashCode(const uint8_t* key, int32_t length);
128
128
 
129
129
  /**
@@ -132,7 +132,7 @@ ucol_keyHashCode(const uint8_t* key, int32_t length);
132
132
  * @param elems The UCollationElements to close.
133
133
  * @stable ICU 2.0
134
134
  */
135
- U_STABLE void U_EXPORT2
135
+ U_STABLE void U_EXPORT2
136
136
  ucol_closeElements(UCollationElements *elems);
137
137
 
138
138
  /**
@@ -144,7 +144,7 @@ ucol_closeElements(UCollationElements *elems);
144
144
  * @see ucol_previous
145
145
  * @stable ICU 2.0
146
146
  */
147
- U_STABLE void U_EXPORT2
147
+ U_STABLE void U_EXPORT2
148
148
  ucol_reset(UCollationElements *elems);
149
149
 
150
150
  /**
@@ -152,41 +152,41 @@ ucol_reset(UCollationElements *elems);
152
152
  * A single character may contain more than one collation element.
153
153
  * @param elems The UCollationElements containing the text.
154
154
  * @param status A pointer to a UErrorCode to receive any errors.
155
- * @return The next collation elements ordering, otherwise returns UCOL_NULLORDER
156
- * if an error has occured or if the end of string has been reached
155
+ * @return The next collation elements ordering, otherwise returns UCOL_NULLORDER
156
+ * if an error has occurred or if the end of string has been reached
157
157
  * @stable ICU 2.0
158
158
  */
159
- U_STABLE int32_t U_EXPORT2
159
+ U_STABLE int32_t U_EXPORT2
160
160
  ucol_next(UCollationElements *elems, UErrorCode *status);
161
161
 
162
162
  /**
163
163
  * Get the ordering priority of the previous collation element in the text.
164
164
  * A single character may contain more than one collation element.
165
- * Note that internally a stack is used to store buffered collation elements.
165
+ * Note that internally a stack is used to store buffered collation elements.
166
166
  * @param elems The UCollationElements containing the text.
167
- * @param status A pointer to a UErrorCode to receive any errors. Noteably
167
+ * @param status A pointer to a UErrorCode to receive any errors. Noteably
168
168
  * a U_BUFFER_OVERFLOW_ERROR is returned if the internal stack
169
169
  * buffer has been exhausted.
170
- * @return The previous collation elements ordering, otherwise returns
171
- * UCOL_NULLORDER if an error has occured or if the start of string has
170
+ * @return The previous collation elements ordering, otherwise returns
171
+ * UCOL_NULLORDER if an error has occurred or if the start of string has
172
172
  * been reached.
173
173
  * @stable ICU 2.0
174
174
  */
175
- U_STABLE int32_t U_EXPORT2
175
+ U_STABLE int32_t U_EXPORT2
176
176
  ucol_previous(UCollationElements *elems, UErrorCode *status);
177
177
 
178
178
  /**
179
- * Get the maximum length of any expansion sequences that end with the
179
+ * Get the maximum length of any expansion sequences that end with the
180
180
  * specified comparison order.
181
181
  * This is useful for .... ?
182
182
  * @param elems The UCollationElements containing the text.
183
183
  * @param order A collation order returned by previous or next.
184
- * @return maximum size of the expansion sequences ending with the collation
185
- * element or 1 if collation element does not occur at the end of any
184
+ * @return maximum size of the expansion sequences ending with the collation
185
+ * element or 1 if collation element does not occur at the end of any
186
186
  * expansion sequence
187
187
  * @stable ICU 2.0
188
188
  */
189
- U_STABLE int32_t U_EXPORT2
189
+ U_STABLE int32_t U_EXPORT2
190
190
  ucol_getMaxExpansion(const UCollationElements *elems, int32_t order);
191
191
 
192
192
  /**
@@ -201,8 +201,8 @@ ucol_getMaxExpansion(const UCollationElements *elems, int32_t order);
201
201
  * @see ucol_getText
202
202
  * @stable ICU 2.0
203
203
  */
204
- U_STABLE void U_EXPORT2
205
- ucol_setText( UCollationElements *elems,
204
+ U_STABLE void U_EXPORT2
205
+ ucol_setText( UCollationElements *elems,
206
206
  const UChar *text,
207
207
  int32_t textLength,
208
208
  UErrorCode *status);
@@ -216,7 +216,7 @@ ucol_setText( UCollationElements *elems,
216
216
  * @see ucol_setOffset
217
217
  * @stable ICU 2.0
218
218
  */
219
- U_STABLE int32_t U_EXPORT2
219
+ U_STABLE int32_t U_EXPORT2
220
220
  ucol_getOffset(const UCollationElements *elems);
221
221
 
222
222
  /**
@@ -231,7 +231,7 @@ ucol_getOffset(const UCollationElements *elems);
231
231
  * @see ucol_getOffset
232
232
  * @stable ICU 2.0
233
233
  */
234
- U_STABLE void U_EXPORT2
234
+ U_STABLE void U_EXPORT2
235
235
  ucol_setOffset(UCollationElements *elems,
236
236
  int32_t offset,
237
237
  UErrorCode *status);
@@ -243,7 +243,7 @@ ucol_setOffset(UCollationElements *elems,
243
243
  * @stable ICU 2.6
244
244
  */
245
245
  U_STABLE int32_t U_EXPORT2
246
- ucol_primaryOrder (int32_t order);
246
+ ucol_primaryOrder (int32_t order);
247
247
 
248
248
  /**
249
249
  * Get the secondary order of a collation order.
@@ -252,7 +252,7 @@ ucol_primaryOrder (int32_t order);
252
252
  * @stable ICU 2.6
253
253
  */
254
254
  U_STABLE int32_t U_EXPORT2
255
- ucol_secondaryOrder (int32_t order);
255
+ ucol_secondaryOrder (int32_t order);
256
256
 
257
257
  /**
258
258
  * Get the tertiary order of a collation order.
@@ -261,7 +261,7 @@ ucol_secondaryOrder (int32_t order);
261
261
  * @stable ICU 2.6
262
262
  */
263
263
  U_STABLE int32_t U_EXPORT2
264
- ucol_tertiaryOrder (int32_t order);
264
+ ucol_tertiaryOrder (int32_t order);
265
265
 
266
266
  #endif /* #if !UCONFIG_NO_COLLATION */
267
267
 
@@ -1,10 +1,10 @@
1
1
  // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /********************************************************************
4
- * COPYRIGHT:
4
+ * COPYRIGHT:
5
5
  * Copyright (c) 1997-2011, International Business Machines Corporation and
6
6
  * others. All Rights Reserved.
7
- * Copyright (C) 2010 , Yahoo! Inc.
7
+ * Copyright (C) 2010 , Yahoo! Inc.
8
8
  ********************************************************************
9
9
  *
10
10
  * file name: umsg.h
@@ -100,8 +100,8 @@
100
100
  * u_uastrcpy(str, "MyDisk");
101
101
  * u_uastrcpy(pattern, "The disk {1} contains {0,choice,0#no files|1#one file|1<{0,number,integer} files}");
102
102
  * for(i=0; i<3; i++){
103
- * resultlength=0;
104
- * resultLengthOut=u_formatMessage( "en_US", pattern, u_strlen(pattern), NULL, resultlength, &status, testArgs[i], str);
103
+ * resultlength=0;
104
+ * resultLengthOut=u_formatMessage( "en_US", pattern, u_strlen(pattern), NULL, resultlength, &status, testArgs[i], str);
105
105
  * if(status==U_BUFFER_OVERFLOW_ERROR){
106
106
  * status=U_ZERO_ERROR;
107
107
  * resultlength=resultLengthOut+1;
@@ -175,7 +175,7 @@
175
175
  * @see u_parseMessage
176
176
  * @stable ICU 2.0
177
177
  */
178
- U_STABLE int32_t U_EXPORT2
178
+ U_STABLE int32_t U_EXPORT2
179
179
  u_formatMessage(const char *locale,
180
180
  const UChar *pattern,
181
181
  int32_t patternLength,
@@ -202,7 +202,7 @@ u_formatMessage(const char *locale,
202
202
  * @see u_parseMessage
203
203
  * @stable ICU 2.0
204
204
  */
205
- U_STABLE int32_t U_EXPORT2
205
+ U_STABLE int32_t U_EXPORT2
206
206
  u_vformatMessage( const char *locale,
207
207
  const UChar *pattern,
208
208
  int32_t patternLength,
@@ -227,7 +227,7 @@ u_vformatMessage( const char *locale,
227
227
  * @see u_formatMessage
228
228
  * @stable ICU 2.0
229
229
  */
230
- U_STABLE void U_EXPORT2
230
+ U_STABLE void U_EXPORT2
231
231
  u_parseMessage( const char *locale,
232
232
  const UChar *pattern,
233
233
  int32_t patternLength,
@@ -252,7 +252,7 @@ u_parseMessage( const char *locale,
252
252
  * @see u_formatMessage
253
253
  * @stable ICU 2.0
254
254
  */
255
- U_STABLE void U_EXPORT2
255
+ U_STABLE void U_EXPORT2
256
256
  u_vparseMessage(const char *locale,
257
257
  const UChar *pattern,
258
258
  int32_t patternLength,
@@ -281,7 +281,7 @@ u_vparseMessage(const char *locale,
281
281
  * @see u_parseMessage
282
282
  * @stable ICU 2.0
283
283
  */
284
- U_STABLE int32_t U_EXPORT2
284
+ U_STABLE int32_t U_EXPORT2
285
285
  u_formatMessageWithError( const char *locale,
286
286
  const UChar *pattern,
287
287
  int32_t patternLength,
@@ -310,7 +310,7 @@ u_formatMessageWithError( const char *locale,
310
310
  * output was truncated.
311
311
  * @stable ICU 2.0
312
312
  */
313
- U_STABLE int32_t U_EXPORT2
313
+ U_STABLE int32_t U_EXPORT2
314
314
  u_vformatMessageWithError( const char *locale,
315
315
  const UChar *pattern,
316
316
  int32_t patternLength,
@@ -338,7 +338,7 @@ u_vformatMessageWithError( const char *locale,
338
338
  * @see u_formatMessage
339
339
  * @stable ICU 2.0
340
340
  */
341
- U_STABLE void U_EXPORT2
341
+ U_STABLE void U_EXPORT2
342
342
  u_parseMessageWithError(const char *locale,
343
343
  const UChar *pattern,
344
344
  int32_t patternLength,
@@ -366,7 +366,7 @@ u_parseMessageWithError(const char *locale,
366
366
  * @see u_formatMessage
367
367
  * @stable ICU 2.0
368
368
  */
369
- U_STABLE void U_EXPORT2
369
+ U_STABLE void U_EXPORT2
370
370
  u_vparseMessageWithError(const char *locale,
371
371
  const UChar *pattern,
372
372
  int32_t patternLength,
@@ -377,7 +377,7 @@ u_vparseMessageWithError(const char *locale,
377
377
  UErrorCode* status);
378
378
 
379
379
  /*----------------------- New experimental API --------------------------- */
380
- /**
380
+ /**
381
381
  * The message format object
382
382
  * @stable ICU 2.0
383
383
  */
@@ -389,14 +389,14 @@ typedef void* UMessageFormat;
389
389
  * @param pattern A pattern specifying the format to use.
390
390
  * @param patternLength Length of the pattern to use
391
391
  * @param locale The locale for which the messages are formatted.
392
- * @param parseError A pointer to UParseError struct to receive any errors
393
- * occured during parsing. Can be NULL.
392
+ * @param parseError A pointer to UParseError struct to receive any errors
393
+ * occurred during parsing. Can be NULL.
394
394
  * @param status A pointer to an UErrorCode to receive any errors.
395
- * @return A pointer to a UMessageFormat to use for formatting
396
- * messages, or 0 if an error occurred.
395
+ * @return A pointer to a UMessageFormat to use for formatting
396
+ * messages, or 0 if an error occurred.
397
397
  * @stable ICU 2.0
398
398
  */
399
- U_STABLE UMessageFormat* U_EXPORT2
399
+ U_STABLE UMessageFormat* U_EXPORT2
400
400
  umsg_open( const UChar *pattern,
401
401
  int32_t patternLength,
402
402
  const char *locale,
@@ -409,7 +409,7 @@ umsg_open( const UChar *pattern,
409
409
  * @param format The formatter to close.
410
410
  * @stable ICU 2.0
411
411
  */
412
- U_STABLE void U_EXPORT2
412
+ U_STABLE void U_EXPORT2
413
413
  umsg_close(UMessageFormat* format);
414
414
 
415
415
  #if U_SHOW_CPLUSPLUS_API
@@ -439,7 +439,7 @@ U_NAMESPACE_END
439
439
  * @return A pointer to a UDateFormat identical to fmt.
440
440
  * @stable ICU 2.0
441
441
  */
442
- U_STABLE UMessageFormat U_EXPORT2
442
+ U_STABLE UMessageFormat U_EXPORT2
443
443
  umsg_clone(const UMessageFormat *fmt,
444
444
  UErrorCode *status);
445
445
 
@@ -450,7 +450,7 @@ umsg_clone(const UMessageFormat *fmt,
450
450
  * @param locale The locale the formatter should use.
451
451
  * @stable ICU 2.0
452
452
  */
453
- U_STABLE void U_EXPORT2
453
+ U_STABLE void U_EXPORT2
454
454
  umsg_setLocale(UMessageFormat *fmt,
455
455
  const char* locale);
456
456
 
@@ -461,7 +461,7 @@ umsg_setLocale(UMessageFormat *fmt,
461
461
  * @return the locale.
462
462
  * @stable ICU 2.0
463
463
  */
464
- U_STABLE const char* U_EXPORT2
464
+ U_STABLE const char* U_EXPORT2
465
465
  umsg_getLocale(const UMessageFormat *fmt);
466
466
 
467
467
  /**
@@ -469,14 +469,14 @@ umsg_getLocale(const UMessageFormat *fmt);
469
469
  * @param fmt The formatter to use
470
470
  * @param pattern The pattern to be applied.
471
471
  * @param patternLength Length of the pattern to use
472
- * @param parseError Struct to receive information on position
472
+ * @param parseError Struct to receive information on position
473
473
  * of error if an error is encountered.Can be NULL.
474
474
  * @param status Output param set to success/failure code on
475
475
  * exit. If the pattern is invalid, this will be
476
476
  * set to a failure result.
477
477
  * @stable ICU 2.0
478
478
  */
479
- U_STABLE void U_EXPORT2
479
+ U_STABLE void U_EXPORT2
480
480
  umsg_applyPattern( UMessageFormat *fmt,
481
481
  const UChar* pattern,
482
482
  int32_t patternLength,
@@ -490,13 +490,13 @@ umsg_applyPattern( UMessageFormat *fmt,
490
490
  * @param resultLength The maximum size of result.
491
491
  * @param status Output param set to success/failure code on
492
492
  * exit. If the pattern is invalid, this will be
493
- * set to a failure result.
493
+ * set to a failure result.
494
494
  * @return the pattern of the format
495
495
  * @stable ICU 2.0
496
496
  */
497
- U_STABLE int32_t U_EXPORT2
497
+ U_STABLE int32_t U_EXPORT2
498
498
  umsg_toPattern(const UMessageFormat *fmt,
499
- UChar* result,
499
+ UChar* result,
500
500
  int32_t resultLength,
501
501
  UErrorCode* status);
502
502
 
@@ -509,13 +509,13 @@ umsg_toPattern(const UMessageFormat *fmt,
509
509
  * @param result A pointer to a buffer to receive the formatted message.
510
510
  * @param resultLength The maximum size of result.
511
511
  * @param status A pointer to an UErrorCode to receive any errors
512
- * @param ... A variable-length argument list containing the arguments
512
+ * @param ... A variable-length argument list containing the arguments
513
513
  * specified in pattern.
514
- * @return The total buffer size needed; if greater than resultLength,
514
+ * @return The total buffer size needed; if greater than resultLength,
515
515
  * the output was truncated.
516
516
  * @stable ICU 2.0
517
517
  */
518
- U_STABLE int32_t U_EXPORT2
518
+ U_STABLE int32_t U_EXPORT2
519
519
  umsg_format( const UMessageFormat *fmt,
520
520
  UChar *result,
521
521
  int32_t resultLength,
@@ -527,17 +527,17 @@ umsg_format( const UMessageFormat *fmt,
527
527
  * This function may perform re-ordering of the arguments depending on the
528
528
  * locale. For all numeric arguments, double is assumed unless the type is
529
529
  * explicitly integer. All choice format arguments must be of type double.
530
- * @param fmt The formatter to use
530
+ * @param fmt The formatter to use
531
531
  * @param result A pointer to a buffer to receive the formatted message.
532
532
  * @param resultLength The maximum size of result.
533
- * @param ap A variable-length argument list containing the arguments
533
+ * @param ap A variable-length argument list containing the arguments
534
534
  * @param status A pointer to an UErrorCode to receive any errors
535
535
  * specified in pattern.
536
- * @return The total buffer size needed; if greater than resultLength,
536
+ * @return The total buffer size needed; if greater than resultLength,
537
537
  * the output was truncated.
538
538
  * @stable ICU 2.0
539
539
  */
540
- U_STABLE int32_t U_EXPORT2
540
+ U_STABLE int32_t U_EXPORT2
541
541
  umsg_vformat( const UMessageFormat *fmt,
542
542
  UChar *result,
543
543
  int32_t resultLength,
@@ -549,7 +549,7 @@ umsg_vformat( const UMessageFormat *fmt,
549
549
  * For numeric arguments, this function will always use doubles. Integer types
550
550
  * should not be passed.
551
551
  * This function is not able to parse all output from {@link #umsg_format }.
552
- * @param fmt The formatter to use
552
+ * @param fmt The formatter to use
553
553
  * @param source The text to parse.
554
554
  * @param sourceLength The length of source, or -1 if null-terminated.
555
555
  * @param count Output param to receive number of elements returned.
@@ -558,7 +558,7 @@ umsg_vformat( const UMessageFormat *fmt,
558
558
  * specified in pattern.
559
559
  * @stable ICU 2.0
560
560
  */
561
- U_STABLE void U_EXPORT2
561
+ U_STABLE void U_EXPORT2
562
562
  umsg_parse( const UMessageFormat *fmt,
563
563
  const UChar *source,
564
564
  int32_t sourceLength,
@@ -571,7 +571,7 @@ umsg_parse( const UMessageFormat *fmt,
571
571
  * For numeric arguments, this function will always use doubles. Integer types
572
572
  * should not be passed.
573
573
  * This function is not able to parse all output from {@link #umsg_format }.
574
- * @param fmt The formatter to use
574
+ * @param fmt The formatter to use
575
575
  * @param source The text to parse.
576
576
  * @param sourceLength The length of source, or -1 if null-terminated.
577
577
  * @param count Output param to receive number of elements returned.
@@ -581,7 +581,7 @@ umsg_parse( const UMessageFormat *fmt,
581
581
  * @see u_formatMessage
582
582
  * @stable ICU 2.0
583
583
  */
584
- U_STABLE void U_EXPORT2
584
+ U_STABLE void U_EXPORT2
585
585
  umsg_vparse(const UMessageFormat *fmt,
586
586
  const UChar *source,
587
587
  int32_t sourceLength,
@@ -593,7 +593,7 @@ umsg_vparse(const UMessageFormat *fmt,
593
593
  /**
594
594
  * Convert an 'apostrophe-friendly' pattern into a standard
595
595
  * pattern. Standard patterns treat all apostrophes as
596
- * quotes, which is problematic in some languages, e.g.
596
+ * quotes, which is problematic in some languages, e.g.
597
597
  * French, where apostrophe is commonly used. This utility
598
598
  * assumes that only an unpaired apostrophe immediately before
599
599
  * a brace is a true quote. Other unpaired apostrophes are paired,
@@ -613,8 +613,8 @@ umsg_vparse(const UMessageFormat *fmt,
613
613
  * not
614
614
  * @stable ICU 3.4
615
615
  */
616
- U_STABLE int32_t U_EXPORT2
617
- umsg_autoQuoteApostrophe(const UChar* pattern,
616
+ U_STABLE int32_t U_EXPORT2
617
+ umsg_autoQuoteApostrophe(const UChar* pattern,
618
618
  int32_t patternLength,
619
619
  UChar* dest,
620
620
  int32_t destCapacity,
@@ -43,7 +43,7 @@
43
43
  #define isContinuation(CE) (((CE) & UCOL_CONTINUATION_MARKER) == UCOL_CONTINUATION_MARKER)
44
44
 
45
45
  /**
46
- * This indicates an error has occured during processing or there are no more CEs
46
+ * This indicates an error has occurred during processing or there are no more CEs
47
47
  * to be returned.
48
48
  */
49
49
  #define UCOL_PROCESSED_NULLORDER ((int64_t)U_INT64_MAX)
@@ -101,7 +101,7 @@ public:
101
101
  * @param ixHigh a pointer to an int32_t to receive the iterator index after fetching the CE.
102
102
  * @param status A pointer to an UErrorCode to receive any errors.
103
103
  * @return The next collation elements ordering, otherwise returns UCOL_PROCESSED_NULLORDER
104
- * if an error has occured or if the end of string has been reached
104
+ * if an error has occurred or if the end of string has been reached
105
105
  */
106
106
  int64_t nextProcessed(int32_t *ixLow, int32_t *ixHigh, UErrorCode *status);
107
107
  /**
@@ -114,7 +114,7 @@ public:
114
114
  * a U_BUFFER_OVERFLOW_ERROR is returned if the internal stack
115
115
  * buffer has been exhausted.
116
116
  * @return The previous collation elements ordering, otherwise returns
117
- * UCOL_PROCESSED_NULLORDER if an error has occured or if the start of
117
+ * UCOL_PROCESSED_NULLORDER if an error has occurred or if the start of
118
118
  * string has been reached.
119
119
  */
120
120
  int64_t previousProcessed(int32_t *ixLow, int32_t *ixHigh, UErrorCode *status);
@@ -301,7 +301,7 @@ private:
301
301
  //! Get JSON pointer (/field/index/... syntax)
302
302
  static inline yyjson_val *GetPointer(yyjson_val *val, const char *ptr, const idx_t &len) {
303
303
  yyjson_ptr_err err;
304
- return len == 1 ? val : unsafe_yyjson_ptr_getx(val, ptr, len, &err);
304
+ return unsafe_yyjson_ptr_getx(val, ptr, len, &err);
305
305
  }
306
306
  //! Get JSON path ($.field[index]... syntax)
307
307
  static yyjson_val *GetPath(yyjson_val *val, const char *ptr, const idx_t &len);
@@ -214,8 +214,8 @@ void JSONStructureNode::RefineCandidateTypesObject(yyjson_val *vals[], const idx
214
214
  D_ASSERT(it != key_map.end());
215
215
  const auto child_idx = it->second;
216
216
  child_vals[child_idx][i] = child_val;
217
+ found_key_count += !found_keys[child_idx];
217
218
  found_keys[child_idx] = true;
218
- found_key_count++;
219
219
  }
220
220
 
221
221
  if (found_key_count != child_count) {
@@ -562,10 +562,12 @@ static void MergeNodeVal(JSONStructureNode &merged, const JSONStructureDescripti
562
562
  }
563
563
  if (!merged.initialized) {
564
564
  merged_desc.candidate_types = child_desc.candidate_types;
565
- } else if (!merged_desc.candidate_types.empty() && !child_desc.candidate_types.empty() &&
566
- merged_desc.candidate_types.back() != child_desc.candidate_types.back()) {
565
+ } else if (merged_desc.candidate_types.empty() != child_desc.candidate_types.empty() // both empty or neither empty
566
+ || (!merged_desc.candidate_types.empty() &&
567
+ merged_desc.candidate_types.back() != child_desc.candidate_types.back())) { // non-empty: check type
567
568
  merged_desc.candidate_types.clear(); // Not the same, default to VARCHAR
568
569
  }
570
+
569
571
  merged.initialized = true;
570
572
  }
571
573
 
@@ -704,14 +706,18 @@ static LogicalType StructureToTypeObject(ClientContext &context, const JSONStruc
704
706
  D_ASSERT(node.descriptions.size() == 1 && node.descriptions[0].type == LogicalTypeId::STRUCT);
705
707
  auto &desc = node.descriptions[0];
706
708
 
707
- // If it's an empty struct we do MAP of JSON instead
708
709
  if (desc.children.empty()) {
709
- // Empty struct - let's do MAP of JSON instead
710
- return LogicalType::MAP(LogicalType::VARCHAR, null_type);
710
+ if (map_inference_threshold != DConstants::INVALID_INDEX) {
711
+ // Empty struct - let's do MAP of JSON instead
712
+ return LogicalType::MAP(LogicalType::VARCHAR, null_type);
713
+ } else {
714
+ return LogicalType::JSON();
715
+ }
711
716
  }
712
717
 
713
718
  // If it's an inconsistent object we also just do MAP with the best-possible, recursively-merged value type
714
- if (IsStructureInconsistent(desc, node.count, node.null_count, field_appearance_threshold)) {
719
+ if (map_inference_threshold != DConstants::INVALID_INDEX &&
720
+ IsStructureInconsistent(desc, node.count, node.null_count, field_appearance_threshold)) {
715
721
  return LogicalType::MAP(LogicalType::VARCHAR,
716
722
  GetMergedType(context, node, max_depth, field_appearance_threshold,
717
723
  map_inference_threshold, depth + 1, null_type));
@@ -2244,7 +2244,8 @@ unique_ptr<ColumnWriter> ColumnWriter::CreateWriterRecursive(ClientContext &cont
2244
2244
  schemas.push_back(std::move(schema_element));
2245
2245
  schema_path.push_back(name);
2246
2246
 
2247
- if (type.id() == LogicalTypeId::BLOB && type.GetAlias() == "WKB_BLOB") {
2247
+ if (type.id() == LogicalTypeId::BLOB && type.GetAlias() == "WKB_BLOB" &&
2248
+ GeoParquetFileMetadata::IsGeoParquetConversionEnabled(context)) {
2248
2249
  return make_uniq<WKBColumnWriter>(context, writer, schema_idx, std::move(schema_path), max_repeat, max_define,
2249
2250
  can_have_nulls, name);
2250
2251
  }
@@ -177,7 +177,14 @@ void GeoParquetColumnMetadataWriter::Update(GeoParquetColumnMetadata &meta, Vect
177
177
  //------------------------------------------------------------------------------
178
178
 
179
179
  unique_ptr<GeoParquetFileMetadata>
180
- GeoParquetFileMetadata::TryRead(const duckdb_parquet::format::FileMetaData &file_meta_data, ClientContext &context) {
180
+ GeoParquetFileMetadata::TryRead(const duckdb_parquet::format::FileMetaData &file_meta_data,
181
+ const ClientContext &context) {
182
+
183
+ // Conversion not enabled, or spatial is not loaded!
184
+ if (!IsGeoParquetConversionEnabled(context)) {
185
+ return nullptr;
186
+ }
187
+
181
188
  for (auto &kv : file_meta_data.key_value_metadata) {
182
189
  if (kv.key == "geo") {
183
190
  const auto geo_metadata = yyjson_read(kv.value.c_str(), kv.value.size(), 0);
@@ -186,14 +193,6 @@ GeoParquetFileMetadata::TryRead(const duckdb_parquet::format::FileMetaData &file
186
193
  return nullptr;
187
194
  }
188
195
 
189
- // Check if the spatial extension is loaded, or try to autoload it.
190
- const auto is_loaded = ExtensionHelper::TryAutoLoadExtension(context, "spatial");
191
- if (!is_loaded) {
192
- // Spatial extension is not available, we can't make use of the metadata anyway.
193
- yyjson_doc_free(geo_metadata);
194
- return nullptr;
195
- }
196
-
197
196
  try {
198
197
  // Check the root object
199
198
  const auto root = yyjson_doc_get_root(geo_metadata);
@@ -368,6 +367,22 @@ void GeoParquetFileMetadata::RegisterGeometryColumn(const string &column_name) {
368
367
  geometry_columns[column_name] = GeoParquetColumnMetadata();
369
368
  }
370
369
 
370
+ bool GeoParquetFileMetadata::IsGeoParquetConversionEnabled(const ClientContext &context) {
371
+ Value geoparquet_enabled;
372
+ if (!context.TryGetCurrentSetting("enable_geoparquet_conversion", geoparquet_enabled)) {
373
+ return false;
374
+ }
375
+ if (!geoparquet_enabled.GetValue<bool>()) {
376
+ // Disabled by setting
377
+ return false;
378
+ }
379
+ if (!context.db->ExtensionIsLoaded("spatial")) {
380
+ // Spatial extension is not loaded, we cant convert anyway
381
+ return false;
382
+ }
383
+ return true;
384
+ }
385
+
371
386
  unique_ptr<ColumnReader> GeoParquetFileMetadata::CreateColumnReader(ParquetReader &reader,
372
387
  const LogicalType &logical_type,
373
388
  const SchemaElement &s_ele, idx_t schema_idx_p,
@@ -120,7 +120,7 @@ public:
120
120
  // Try to read GeoParquet metadata. Returns nullptr if not found, invalid or the required spatial extension is not
121
121
  // available.
122
122
  static unique_ptr<GeoParquetFileMetadata> TryRead(const duckdb_parquet::format::FileMetaData &file_meta_data,
123
- ClientContext &context);
123
+ const ClientContext &context);
124
124
  void Write(duckdb_parquet::format::FileMetaData &file_meta_data) const;
125
125
 
126
126
  void FlushColumnMeta(const string &column_name, const GeoParquetColumnMetadata &meta);
@@ -133,6 +133,8 @@ public:
133
133
  bool IsGeometryColumn(const string &column_name) const;
134
134
  void RegisterGeometryColumn(const string &column_name);
135
135
 
136
+ static bool IsGeoParquetConversionEnabled(const ClientContext &context);
137
+
136
138
  private:
137
139
  mutex write_lock;
138
140
  string version = "1.1.0";
@@ -93,6 +93,7 @@ struct ParquetOptions {
93
93
 
94
94
  MultiFileReaderOptions file_options;
95
95
  vector<ParquetColumnDefinition> schema;
96
+ idx_t explicit_cardinality = 0;
96
97
 
97
98
  public:
98
99
  void Serialize(Serializer &serializer) const;