couchbase 3.5.4 → 3.5.6

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 (466) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/CMakeLists.txt +8 -6
  4. data/ext/cache/cpm/{CPM_0.38.6.cmake → CPM_0.40.5.cmake} +152 -22
  5. data/ext/cache/extconf_include.rb +3 -3
  6. data/ext/cache/mozilla-ca-bundle.crt +94 -118
  7. data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
  8. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/CMakeLists.txt +30 -6
  9. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/utils.cmake +13 -2
  10. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async_logger-inl.h +5 -7
  11. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/mpmc_blocking_q.h +3 -3
  12. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/os-inl.h +3 -3
  13. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/thread_pool-inl.h +3 -8
  14. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/thread_pool.h +3 -14
  15. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/base.h +47 -31
  16. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/format-inl.h +32 -8
  17. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/format.h +22 -14
  18. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/ranges.h +1 -1
  19. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/mdc.h +4 -0
  20. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/pattern_formatter-inl.h +16 -2
  21. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ansicolor_sink.h +1 -1
  22. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/base_sink.h +4 -4
  23. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/callback_sink.h +1 -1
  24. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/daily_file_sink.h +3 -0
  25. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/hourly_file_sink.h +2 -0
  26. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/msvc_sink.h +1 -1
  27. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +1 -1
  28. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/syslog_sink.h +3 -2
  29. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +9 -0
  30. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/version.h +2 -2
  31. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/format.cc → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/src/bundled_fmtlib_format.cpp} +10 -5
  32. data/ext/couchbase/CMakeLists.txt +3 -2
  33. data/ext/couchbase/cmake/APKBUILD.in +54 -0
  34. data/ext/couchbase/cmake/Backtrace.cmake +3 -1
  35. data/ext/couchbase/cmake/CPM.cmake +1 -1
  36. data/ext/couchbase/cmake/CompilerWarnings.cmake +0 -5
  37. data/ext/couchbase/cmake/Packaging.cmake +174 -11
  38. data/ext/couchbase/cmake/RPath.cmake +10 -0
  39. data/ext/couchbase/cmake/Testing.cmake +0 -4
  40. data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +7 -26
  41. data/ext/couchbase/cmake/VersionInfo.cmake +4 -0
  42. data/ext/couchbase/cmake/build_version.hxx.in +1 -0
  43. data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +2 -2
  44. data/ext/couchbase/cmake/couchbase_cxx_client.pc.in +2 -2
  45. data/ext/couchbase/core/agent_config.cxx +1 -1
  46. data/ext/couchbase/core/agent_group_config.cxx +1 -1
  47. data/ext/couchbase/core/bucket.cxx +25 -23
  48. data/ext/couchbase/core/bucket.hxx +2 -1
  49. data/ext/couchbase/core/cluster.cxx +9 -9
  50. data/ext/couchbase/core/cluster.hxx +2 -1
  51. data/ext/couchbase/core/cluster_agent_config.cxx +1 -1
  52. data/ext/couchbase/core/collections_component.cxx +1 -1
  53. data/ext/couchbase/core/columnar/agent_config.cxx +2 -2
  54. data/ext/couchbase/core/columnar/error.hxx +0 -1
  55. data/ext/couchbase/core/columnar/query_component.cxx +2 -2
  56. data/ext/couchbase/core/config_profiles.cxx +1 -1
  57. data/ext/couchbase/core/core_sdk_shim.cxx +1 -1
  58. data/ext/couchbase/core/crud_component.cxx +1 -1
  59. data/ext/couchbase/core/design_document_namespace_fmt.hxx +1 -1
  60. data/ext/couchbase/core/diagnostics_fmt.hxx +1 -1
  61. data/ext/couchbase/core/document_id.cxx +1 -1
  62. data/ext/couchbase/core/document_id_fmt.hxx +1 -1
  63. data/ext/couchbase/core/error_context/analytics_json.hxx +3 -1
  64. data/ext/couchbase/core/error_context/key_value_json.hxx +1 -1
  65. data/ext/couchbase/core/error_context/query_public_json.hxx +1 -1
  66. data/ext/couchbase/core/error_context/subdocument_json.hxx +1 -1
  67. data/ext/couchbase/core/fmt/key_value_error_map_attribute.hxx +1 -1
  68. data/ext/couchbase/core/fmt/key_value_extended_error_info.hxx +1 -1
  69. data/ext/couchbase/core/fmt/key_value_status_code.hxx +1 -1
  70. data/ext/couchbase/core/http_component.cxx +3 -3
  71. data/ext/couchbase/core/impl/analytics.cxx +1 -0
  72. data/ext/couchbase/core/impl/best_effort_retry_strategy.cxx +1 -1
  73. data/ext/couchbase/core/impl/cluster.cxx +55 -18
  74. data/ext/couchbase/core/impl/collection.cxx +40 -15
  75. data/ext/couchbase/core/impl/date_range.cxx +2 -2
  76. data/ext/couchbase/core/impl/date_range_query.cxx +2 -2
  77. data/ext/couchbase/core/impl/dns_srv_tracker.cxx +1 -1
  78. data/ext/couchbase/core/impl/error.cxx +27 -4
  79. data/ext/couchbase/core/impl/expiry.cxx +2 -2
  80. data/ext/couchbase/core/impl/fail_fast_retry_strategy.cxx +1 -2
  81. data/ext/couchbase/core/impl/get_replica.hxx +2 -0
  82. data/ext/couchbase/core/impl/key_value_error_context.cxx +6 -4
  83. data/ext/couchbase/core/impl/lookup_in_replica.hxx +2 -0
  84. data/ext/couchbase/core/impl/numeric_range.cxx +1 -1
  85. data/ext/couchbase/core/impl/observe_poll.cxx +7 -7
  86. data/ext/couchbase/core/impl/observe_seqno.hxx +2 -0
  87. data/ext/couchbase/core/impl/query.cxx +1 -0
  88. data/ext/couchbase/core/impl/query_error_context.cxx +3 -2
  89. data/ext/couchbase/core/impl/replica_utils.cxx +5 -5
  90. data/ext/couchbase/core/impl/replica_utils.hxx +2 -1
  91. data/ext/couchbase/core/impl/scope.cxx +5 -6
  92. data/ext/couchbase/core/impl/search.cxx +3 -1
  93. data/ext/couchbase/core/io/config_tracker.cxx +1 -1
  94. data/ext/couchbase/core/io/dns_client.cxx +23 -8
  95. data/ext/couchbase/core/io/http_command.hxx +2 -2
  96. data/ext/couchbase/core/io/http_parser.cxx +1 -1
  97. data/ext/couchbase/core/io/http_session.cxx +4 -0
  98. data/ext/couchbase/core/io/http_session.hxx +4 -2
  99. data/ext/couchbase/core/io/mcbp_command.hxx +2 -2
  100. data/ext/couchbase/core/key_value_config.cxx +2 -2
  101. data/ext/couchbase/core/logger/logger.cxx +1 -1
  102. data/ext/couchbase/core/logger/logger.hxx +1 -1
  103. data/ext/couchbase/core/management/rbac_fmt.hxx +1 -1
  104. data/ext/couchbase/core/mcbp/operation_queue.cxx +1 -1
  105. data/ext/couchbase/core/mcbp/packet.cxx +1 -1
  106. data/ext/couchbase/core/meta/features.hxx +16 -0
  107. data/ext/couchbase/core/meta/version.cxx +48 -7
  108. data/ext/couchbase/core/operations/document_analytics.cxx +23 -17
  109. data/ext/couchbase/core/operations/document_analytics.hxx +1 -0
  110. data/ext/couchbase/core/operations/document_append.hxx +2 -0
  111. data/ext/couchbase/core/operations/document_decrement.hxx +2 -0
  112. data/ext/couchbase/core/operations/document_exists.hxx +2 -0
  113. data/ext/couchbase/core/operations/document_get.hxx +2 -0
  114. data/ext/couchbase/core/operations/document_get_all_replicas.hxx +5 -4
  115. data/ext/couchbase/core/operations/document_get_and_lock.hxx +2 -0
  116. data/ext/couchbase/core/operations/document_get_and_touch.hxx +2 -0
  117. data/ext/couchbase/core/operations/document_get_any_replica.hxx +5 -3
  118. data/ext/couchbase/core/operations/document_get_projected.hxx +2 -0
  119. data/ext/couchbase/core/operations/document_increment.hxx +2 -0
  120. data/ext/couchbase/core/operations/document_insert.hxx +2 -0
  121. data/ext/couchbase/core/operations/document_lookup_in.hxx +2 -0
  122. data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +5 -3
  123. data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +5 -3
  124. data/ext/couchbase/core/operations/document_mutate_in.hxx +2 -0
  125. data/ext/couchbase/core/operations/document_prepend.hxx +2 -0
  126. data/ext/couchbase/core/operations/document_query.hxx +1 -0
  127. data/ext/couchbase/core/operations/document_remove.hxx +2 -0
  128. data/ext/couchbase/core/operations/document_replace.hxx +2 -0
  129. data/ext/couchbase/core/operations/document_search.hxx +1 -0
  130. data/ext/couchbase/core/operations/document_touch.hxx +2 -0
  131. data/ext/couchbase/core/operations/document_unlock.hxx +2 -0
  132. data/ext/couchbase/core/operations/document_upsert.hxx +2 -0
  133. data/ext/couchbase/core/operations/document_view.hxx +1 -0
  134. data/ext/couchbase/core/operations/http_noop.hxx +2 -0
  135. data/ext/couchbase/core/operations/management/CMakeLists.txt +0 -1
  136. data/ext/couchbase/core/operations/management/analytics_dataset_create.cxx +1 -1
  137. data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +1 -0
  138. data/ext/couchbase/core/operations/management/analytics_dataset_drop.cxx +1 -1
  139. data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +1 -0
  140. data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +1 -0
  141. data/ext/couchbase/core/operations/management/analytics_dataverse_create.cxx +1 -1
  142. data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +1 -0
  143. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.cxx +1 -1
  144. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +1 -0
  145. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.cxx +1 -1
  146. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
  147. data/ext/couchbase/core/operations/management/analytics_index_create.hxx +1 -0
  148. data/ext/couchbase/core/operations/management/analytics_index_drop.cxx +1 -1
  149. data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +1 -0
  150. data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +1 -0
  151. data/ext/couchbase/core/operations/management/analytics_link_connect.cxx +1 -1
  152. data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +1 -0
  153. data/ext/couchbase/core/operations/management/analytics_link_create.hxx +1 -0
  154. data/ext/couchbase/core/operations/management/analytics_link_disconnect.cxx +1 -1
  155. data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +1 -0
  156. data/ext/couchbase/core/operations/management/analytics_link_drop.cxx +1 -1
  157. data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +1 -0
  158. data/ext/couchbase/core/operations/management/analytics_link_get_all.cxx +24 -16
  159. data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +4 -3
  160. data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +1 -0
  161. data/ext/couchbase/core/operations/management/analytics_link_utils.hxx +4 -3
  162. data/ext/couchbase/core/operations/management/bucket_create.hxx +1 -0
  163. data/ext/couchbase/core/operations/management/bucket_describe.cxx +1 -1
  164. data/ext/couchbase/core/operations/management/bucket_describe.hxx +1 -0
  165. data/ext/couchbase/core/operations/management/bucket_drop.cxx +1 -1
  166. data/ext/couchbase/core/operations/management/bucket_drop.hxx +1 -0
  167. data/ext/couchbase/core/operations/management/bucket_flush.cxx +1 -1
  168. data/ext/couchbase/core/operations/management/bucket_flush.hxx +1 -0
  169. data/ext/couchbase/core/operations/management/bucket_get.cxx +1 -1
  170. data/ext/couchbase/core/operations/management/bucket_get.hxx +1 -0
  171. data/ext/couchbase/core/operations/management/bucket_get_all.hxx +1 -0
  172. data/ext/couchbase/core/operations/management/bucket_update.hxx +1 -0
  173. data/ext/couchbase/core/operations/management/change_password.cxx +1 -1
  174. data/ext/couchbase/core/operations/management/change_password.hxx +1 -0
  175. data/ext/couchbase/core/operations/management/cluster_describe.hxx +1 -0
  176. data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +1 -0
  177. data/ext/couchbase/core/operations/management/collection_create.cxx +1 -1
  178. data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
  179. data/ext/couchbase/core/operations/management/collection_drop.cxx +1 -1
  180. data/ext/couchbase/core/operations/management/collection_drop.hxx +1 -0
  181. data/ext/couchbase/core/operations/management/collection_update.cxx +1 -1
  182. data/ext/couchbase/core/operations/management/collection_update.hxx +2 -0
  183. data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +2 -0
  184. data/ext/couchbase/core/operations/management/eventing_deploy_function.cxx +1 -1
  185. data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +3 -2
  186. data/ext/couchbase/core/operations/management/eventing_drop_function.cxx +1 -1
  187. data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +3 -2
  188. data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +3 -2
  189. data/ext/couchbase/core/operations/management/eventing_get_function.cxx +1 -1
  190. data/ext/couchbase/core/operations/management/eventing_get_function.hxx +3 -2
  191. data/ext/couchbase/core/operations/management/eventing_get_status.hxx +3 -2
  192. data/ext/couchbase/core/operations/management/eventing_pause_function.cxx +1 -1
  193. data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +3 -2
  194. data/ext/couchbase/core/operations/management/eventing_resume_function.cxx +1 -1
  195. data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +3 -2
  196. data/ext/couchbase/core/operations/management/eventing_undeploy_function.cxx +1 -1
  197. data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +3 -2
  198. data/ext/couchbase/core/operations/management/eventing_upsert_function.cxx +1 -2
  199. data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +3 -2
  200. data/ext/couchbase/core/operations/management/freeform.hxx +2 -0
  201. data/ext/couchbase/core/operations/management/group_drop.cxx +1 -1
  202. data/ext/couchbase/core/operations/management/group_drop.hxx +1 -0
  203. data/ext/couchbase/core/operations/management/group_get.cxx +1 -1
  204. data/ext/couchbase/core/operations/management/group_get.hxx +1 -0
  205. data/ext/couchbase/core/operations/management/group_get_all.hxx +1 -0
  206. data/ext/couchbase/core/operations/management/group_upsert.hxx +1 -0
  207. data/ext/couchbase/core/operations/management/query_index_build.hxx +7 -5
  208. data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +3 -0
  209. data/ext/couchbase/core/operations/management/query_index_create.cxx +1 -1
  210. data/ext/couchbase/core/operations/management/query_index_create.hxx +1 -0
  211. data/ext/couchbase/core/operations/management/query_index_drop.cxx +1 -1
  212. data/ext/couchbase/core/operations/management/query_index_drop.hxx +1 -0
  213. data/ext/couchbase/core/operations/management/query_index_get_all.hxx +2 -0
  214. data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +3 -0
  215. data/ext/couchbase/core/operations/management/role_get_all.hxx +1 -0
  216. data/ext/couchbase/core/operations/management/scope_create.cxx +1 -1
  217. data/ext/couchbase/core/operations/management/scope_create.hxx +1 -0
  218. data/ext/couchbase/core/operations/management/scope_drop.cxx +1 -1
  219. data/ext/couchbase/core/operations/management/scope_drop.hxx +1 -0
  220. data/ext/couchbase/core/operations/management/scope_get_all.cxx +1 -1
  221. data/ext/couchbase/core/operations/management/scope_get_all.hxx +1 -0
  222. data/ext/couchbase/core/operations/management/search_get_stats.hxx +1 -0
  223. data/ext/couchbase/core/operations/management/search_index_analyze_document.cxx +1 -1
  224. data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +1 -0
  225. data/ext/couchbase/core/operations/management/search_index_control_ingest.cxx +1 -1
  226. data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +1 -0
  227. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.cxx +1 -1
  228. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +1 -0
  229. data/ext/couchbase/core/operations/management/search_index_control_query.cxx +1 -1
  230. data/ext/couchbase/core/operations/management/search_index_control_query.hxx +1 -0
  231. data/ext/couchbase/core/operations/management/search_index_drop.cxx +1 -1
  232. data/ext/couchbase/core/operations/management/search_index_drop.hxx +1 -0
  233. data/ext/couchbase/core/operations/management/search_index_get.cxx +1 -1
  234. data/ext/couchbase/core/operations/management/search_index_get.hxx +1 -0
  235. data/ext/couchbase/core/operations/management/search_index_get_all.cxx +1 -1
  236. data/ext/couchbase/core/operations/management/search_index_get_all.hxx +1 -0
  237. data/ext/couchbase/core/operations/management/search_index_get_documents_count.cxx +1 -1
  238. data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +2 -0
  239. data/ext/couchbase/core/operations/management/search_index_get_stats.cxx +1 -1
  240. data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +1 -0
  241. data/ext/couchbase/core/operations/management/search_index_upsert.cxx +1 -1
  242. data/ext/couchbase/core/operations/management/search_index_upsert.hxx +1 -0
  243. data/ext/couchbase/core/operations/management/user_drop.hxx +1 -0
  244. data/ext/couchbase/core/operations/management/user_get.hxx +1 -0
  245. data/ext/couchbase/core/operations/management/user_get_all.hxx +1 -0
  246. data/ext/couchbase/core/operations/management/user_upsert.cxx +3 -3
  247. data/ext/couchbase/core/operations/management/user_upsert.hxx +1 -0
  248. data/ext/couchbase/core/operations/management/view_index_drop.cxx +1 -1
  249. data/ext/couchbase/core/operations/management/view_index_drop.hxx +1 -0
  250. data/ext/couchbase/core/operations/management/view_index_get.cxx +1 -1
  251. data/ext/couchbase/core/operations/management/view_index_get.hxx +1 -0
  252. data/ext/couchbase/core/operations/management/view_index_get_all.cxx +1 -1
  253. data/ext/couchbase/core/operations/management/view_index_get_all.hxx +2 -0
  254. data/ext/couchbase/core/operations/management/view_index_upsert.cxx +1 -1
  255. data/ext/couchbase/core/operations/management/view_index_upsert.hxx +1 -0
  256. data/ext/couchbase/core/origin.cxx +3 -2
  257. data/ext/couchbase/core/platform/base64.h +8 -8
  258. data/ext/couchbase/core/protocol/client_opcode_fmt.hxx +1 -1
  259. data/ext/couchbase/core/protocol/client_response.hxx +1 -1
  260. data/ext/couchbase/core/protocol/frame_info_id_fmt.hxx +1 -1
  261. data/ext/couchbase/core/protocol/hello_feature_fmt.hxx +1 -1
  262. data/ext/couchbase/core/protocol/magic_fmt.hxx +1 -1
  263. data/ext/couchbase/core/protocol/server_opcode_fmt.hxx +1 -1
  264. data/ext/couchbase/core/query_context.hxx +7 -6
  265. data/ext/couchbase/core/retry_orchestrator.cxx +1 -1
  266. data/ext/couchbase/core/sasl/CMakeLists.txt +0 -1
  267. data/ext/couchbase/core/sasl/error_fmt.h +1 -1
  268. data/ext/couchbase/core/seed_config.cxx +2 -2
  269. data/ext/couchbase/core/service_type_fmt.hxx +1 -1
  270. data/ext/couchbase/core/topology/capabilities_fmt.hxx +1 -1
  271. data/ext/couchbase/core/topology/collections_manifest_fmt.hxx +2 -1
  272. data/ext/couchbase/core/topology/configuration_fmt.hxx +1 -1
  273. data/ext/couchbase/core/transactions/async_attempt_context.cxx +1 -1
  274. data/ext/couchbase/core/transactions/async_attempt_context.hxx +9 -22
  275. data/ext/couchbase/core/transactions/attempt_context.cxx +1 -1
  276. data/ext/couchbase/core/transactions/attempt_context.hxx +6 -33
  277. data/ext/couchbase/core/transactions/attempt_context_impl.cxx +41 -41
  278. data/ext/couchbase/core/transactions/attempt_context_impl.hxx +15 -16
  279. data/ext/couchbase/core/transactions/exceptions_fmt.hxx +1 -1
  280. data/ext/couchbase/core/transactions/internal/atr_cleanup_entry.hxx +1 -1
  281. data/ext/couchbase/core/transactions/internal/client_record.hxx +4 -3
  282. data/ext/couchbase/core/transactions/internal/doc_record_fmt.hxx +1 -1
  283. data/ext/couchbase/core/transactions/internal/exceptions_internal.hxx +0 -2
  284. data/ext/couchbase/core/transactions/internal/exceptions_internal_fmt.hxx +1 -1
  285. data/ext/couchbase/core/transactions/internal/logging.hxx +2 -0
  286. data/ext/couchbase/core/transactions/internal/transaction_context.hxx +3 -0
  287. data/ext/couchbase/core/transactions/result_fmt.hxx +1 -1
  288. data/ext/couchbase/core/transactions/transaction_context.cxx +12 -2
  289. data/ext/couchbase/core/transactions/transaction_get_result.hxx +0 -20
  290. data/ext/couchbase/core/transactions/transaction_links.hxx +1 -1
  291. data/ext/couchbase/core/utils/join_strings.hxx +2 -2
  292. data/ext/couchbase/core/utils/keyspace.hxx +2 -1
  293. data/ext/couchbase/core/utils/url_codec.cxx +1 -1
  294. data/ext/couchbase/couchbase/common_options.hxx +16 -1
  295. data/ext/couchbase/couchbase/fmt/analytics_scan_consistency.hxx +0 -2
  296. data/ext/couchbase/couchbase/fmt/analytics_status.hxx +0 -2
  297. data/ext/couchbase/couchbase/fmt/cas.hxx +0 -2
  298. data/ext/couchbase/couchbase/fmt/durability_level.hxx +0 -2
  299. data/ext/couchbase/couchbase/fmt/error.hxx +0 -2
  300. data/ext/couchbase/couchbase/fmt/error_context.hxx +0 -2
  301. data/ext/couchbase/couchbase/fmt/mutation_token.hxx +0 -2
  302. data/ext/couchbase/couchbase/fmt/query_profile.hxx +0 -2
  303. data/ext/couchbase/couchbase/fmt/query_scan_consistency.hxx +0 -2
  304. data/ext/couchbase/couchbase/fmt/query_status.hxx +0 -2
  305. data/ext/couchbase/couchbase/fmt/retry_reason.hxx +5 -1
  306. data/ext/couchbase/couchbase/fmt/search_scan_consistency.hxx +0 -2
  307. data/ext/couchbase/couchbase/fmt/tls_verify_mode.hxx +0 -2
  308. data/ext/couchbase/couchbase/fmt/transaction_keyspace.hxx +0 -2
  309. data/ext/couchbase/couchbase/metrics/otel_meter.hxx +16 -20
  310. data/ext/couchbase.cxx +1 -0
  311. data/ext/extconf.rb +11 -0
  312. data/ext/rcb_analytics.cxx +7 -7
  313. data/ext/rcb_backend.cxx +83 -2
  314. data/ext/rcb_buckets.cxx +1 -1
  315. data/ext/rcb_collections.cxx +1 -1
  316. data/ext/rcb_crud.cxx +51 -30
  317. data/ext/rcb_diagnostics.cxx +1 -1
  318. data/ext/rcb_exceptions.cxx +3 -2
  319. data/ext/rcb_extras.cxx +1 -1
  320. data/ext/rcb_logger.cxx +6 -1
  321. data/ext/rcb_logger.hxx +3 -0
  322. data/ext/rcb_range_scan.cxx +3 -5
  323. data/ext/rcb_search.cxx +1 -1
  324. data/ext/rcb_users.cxx +2 -2
  325. data/ext/rcb_utils.hxx +32 -0
  326. data/lib/couchbase/bucket.rb +0 -8
  327. data/lib/couchbase/cluster.rb +2 -13
  328. data/lib/couchbase/collection.rb +0 -43
  329. data/lib/couchbase/collection_options.rb +3 -3
  330. data/lib/couchbase/datastructures/couchbase_queue.rb +1 -1
  331. data/lib/couchbase/datastructures/couchbase_set.rb +1 -1
  332. data/lib/couchbase/deprecations.rb +61 -0
  333. data/lib/couchbase/fork_hooks.rb +32 -0
  334. data/lib/couchbase/logger.rb +3 -3
  335. data/lib/couchbase/management/analytics_index_manager.rb +1 -1
  336. data/lib/couchbase/management/bucket_manager.rb +1 -1
  337. data/lib/couchbase/management/collection_manager.rb +1 -1
  338. data/lib/couchbase/management/query_index_manager.rb +1 -1
  339. data/lib/couchbase/options.rb +50 -2
  340. data/lib/couchbase/protostellar/request_generator/query.rb +1 -1
  341. data/lib/couchbase/utils/time.rb +1 -1
  342. data/lib/couchbase/version.rb +1 -1
  343. data/lib/couchbase.rb +2 -0
  344. metadata +133 -153
  345. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/CMakeLists.txt +0 -520
  346. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/ChangeLog.md +0 -2598
  347. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/LICENSE +0 -27
  348. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/README.md +0 -484
  349. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/fmt.cc +0 -135
  350. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/os.cc +0 -403
  351. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/FindSetEnv.cmake +0 -7
  352. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/JoinPaths.cmake +0 -26
  353. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt-config.cmake.in +0 -7
  354. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt.pc.in +0 -11
  355. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/args.h +0 -235
  356. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -2240
  357. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/color.h +0 -643
  358. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/compile.h +0 -535
  359. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/core.h +0 -2969
  360. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1678
  361. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format.h +0 -4535
  362. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/os.h +0 -455
  363. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -245
  364. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/printf.h +0 -675
  365. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -738
  366. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/std.h +0 -537
  367. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/xchar.h +0 -259
  368. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/src/bundled_fmtlib_format.cpp +0 -46
  369. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/LICENSE +0 -0
  370. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/ide.cmake +0 -0
  371. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/pch.h.in +0 -0
  372. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlog.pc.in +0 -0
  373. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogCPack.cmake +0 -0
  374. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogConfig.cmake.in +0 -0
  375. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/version.rc.in +0 -0
  376. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async.h +0 -0
  377. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async_logger.h +0 -0
  378. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/argv.h +0 -0
  379. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/env.h +0 -0
  380. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers-inl.h +0 -0
  381. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers.h +0 -0
  382. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common-inl.h +0 -0
  383. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common.h +0 -0
  384. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer-inl.h +0 -0
  385. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer.h +0 -0
  386. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/circular_q.h +0 -0
  387. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/console_globals.h +0 -0
  388. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper-inl.h +0 -0
  389. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper.h +0 -0
  390. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/fmt_helper.h +0 -0
  391. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg-inl.h +0 -0
  392. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg.h +0 -0
  393. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -0
  394. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer.h +0 -0
  395. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/null_mutex.h +0 -0
  396. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/os.h +0 -0
  397. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -0
  398. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker.h +0 -0
  399. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry-inl.h +0 -0
  400. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry.h +0 -0
  401. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/synchronous_factory.h +0 -0
  402. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client-windows.h +0 -0
  403. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client.h +0 -0
  404. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client-windows.h +0 -0
  405. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client.h +0 -0
  406. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/windows_include.h +0 -0
  407. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -0
  408. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/args.h +0 -0
  409. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/chrono.h +0 -0
  410. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/color.h +0 -0
  411. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/compile.h +0 -0
  412. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/core.h +0 -0
  413. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/fmt.license.rst +0 -0
  414. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/locale.h +0 -0
  415. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/os.h +0 -0
  416. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/ostream.h +0 -0
  417. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/printf.h +0 -0
  418. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/std.h +0 -0
  419. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/xchar.h +0 -0
  420. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/chrono.h +0 -0
  421. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/compile.h +0 -0
  422. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/fmt.h +0 -0
  423. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ostr.h +0 -0
  424. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ranges.h +0 -0
  425. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/std.h +0 -0
  426. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/xchar.h +0 -0
  427. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/formatter.h +0 -0
  428. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fwd.h +0 -0
  429. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger-inl.h +0 -0
  430. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger.h +0 -0
  431. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/pattern_formatter.h +0 -0
  432. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/android_sink.h +0 -0
  433. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -0
  434. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -0
  435. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -0
  436. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -0
  437. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dist_sink.h +0 -0
  438. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -0
  439. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/kafka_sink.h +0 -0
  440. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/mongo_sink.h +0 -0
  441. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/null_sink.h +0 -0
  442. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ostream_sink.h +0 -0
  443. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/qt_sinks.h +0 -0
  444. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -0
  445. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -0
  446. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink-inl.h +0 -0
  447. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink.h +0 -0
  448. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -0
  449. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -0
  450. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -0
  451. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -0
  452. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/systemd_sink.h +0 -0
  453. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/tcp_sink.h +0 -0
  454. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/udp_sink.h +0 -0
  455. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -0
  456. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -0
  457. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog-inl.h +0 -0
  458. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog.h +0 -0
  459. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/stopwatch.h +0 -0
  460. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/tweakme.h +0 -0
  461. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/async.cpp +0 -0
  462. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/cfg.cpp +0 -0
  463. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/color_sinks.cpp +0 -0
  464. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/file_sinks.cpp +0 -0
  465. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/spdlog.cpp +0 -0
  466. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/stdout_sinks.cpp +0 -0
@@ -19,8 +19,6 @@
19
19
 
20
20
  #include <couchbase/search_scan_consistency.hxx>
21
21
 
22
- #include <fmt/core.h>
23
-
24
22
  /**
25
23
  * Helper for fmtlib to format @ref couchbase::search_scan_consistency objects.
26
24
  *
@@ -19,8 +19,6 @@
19
19
 
20
20
  #include <couchbase/tls_verify_mode.hxx>
21
21
 
22
- #include <fmt/core.h>
23
-
24
22
  /**
25
23
  * Helper for fmtlib to format @ref couchbase::tls_verify_mode objects.
26
24
  *
@@ -18,8 +18,6 @@
18
18
 
19
19
  #include <couchbase/transactions/transaction_keyspace.hxx>
20
20
 
21
- #include <fmt/core.h>
22
-
23
21
  template<>
24
22
  struct fmt::formatter<couchbase::transactions::transaction_keyspace> {
25
23
  public:
@@ -20,6 +20,7 @@
20
20
  #include "opentelemetry/sdk/metrics/meter.h"
21
21
  #include <couchbase/metrics/meter.hxx>
22
22
 
23
+ #include <algorithm>
23
24
  #include <iostream>
24
25
  #include <thread>
25
26
  #include <utility>
@@ -37,44 +38,39 @@ namespace couchbase::metrics
37
38
  class otel_sync_histogram
38
39
  {
39
40
  public:
40
- otel_sync_histogram(nostd::shared_ptr<metrics_api::Histogram<long>> histogram_counter)
41
+ otel_sync_histogram(nostd::shared_ptr<metrics_api::Histogram<std::uint64_t>> histogram_counter)
41
42
  : histogram_counter_(histogram_counter)
42
43
  {
43
44
  }
44
- void record(uint64_t value,
45
+
46
+ void record(std::uint64_t value,
45
47
  const opentelemetry::common::KeyValueIterable& tags,
46
48
  opentelemetry::context::Context& ctx)
47
49
  {
48
- // overflow
49
- if (value > LONG_MAX) {
50
- value = LONG_MAX;
51
- }
52
- long lvalue = static_cast<long>(value);
53
- histogram_counter_->Record(lvalue, tags, ctx);
50
+ histogram_counter_->Record(value, tags, ctx);
54
51
  }
55
52
 
56
53
  private:
57
- nostd::shared_ptr<metrics_api::Histogram<long>> histogram_counter_;
54
+ nostd::shared_ptr<metrics_api::Histogram<std::uint64_t>> histogram_counter_;
58
55
  std::mutex mutex_;
59
56
  };
60
57
 
61
58
  class otel_value_recorder : public couchbase::metrics::value_recorder
62
59
  {
63
60
  public:
64
- explicit otel_value_recorder(nostd::shared_ptr<metrics_api::Histogram<long>> histogram_counter,
65
- const std::map<std::string, std::string>& tags)
61
+ explicit otel_value_recorder(
62
+ nostd::shared_ptr<metrics_api::Histogram<std::uint64_t>> histogram_counter,
63
+ const std::map<std::string, std::string>& tags)
66
64
  : histogram_counter_(histogram_counter)
67
65
  , tags_(tags)
68
66
  {
69
67
  }
70
68
  void record_value(std::int64_t value) override
71
69
  {
72
- if (value > LONG_MAX) {
73
- value = LONG_MAX;
74
- }
75
- long lvalue = static_cast<long>(value);
70
+ value = std::max<int64_t>(value, 0);
71
+ auto uvalue = static_cast<std::uint64_t>(value);
76
72
  histogram_counter_->Record(
77
- value, opentelemetry::common::KeyValueIterableView<decltype(tags_)>{ tags_ }, context_);
73
+ uvalue, opentelemetry::common::KeyValueIterableView<decltype(tags_)>{ tags_ }, context_);
78
74
  }
79
75
 
80
76
  const std::map<std::string, std::string> tags()
@@ -82,13 +78,13 @@ public:
82
78
  return tags_;
83
79
  }
84
80
 
85
- nostd::shared_ptr<metrics_api::Histogram<long>> histogram_counter()
81
+ nostd::shared_ptr<metrics_api::Histogram<std::uint64_t>> histogram_counter()
86
82
  {
87
83
  return histogram_counter_;
88
84
  }
89
85
 
90
86
  private:
91
- nostd::shared_ptr<metrics_api::Histogram<long>> histogram_counter_;
87
+ nostd::shared_ptr<metrics_api::Histogram<std::uint64_t>> histogram_counter_;
92
88
  const std::map<std::string, std::string> tags_;
93
89
  opentelemetry::context::Context context_{};
94
90
  std::mutex mutex_;
@@ -115,8 +111,8 @@ public:
115
111
  // api doesn't seem to allow this.
116
112
  return recorders_
117
113
  .insert({ name,
118
- std::make_shared<otel_value_recorder>(meter_->CreateLongHistogram(name, "", "us"),
119
- tags) })
114
+ std::make_shared<otel_value_recorder>(
115
+ meter_->CreateUInt64Histogram(name, "", "us"), tags) })
120
116
  ->second;
121
117
  }
122
118
  // so it is already, lets see if we already have one with those tags, or need
data/ext/couchbase.cxx CHANGED
@@ -41,6 +41,7 @@ __declspec(dllexport)
41
41
  void
42
42
  Init_libcouchbase(void)
43
43
  {
44
+ couchbase::ruby::install_terminate_handler();
44
45
  couchbase::ruby::init_logger();
45
46
 
46
47
  VALUE mCouchbase = rb_define_module("Couchbase");
data/ext/extconf.rb CHANGED
@@ -104,6 +104,7 @@ if ENV["CB_STATIC"] || ENV["CB_STATIC_BORINGSSL"]
104
104
  elsif ENV["CB_STATIC_OPENSSL"]
105
105
  cmake_flags << "-DCOUCHBASE_CXX_CLIENT_STATIC_OPENSSL=ON"
106
106
  end
107
+ cmake_flags << "-DCOUCHBASE_CXX_CLIENT_WRAPPER_UNIFIED_ID=ruby/#{Couchbase::VERSION[:sdk]}"
107
108
 
108
109
  unless cmake_flags.grep(/BORINGSSL/)
109
110
  case RbConfig::CONFIG["target_os"]
@@ -153,6 +154,16 @@ build_dir = ENV['CB_EXT_BUILD_DIR'] ||
153
154
  File.join(Dir.tmpdir, "cb-#{build_type}-#{RUBY_VERSION}-#{RUBY_PATCHLEVEL}-#{RUBY_PLATFORM}-#{SDK_VERSION}")
154
155
  FileUtils.rm_rf(build_dir, verbose: true) unless ENV['CB_PRESERVE_BUILD_DIR']
155
156
  FileUtils.mkdir_p(build_dir, verbose: true)
157
+ if ENV["CB_CREATE_BUILD_DIR_LINK"]
158
+ links = [
159
+ File.expand_path(File.join(project_path, "..", "build")),
160
+ File.expand_path(File.join(project_path, "build"))
161
+ ]
162
+ links.each do |link|
163
+ next if link == build_dir
164
+ FileUtils.ln_sf(build_dir, link, verbose: true)
165
+ end
166
+ end
156
167
  Dir.chdir(build_dir) do
157
168
  puts "-- build #{build_type} extension #{SDK_VERSION} for ruby #{RUBY_VERSION}-#{RUBY_PATCHLEVEL}-#{RUBY_PLATFORM}"
158
169
  sys(cmake, *cmake_flags, "-B#{build_dir}", "-S#{project_path}")
@@ -36,7 +36,7 @@
36
36
  #include <core/operations/management/analytics_link_get_all.hxx>
37
37
  #include <core/operations/management/analytics_link_replace.hxx>
38
38
 
39
- #include <fmt/core.h>
39
+ #include <spdlog/fmt/bundled/core.h>
40
40
 
41
41
  #include <future>
42
42
  #include <memory>
@@ -911,17 +911,17 @@ cb_Backend_analytics_link_get_all(VALUE self, VALUE options)
911
911
  cb_throw_error(
912
912
  resp.ctx,
913
913
  fmt::format(R"(unable to retrieve links type={}, dataverse="{}", name="{}")",
914
- req.link_type,
915
- req.link_name,
916
- req.dataverse_name));
914
+ req.link_type.value_or("-"),
915
+ req.link_name.value_or("-"),
916
+ req.dataverse_name.value_or("-")));
917
917
  } else {
918
918
  const auto& first_error = resp.errors.front();
919
919
  cb_throw_error(
920
920
  resp.ctx,
921
921
  fmt::format(R"(unable to retrieve links type={}, dataverse="{}", name="{}" ({}: {}))",
922
- req.link_type,
923
- req.link_name,
924
- req.dataverse_name,
922
+ req.link_type.value_or("-"),
923
+ req.link_name.value_or("-"),
924
+ req.dataverse_name.value_or("-"),
925
925
  first_error.code,
926
926
  first_error.message));
927
927
  }
data/ext/rcb_backend.cxx CHANGED
@@ -17,19 +17,23 @@
17
17
 
18
18
  #include <couchbase/cluster.hxx>
19
19
 
20
+ #include <couchbase/fork_event.hxx>
21
+ #include <couchbase/ip_protocol.hxx>
22
+
20
23
  #include <core/cluster.hxx>
21
24
  #include <core/logger/logger.hxx>
22
25
  #include <core/utils/connection_string.hxx>
23
26
 
24
27
  #include <asio/io_context.hpp>
25
- #include <fmt/core.h>
28
+ #include <spdlog/fmt/bundled/core.h>
26
29
 
27
30
  #include <future>
31
+ #include <list>
28
32
  #include <memory>
33
+ #include <mutex>
29
34
 
30
35
  #include <ruby.h>
31
36
 
32
- #include "couchbase/ip_protocol.hxx"
33
37
  #include "rcb_backend.hxx"
34
38
  #include "rcb_exceptions.hxx"
35
39
  #include "rcb_logger.hxx"
@@ -44,10 +48,79 @@ struct cb_backend_data {
44
48
  std::unique_ptr<cluster> instance{ nullptr };
45
49
  };
46
50
 
51
+ class instance_registry
52
+ {
53
+ public:
54
+ void add(cluster* instance)
55
+ {
56
+ std::scoped_lock lock(instances_mutex_);
57
+ known_instances_.push_back(instance);
58
+ }
59
+
60
+ void remove(cluster* instance)
61
+ {
62
+ std::scoped_lock lock(instances_mutex_);
63
+ known_instances_.remove(instance);
64
+ }
65
+
66
+ void notify_fork(couchbase::fork_event event)
67
+ {
68
+ if (event != couchbase::fork_event::prepare) {
69
+ init_logger();
70
+ }
71
+
72
+ {
73
+ std::scoped_lock lock(instances_mutex_);
74
+ for (auto* instance : known_instances_) {
75
+ instance->notify_fork(event);
76
+ }
77
+ }
78
+
79
+ if (event == couchbase::fork_event::prepare) {
80
+ flush_logger();
81
+ couchbase::core::logger::shutdown();
82
+ }
83
+ }
84
+
85
+ private:
86
+ std::mutex instances_mutex_;
87
+ std::list<cluster*> known_instances_;
88
+ };
89
+
90
+ instance_registry instances;
91
+
92
+ VALUE
93
+ cb_Backend_notify_fork(VALUE self, VALUE event)
94
+ {
95
+ static const auto id_prepare{ rb_intern("prepare") };
96
+ static const auto id_parent{ rb_intern("parent") };
97
+ static const auto id_child{ rb_intern("child") };
98
+
99
+ try {
100
+ cb_check_type(event, T_SYMBOL);
101
+
102
+ if (rb_sym2id(event) == id_prepare) {
103
+ instances.notify_fork(couchbase::fork_event::prepare);
104
+ } else if (rb_sym2id(event) == id_parent) {
105
+ instances.notify_fork(couchbase::fork_event::parent);
106
+ } else if (rb_sym2id(event) == id_child) {
107
+ instances.notify_fork(couchbase::fork_event::child);
108
+ } else {
109
+ throw ruby_exception(rb_eTypeError,
110
+ rb_sprintf("unexpected fork event type %" PRIsVALUE "", event));
111
+ }
112
+ } catch (const ruby_exception& e) {
113
+ rb_exc_raise(e.exception_object());
114
+ }
115
+
116
+ return Qnil;
117
+ }
118
+
47
119
  void
48
120
  cb_backend_close(cb_backend_data* backend)
49
121
  {
50
122
  if (auto instance = std::move(backend->instance); instance) {
123
+ instances.remove(instance.get());
51
124
  auto promise = std::make_shared<std::promise<void>>();
52
125
  auto f = promise->get_future();
53
126
  instance->close([promise = std::move(promise)]() mutable {
@@ -208,6 +281,11 @@ initialize_cluster_options(const core::utils::connection_string& connstr,
208
281
  cluster_options.network().preferred_network(param.value());
209
282
  }
210
283
 
284
+ static const auto server_group = rb_id2sym(rb_intern("preferred_server_group"));
285
+ if (auto group = options::get_string(options, server_group); group) {
286
+ cluster_options.network().preferred_server_group(group.value());
287
+ }
288
+
211
289
  static const auto sym_use_ip_protocol = rb_id2sym(rb_intern("use_ip_protocol"));
212
290
  if (auto proto = options::get_symbol(options, sym_use_ip_protocol); proto) {
213
291
  static const auto sym_any = rb_id2sym(rb_intern("any"));
@@ -441,6 +519,7 @@ cb_Backend_open(VALUE self, VALUE connstr, VALUE credentials, VALUE options)
441
519
  error, fmt::format("failed to connect to the Couchbase Server \"{}\"", connection_string));
442
520
  }
443
521
  backend->instance = std::make_unique<couchbase::cluster>(std::move(cluster));
522
+ instances.add(backend->instance.get());
444
523
  } catch (const std::system_error& se) {
445
524
  rb_exc_raise(cb_map_error_code(
446
525
  se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
@@ -504,6 +583,8 @@ init_backend(VALUE mCouchbase)
504
583
  rb_define_method(cBackend, "open", cb_Backend_open, 3);
505
584
  rb_define_method(cBackend, "open_bucket", cb_Backend_open_bucket, 2);
506
585
  rb_define_method(cBackend, "close", cb_Backend_close, 0);
586
+
587
+ rb_define_singleton_method(cBackend, "notify_fork", cb_Backend_notify_fork, 1);
507
588
  return cBackend;
508
589
  }
509
590
 
data/ext/rcb_buckets.cxx CHANGED
@@ -24,7 +24,7 @@
24
24
  #include <core/operations/management/bucket_get_all.hxx>
25
25
  #include <core/operations/management/bucket_update.hxx>
26
26
 
27
- #include <fmt/core.h>
27
+ #include <spdlog/fmt/bundled/core.h>
28
28
 
29
29
  #include <future>
30
30
  #include <memory>
@@ -23,7 +23,7 @@
23
23
  #include <core/operations/management/scope_drop.hxx>
24
24
  #include <core/operations/management/scope_get_all.hxx>
25
25
 
26
- #include <fmt/core.h>
26
+ #include <spdlog/fmt/bundled/core.h>
27
27
 
28
28
  #include <future>
29
29
  #include <memory>
data/ext/rcb_crud.cxx CHANGED
@@ -128,7 +128,7 @@ cb_Backend_document_get_any_replica(VALUE self,
128
128
  VALUE id,
129
129
  VALUE options)
130
130
  {
131
- auto cluster = cb_backend_to_public_api_cluster(self);
131
+ auto cluster = cb_backend_to_core_api_cluster(self);
132
132
 
133
133
  Check_Type(bucket, T_STRING);
134
134
  Check_Type(scope, T_STRING);
@@ -136,23 +136,32 @@ cb_Backend_document_get_any_replica(VALUE self,
136
136
  Check_Type(id, T_STRING);
137
137
 
138
138
  try {
139
- couchbase::get_any_replica_options opts;
140
- set_timeout(opts, options);
139
+ core::document_id doc_id{
140
+ cb_string_new(bucket),
141
+ cb_string_new(scope),
142
+ cb_string_new(collection),
143
+ cb_string_new(id),
144
+ };
141
145
 
142
- auto f = cluster.bucket(cb_string_new(bucket))
143
- .scope(cb_string_new(scope))
144
- .collection(cb_string_new(collection))
145
- .get_any_replica(cb_string_new(id), opts);
146
- auto [ctx, resp] = cb_wait_for_future(f);
147
- if (ctx.ec()) {
148
- cb_throw_error(ctx, "unable to get replica of the document");
146
+ core::operations::get_any_replica_request req{ doc_id };
147
+ cb_extract_timeout(req, options);
148
+ cb_extract_read_preference(req, options);
149
+
150
+ std::promise<core::operations::get_any_replica_response> promise;
151
+ auto f = promise.get_future();
152
+ cluster.execute(req, [promise = std::move(promise)](auto&& resp) mutable {
153
+ promise.set_value(std::forward<decltype(resp)>(resp));
154
+ });
155
+ auto resp = cb_wait_for_future(f);
156
+ if (resp.ctx.ec()) {
157
+ cb_throw_error(resp.ctx, "unable to get replica of the document");
149
158
  }
150
159
 
151
- auto value = resp.content_as<passthrough_transcoder>();
152
160
  VALUE res = rb_hash_new();
153
- rb_hash_aset(res, rb_id2sym(rb_intern("content")), cb_str_new(value.data));
154
- rb_hash_aset(res, rb_id2sym(rb_intern("cas")), cb_cas_to_num(resp.cas()));
155
- rb_hash_aset(res, rb_id2sym(rb_intern("flags")), UINT2NUM(value.flags));
161
+ rb_hash_aset(res, rb_id2sym(rb_intern("content")), cb_str_new(resp.value));
162
+ rb_hash_aset(res, rb_id2sym(rb_intern("cas")), cb_cas_to_num(resp.cas));
163
+ rb_hash_aset(res, rb_id2sym(rb_intern("flags")), UINT2NUM(resp.flags));
164
+ rb_hash_aset(res, rb_id2sym(rb_intern("replica")), resp.replica ? Qtrue : Qfalse);
156
165
  return res;
157
166
  } catch (const std::system_error& se) {
158
167
  rb_exc_raise(cb_map_error_code(
@@ -171,7 +180,7 @@ cb_Backend_document_get_all_replicas(VALUE self,
171
180
  VALUE id,
172
181
  VALUE options)
173
182
  {
174
- auto cluster = cb_backend_to_public_api_cluster(self);
183
+ auto cluster = cb_backend_to_core_api_cluster(self);
175
184
 
176
185
  Check_Type(bucket, T_STRING);
177
186
  Check_Type(scope, T_STRING);
@@ -179,25 +188,35 @@ cb_Backend_document_get_all_replicas(VALUE self,
179
188
  Check_Type(id, T_STRING);
180
189
 
181
190
  try {
182
- couchbase::get_all_replicas_options opts;
183
- set_timeout(opts, options);
191
+ core::document_id doc_id{
192
+ cb_string_new(bucket),
193
+ cb_string_new(scope),
194
+ cb_string_new(collection),
195
+ cb_string_new(id),
196
+ };
184
197
 
185
- auto f = cluster.bucket(cb_string_new(bucket))
186
- .scope(cb_string_new(scope))
187
- .collection(cb_string_new(collection))
188
- .get_all_replicas(cb_string_new(id), opts);
189
- auto [ctx, resp] = cb_wait_for_future(f);
190
- if (ctx.ec()) {
191
- cb_throw_error(ctx, "unable to get all replicas for the document");
198
+ core::operations::get_all_replicas_request req{ doc_id };
199
+ cb_extract_timeout(req, options);
200
+ cb_extract_read_preference(req, options);
201
+
202
+ std::promise<core::operations::get_all_replicas_response> promise;
203
+ auto f = promise.get_future();
204
+ cluster.execute(req, [promise = std::move(promise)](auto&& resp) mutable {
205
+ promise.set_value(std::forward<decltype(resp)>(resp));
206
+ });
207
+ auto resp = cb_wait_for_future(f);
208
+ if (resp.ctx.ec()) {
209
+ cb_throw_error(resp.ctx, "unable to get all replicas for the document");
192
210
  }
193
211
 
194
- VALUE res = rb_ary_new_capa(static_cast<long>(resp.size()));
195
- for (const auto& entry : resp) {
212
+ VALUE res = rb_ary_new_capa(static_cast<long>(resp.entries.size()));
213
+
214
+ for (const auto& entry : resp.entries) {
196
215
  VALUE response = rb_hash_new();
197
- auto value = entry.content_as<passthrough_transcoder>();
198
- rb_hash_aset(response, rb_id2sym(rb_intern("content")), cb_str_new(value.data));
199
- rb_hash_aset(response, rb_id2sym(rb_intern("cas")), cb_cas_to_num(entry.cas()));
200
- rb_hash_aset(response, rb_id2sym(rb_intern("flags")), UINT2NUM(value.flags));
216
+ rb_hash_aset(response, rb_id2sym(rb_intern("content")), cb_str_new(entry.value));
217
+ rb_hash_aset(response, rb_id2sym(rb_intern("cas")), cb_cas_to_num(entry.cas));
218
+ rb_hash_aset(response, rb_id2sym(rb_intern("flags")), UINT2NUM(entry.flags));
219
+ rb_hash_aset(response, rb_id2sym(rb_intern("replica")), entry.replica ? Qtrue : Qfalse);
201
220
  rb_ary_push(res, response);
202
221
  }
203
222
  return res;
@@ -1107,6 +1126,7 @@ cb_Backend_document_lookup_in_any_replica(VALUE self,
1107
1126
 
1108
1127
  core::operations::lookup_in_any_replica_request req{ doc_id };
1109
1128
  cb_extract_timeout(req, options);
1129
+ cb_extract_read_preference(req, options);
1110
1130
 
1111
1131
  static VALUE xattr_property = rb_id2sym(rb_intern("xattr"));
1112
1132
  static VALUE path_property = rb_id2sym(rb_intern("path"));
@@ -1234,6 +1254,7 @@ cb_Backend_document_lookup_in_all_replicas(VALUE self,
1234
1254
 
1235
1255
  core::operations::lookup_in_all_replicas_request req{ doc_id };
1236
1256
  cb_extract_timeout(req, options);
1257
+ cb_extract_read_preference(req, options);
1237
1258
 
1238
1259
  static VALUE xattr_property = rb_id2sym(rb_intern("xattr"));
1239
1260
  static VALUE path_property = rb_id2sym(rb_intern("path"));
@@ -17,7 +17,7 @@
17
17
 
18
18
  #include <core/cluster.hxx>
19
19
 
20
- #include <fmt/core.h>
20
+ #include <spdlog/fmt/bundled/core.h>
21
21
 
22
22
  #include <future>
23
23
 
@@ -17,7 +17,6 @@
17
17
 
18
18
  #include <couchbase/error.hxx>
19
19
  #include <couchbase/error_codes.hxx>
20
- #include <couchbase/fmt/retry_reason.hxx>
21
20
 
22
21
  #include <core/error_context/analytics.hxx>
23
22
  #include <core/error_context/http.hxx>
@@ -27,7 +26,9 @@
27
26
  #include <core/error_context/view.hxx>
28
27
  #include <core/fmt/key_value_status_code.hxx>
29
28
 
30
- #include <fmt/core.h>
29
+ #include <spdlog/fmt/bundled/core.h>
30
+
31
+ #include <couchbase/fmt/retry_reason.hxx>
31
32
 
32
33
  #include "rcb_exceptions.hxx"
33
34
  #include "rcb_utils.hxx"
data/ext/rcb_extras.cxx CHANGED
@@ -26,8 +26,8 @@
26
26
  #include <core/utils/unsigned_leb128.hxx>
27
27
  #include <core/utils/url_codec.hxx>
28
28
 
29
- #include <fmt/core.h>
30
29
  #include <snappy.h>
30
+ #include <spdlog/fmt/bundled/core.h>
31
31
 
32
32
  #include <future>
33
33
  #include <string>
data/ext/rcb_logger.cxx CHANGED
@@ -268,13 +268,18 @@ cb_Backend_install_logger_shim(VALUE self, VALUE logger, VALUE log_level)
268
268
  } // namespace
269
269
 
270
270
  void
271
- init_logger()
271
+ install_terminate_handler()
272
272
  {
273
273
  if (auto env_val =
274
274
  spdlog::details::os::getenv("COUCHBASE_BACKEND_DONT_INSTALL_TERMINATE_HANDLER");
275
275
  env_val.empty()) {
276
276
  core::platform::install_backtrace_terminate_handler();
277
277
  }
278
+ }
279
+
280
+ void
281
+ init_logger()
282
+ {
278
283
  if (auto env_val = spdlog::details::os::getenv("COUCHBASE_BACKEND_DONT_USE_BUILTIN_LOGGER");
279
284
  env_val.empty()) {
280
285
  auto default_log_level = core::logger::level::info;
data/ext/rcb_logger.hxx CHANGED
@@ -22,6 +22,9 @@
22
22
 
23
23
  namespace couchbase::ruby
24
24
  {
25
+ void
26
+ install_terminate_handler();
27
+
25
28
  void
26
29
  init_logger();
27
30
 
@@ -24,7 +24,7 @@
24
24
  #include <core/scan_result.hxx>
25
25
  #include <couchbase/error_codes.hxx>
26
26
 
27
- #include <fmt/core.h>
27
+ #include <spdlog/fmt/bundled/core.h>
28
28
 
29
29
  #include <future>
30
30
 
@@ -245,13 +245,11 @@ cb_Backend_document_scan_create(VALUE self,
245
245
  std::promise<tl::expected<couchbase::core::topology::configuration, std::error_code>> promise;
246
246
  auto f = promise.get_future();
247
247
  cluster.with_bucket_configuration(
248
- bucket_name,
249
- [promise = std::move(promise)](
250
- std::error_code ec, const couchbase::core::topology::configuration& config) mutable {
248
+ bucket_name, [promise = std::move(promise)](std::error_code ec, const auto& config) mutable {
251
249
  if (ec) {
252
250
  return promise.set_value(tl::unexpected(ec));
253
251
  }
254
- promise.set_value(config);
252
+ promise.set_value(*config);
255
253
  });
256
254
  auto config = cb_wait_for_future(f);
257
255
  if (!config.has_value()) {
data/ext/rcb_search.cxx CHANGED
@@ -30,8 +30,8 @@
30
30
  #include <core/operations/management/search_index_get_stats.hxx>
31
31
  #include <core/operations/management/search_index_upsert.hxx>
32
32
 
33
- #include <fmt/core.h>
34
33
  #include <gsl/narrow>
34
+ #include <spdlog/fmt/bundled/core.h>
35
35
 
36
36
  #include <future>
37
37
  #include <memory>
data/ext/rcb_users.cxx CHANGED
@@ -28,8 +28,8 @@
28
28
  #include <core/operations/management/user_get_all.hxx>
29
29
  #include <core/operations/management/user_upsert.hxx>
30
30
 
31
- #include <fmt/core.h>
32
- #include <fmt/ranges.h>
31
+ #include <spdlog/fmt/bundled/core.h>
32
+ #include <spdlog/fmt/bundled/ranges.h>
33
33
 
34
34
  #include <future>
35
35
  #include <memory>
data/ext/rcb_utils.hxx CHANGED
@@ -21,6 +21,7 @@
21
21
  #include <couchbase/cas.hxx>
22
22
  #include <couchbase/durability_level.hxx>
23
23
  #include <couchbase/persist_to.hxx>
24
+ #include <couchbase/read_preference.hxx>
24
25
  #include <couchbase/replicate_to.hxx>
25
26
  #include <couchbase/store_semantics.hxx>
26
27
 
@@ -128,6 +129,37 @@ cb_extract_timeout(Request& req, VALUE options)
128
129
  }
129
130
  }
130
131
 
132
+ template<typename Request>
133
+ inline void
134
+ cb_extract_read_preference(Request& req, VALUE options)
135
+ {
136
+ static VALUE property_name = rb_id2sym(rb_intern("read_preference"));
137
+ if (!NIL_P(options)) {
138
+ if (TYPE(options) != T_HASH) {
139
+ throw ruby_exception(rb_eArgError,
140
+ rb_sprintf("expected options to be Hash, given %+" PRIsVALUE, options));
141
+ }
142
+
143
+ VALUE val = rb_hash_aref(options, property_name);
144
+ if (NIL_P(val)) {
145
+ return;
146
+ }
147
+ if (TYPE(val) != T_SYMBOL) {
148
+ throw ruby_exception(
149
+ rb_eArgError, rb_sprintf("read_preference must be a Symbol, but given %+" PRIsVALUE, val));
150
+ }
151
+
152
+ if (ID mode = rb_sym2id(val); mode == rb_intern("no_preference")) {
153
+ req.read_preference = couchbase::read_preference::no_preference;
154
+ } else if (mode == rb_intern("selected_server_group")) {
155
+ req.read_preference = couchbase::read_preference::selected_server_group;
156
+ } else {
157
+ throw ruby_exception(rb_eArgError,
158
+ rb_sprintf("unexpected read_preference, given %+" PRIsVALUE, val));
159
+ }
160
+ }
161
+ }
162
+
131
163
  template<typename Field>
132
164
  inline void
133
165
  cb_extract_duration(Field& field, VALUE options, const char* name)
@@ -134,13 +134,5 @@ module Couchbase
134
134
  end
135
135
  end
136
136
  end
137
-
138
- # @api private
139
- # TODO: deprecate in 3.1
140
- PingOptions = ::Couchbase::Options::Ping
141
-
142
- # @api private
143
- # TODO: deprecate in 3.1
144
- ViewOptions = ::Couchbase::Options::View
145
137
  end
146
138
  end