couchbase 3.5.4 → 3.5.5

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 (441) 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 +32 -87
  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 +9 -9
  48. data/ext/couchbase/core/cluster.cxx +0 -2
  49. data/ext/couchbase/core/cluster_agent_config.cxx +1 -1
  50. data/ext/couchbase/core/collections_component.cxx +1 -1
  51. data/ext/couchbase/core/columnar/agent_config.cxx +2 -2
  52. data/ext/couchbase/core/columnar/error.hxx +0 -1
  53. data/ext/couchbase/core/columnar/query_component.cxx +2 -2
  54. data/ext/couchbase/core/config_profiles.cxx +1 -1
  55. data/ext/couchbase/core/core_sdk_shim.cxx +1 -1
  56. data/ext/couchbase/core/crud_component.cxx +1 -1
  57. data/ext/couchbase/core/design_document_namespace_fmt.hxx +1 -1
  58. data/ext/couchbase/core/diagnostics_fmt.hxx +1 -1
  59. data/ext/couchbase/core/document_id.cxx +1 -1
  60. data/ext/couchbase/core/document_id_fmt.hxx +1 -1
  61. data/ext/couchbase/core/error_context/analytics_json.hxx +3 -1
  62. data/ext/couchbase/core/error_context/key_value_json.hxx +1 -1
  63. data/ext/couchbase/core/error_context/query_public_json.hxx +1 -1
  64. data/ext/couchbase/core/error_context/subdocument_json.hxx +1 -1
  65. data/ext/couchbase/core/fmt/key_value_error_map_attribute.hxx +1 -1
  66. data/ext/couchbase/core/fmt/key_value_extended_error_info.hxx +1 -1
  67. data/ext/couchbase/core/fmt/key_value_status_code.hxx +1 -1
  68. data/ext/couchbase/core/http_component.cxx +3 -3
  69. data/ext/couchbase/core/impl/analytics.cxx +1 -0
  70. data/ext/couchbase/core/impl/best_effort_retry_strategy.cxx +1 -1
  71. data/ext/couchbase/core/impl/collection.cxx +28 -4
  72. data/ext/couchbase/core/impl/date_range.cxx +2 -2
  73. data/ext/couchbase/core/impl/date_range_query.cxx +2 -2
  74. data/ext/couchbase/core/impl/dns_srv_tracker.cxx +1 -1
  75. data/ext/couchbase/core/impl/error.cxx +27 -4
  76. data/ext/couchbase/core/impl/expiry.cxx +2 -2
  77. data/ext/couchbase/core/impl/fail_fast_retry_strategy.cxx +1 -2
  78. data/ext/couchbase/core/impl/get_replica.hxx +2 -0
  79. data/ext/couchbase/core/impl/key_value_error_context.cxx +6 -4
  80. data/ext/couchbase/core/impl/lookup_in_replica.hxx +2 -0
  81. data/ext/couchbase/core/impl/numeric_range.cxx +1 -1
  82. data/ext/couchbase/core/impl/observe_seqno.hxx +2 -0
  83. data/ext/couchbase/core/impl/query.cxx +1 -0
  84. data/ext/couchbase/core/impl/query_error_context.cxx +3 -2
  85. data/ext/couchbase/core/impl/scope.cxx +5 -6
  86. data/ext/couchbase/core/impl/search.cxx +3 -1
  87. data/ext/couchbase/core/io/config_tracker.cxx +1 -1
  88. data/ext/couchbase/core/io/dns_client.cxx +23 -8
  89. data/ext/couchbase/core/io/http_command.hxx +2 -2
  90. data/ext/couchbase/core/io/http_parser.cxx +1 -1
  91. data/ext/couchbase/core/io/http_session.cxx +4 -0
  92. data/ext/couchbase/core/io/http_session.hxx +4 -2
  93. data/ext/couchbase/core/io/mcbp_command.hxx +2 -2
  94. data/ext/couchbase/core/key_value_config.cxx +2 -2
  95. data/ext/couchbase/core/logger/logger.hxx +1 -1
  96. data/ext/couchbase/core/management/rbac_fmt.hxx +1 -1
  97. data/ext/couchbase/core/mcbp/operation_queue.cxx +1 -1
  98. data/ext/couchbase/core/mcbp/packet.cxx +1 -1
  99. data/ext/couchbase/core/meta/features.hxx +11 -0
  100. data/ext/couchbase/core/meta/version.cxx +48 -7
  101. data/ext/couchbase/core/operations/document_analytics.cxx +23 -17
  102. data/ext/couchbase/core/operations/document_analytics.hxx +1 -0
  103. data/ext/couchbase/core/operations/document_append.hxx +2 -0
  104. data/ext/couchbase/core/operations/document_decrement.hxx +2 -0
  105. data/ext/couchbase/core/operations/document_exists.hxx +2 -0
  106. data/ext/couchbase/core/operations/document_get.hxx +2 -0
  107. data/ext/couchbase/core/operations/document_get_all_replicas.hxx +2 -0
  108. data/ext/couchbase/core/operations/document_get_and_lock.hxx +2 -0
  109. data/ext/couchbase/core/operations/document_get_and_touch.hxx +2 -0
  110. data/ext/couchbase/core/operations/document_get_any_replica.hxx +2 -0
  111. data/ext/couchbase/core/operations/document_get_projected.hxx +2 -0
  112. data/ext/couchbase/core/operations/document_increment.hxx +2 -0
  113. data/ext/couchbase/core/operations/document_insert.hxx +2 -0
  114. data/ext/couchbase/core/operations/document_lookup_in.hxx +2 -0
  115. data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +2 -0
  116. data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +2 -0
  117. data/ext/couchbase/core/operations/document_mutate_in.hxx +2 -0
  118. data/ext/couchbase/core/operations/document_prepend.hxx +2 -0
  119. data/ext/couchbase/core/operations/document_query.hxx +1 -0
  120. data/ext/couchbase/core/operations/document_remove.hxx +2 -0
  121. data/ext/couchbase/core/operations/document_replace.hxx +2 -0
  122. data/ext/couchbase/core/operations/document_search.hxx +1 -0
  123. data/ext/couchbase/core/operations/document_touch.hxx +2 -0
  124. data/ext/couchbase/core/operations/document_unlock.hxx +2 -0
  125. data/ext/couchbase/core/operations/document_upsert.hxx +2 -0
  126. data/ext/couchbase/core/operations/document_view.hxx +1 -0
  127. data/ext/couchbase/core/operations/http_noop.hxx +2 -0
  128. data/ext/couchbase/core/operations/management/CMakeLists.txt +0 -1
  129. data/ext/couchbase/core/operations/management/analytics_dataset_create.cxx +1 -1
  130. data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +1 -0
  131. data/ext/couchbase/core/operations/management/analytics_dataset_drop.cxx +1 -1
  132. data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +1 -0
  133. data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +1 -0
  134. data/ext/couchbase/core/operations/management/analytics_dataverse_create.cxx +1 -1
  135. data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +1 -0
  136. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.cxx +1 -1
  137. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +1 -0
  138. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.cxx +1 -1
  139. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
  140. data/ext/couchbase/core/operations/management/analytics_index_create.hxx +1 -0
  141. data/ext/couchbase/core/operations/management/analytics_index_drop.cxx +1 -1
  142. data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +1 -0
  143. data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +1 -0
  144. data/ext/couchbase/core/operations/management/analytics_link_connect.cxx +1 -1
  145. data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +1 -0
  146. data/ext/couchbase/core/operations/management/analytics_link_create.hxx +1 -0
  147. data/ext/couchbase/core/operations/management/analytics_link_disconnect.cxx +1 -1
  148. data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +1 -0
  149. data/ext/couchbase/core/operations/management/analytics_link_drop.cxx +1 -1
  150. data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +1 -0
  151. data/ext/couchbase/core/operations/management/analytics_link_get_all.cxx +24 -16
  152. data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +4 -3
  153. data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +1 -0
  154. data/ext/couchbase/core/operations/management/analytics_link_utils.hxx +4 -3
  155. data/ext/couchbase/core/operations/management/bucket_create.hxx +1 -0
  156. data/ext/couchbase/core/operations/management/bucket_describe.cxx +1 -1
  157. data/ext/couchbase/core/operations/management/bucket_describe.hxx +1 -0
  158. data/ext/couchbase/core/operations/management/bucket_drop.cxx +1 -1
  159. data/ext/couchbase/core/operations/management/bucket_drop.hxx +1 -0
  160. data/ext/couchbase/core/operations/management/bucket_flush.cxx +1 -1
  161. data/ext/couchbase/core/operations/management/bucket_flush.hxx +1 -0
  162. data/ext/couchbase/core/operations/management/bucket_get.cxx +1 -1
  163. data/ext/couchbase/core/operations/management/bucket_get.hxx +1 -0
  164. data/ext/couchbase/core/operations/management/bucket_get_all.hxx +1 -0
  165. data/ext/couchbase/core/operations/management/bucket_update.hxx +1 -0
  166. data/ext/couchbase/core/operations/management/change_password.cxx +1 -1
  167. data/ext/couchbase/core/operations/management/change_password.hxx +1 -0
  168. data/ext/couchbase/core/operations/management/cluster_describe.hxx +1 -0
  169. data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +1 -0
  170. data/ext/couchbase/core/operations/management/collection_create.cxx +1 -1
  171. data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
  172. data/ext/couchbase/core/operations/management/collection_drop.cxx +1 -1
  173. data/ext/couchbase/core/operations/management/collection_drop.hxx +1 -0
  174. data/ext/couchbase/core/operations/management/collection_update.cxx +1 -1
  175. data/ext/couchbase/core/operations/management/collection_update.hxx +2 -0
  176. data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +2 -0
  177. data/ext/couchbase/core/operations/management/eventing_deploy_function.cxx +1 -1
  178. data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +3 -2
  179. data/ext/couchbase/core/operations/management/eventing_drop_function.cxx +1 -1
  180. data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +3 -2
  181. data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +3 -2
  182. data/ext/couchbase/core/operations/management/eventing_get_function.cxx +1 -1
  183. data/ext/couchbase/core/operations/management/eventing_get_function.hxx +3 -2
  184. data/ext/couchbase/core/operations/management/eventing_get_status.hxx +3 -2
  185. data/ext/couchbase/core/operations/management/eventing_pause_function.cxx +1 -1
  186. data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +3 -2
  187. data/ext/couchbase/core/operations/management/eventing_resume_function.cxx +1 -1
  188. data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +3 -2
  189. data/ext/couchbase/core/operations/management/eventing_undeploy_function.cxx +1 -1
  190. data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +3 -2
  191. data/ext/couchbase/core/operations/management/eventing_upsert_function.cxx +1 -2
  192. data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +3 -2
  193. data/ext/couchbase/core/operations/management/freeform.hxx +2 -0
  194. data/ext/couchbase/core/operations/management/group_drop.cxx +1 -1
  195. data/ext/couchbase/core/operations/management/group_drop.hxx +1 -0
  196. data/ext/couchbase/core/operations/management/group_get.cxx +1 -1
  197. data/ext/couchbase/core/operations/management/group_get.hxx +1 -0
  198. data/ext/couchbase/core/operations/management/group_get_all.hxx +1 -0
  199. data/ext/couchbase/core/operations/management/group_upsert.hxx +1 -0
  200. data/ext/couchbase/core/operations/management/query_index_build.hxx +7 -5
  201. data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +3 -0
  202. data/ext/couchbase/core/operations/management/query_index_create.cxx +1 -1
  203. data/ext/couchbase/core/operations/management/query_index_create.hxx +1 -0
  204. data/ext/couchbase/core/operations/management/query_index_drop.cxx +1 -1
  205. data/ext/couchbase/core/operations/management/query_index_drop.hxx +1 -0
  206. data/ext/couchbase/core/operations/management/query_index_get_all.hxx +2 -0
  207. data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +3 -0
  208. data/ext/couchbase/core/operations/management/role_get_all.hxx +1 -0
  209. data/ext/couchbase/core/operations/management/scope_create.cxx +1 -1
  210. data/ext/couchbase/core/operations/management/scope_create.hxx +1 -0
  211. data/ext/couchbase/core/operations/management/scope_drop.cxx +1 -1
  212. data/ext/couchbase/core/operations/management/scope_drop.hxx +1 -0
  213. data/ext/couchbase/core/operations/management/scope_get_all.cxx +1 -1
  214. data/ext/couchbase/core/operations/management/scope_get_all.hxx +1 -0
  215. data/ext/couchbase/core/operations/management/search_get_stats.hxx +1 -0
  216. data/ext/couchbase/core/operations/management/search_index_analyze_document.cxx +1 -1
  217. data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +1 -0
  218. data/ext/couchbase/core/operations/management/search_index_control_ingest.cxx +1 -1
  219. data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +1 -0
  220. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.cxx +1 -1
  221. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +1 -0
  222. data/ext/couchbase/core/operations/management/search_index_control_query.cxx +1 -1
  223. data/ext/couchbase/core/operations/management/search_index_control_query.hxx +1 -0
  224. data/ext/couchbase/core/operations/management/search_index_drop.cxx +1 -1
  225. data/ext/couchbase/core/operations/management/search_index_drop.hxx +1 -0
  226. data/ext/couchbase/core/operations/management/search_index_get.cxx +1 -1
  227. data/ext/couchbase/core/operations/management/search_index_get.hxx +1 -0
  228. data/ext/couchbase/core/operations/management/search_index_get_all.cxx +1 -1
  229. data/ext/couchbase/core/operations/management/search_index_get_all.hxx +1 -0
  230. data/ext/couchbase/core/operations/management/search_index_get_documents_count.cxx +1 -1
  231. data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +2 -0
  232. data/ext/couchbase/core/operations/management/search_index_get_stats.cxx +1 -1
  233. data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +1 -0
  234. data/ext/couchbase/core/operations/management/search_index_upsert.cxx +1 -1
  235. data/ext/couchbase/core/operations/management/search_index_upsert.hxx +1 -0
  236. data/ext/couchbase/core/operations/management/user_drop.hxx +1 -0
  237. data/ext/couchbase/core/operations/management/user_get.hxx +1 -0
  238. data/ext/couchbase/core/operations/management/user_get_all.hxx +1 -0
  239. data/ext/couchbase/core/operations/management/user_upsert.cxx +3 -3
  240. data/ext/couchbase/core/operations/management/user_upsert.hxx +1 -0
  241. data/ext/couchbase/core/operations/management/view_index_drop.cxx +1 -1
  242. data/ext/couchbase/core/operations/management/view_index_drop.hxx +1 -0
  243. data/ext/couchbase/core/operations/management/view_index_get.cxx +1 -1
  244. data/ext/couchbase/core/operations/management/view_index_get.hxx +1 -0
  245. data/ext/couchbase/core/operations/management/view_index_get_all.cxx +1 -1
  246. data/ext/couchbase/core/operations/management/view_index_get_all.hxx +2 -0
  247. data/ext/couchbase/core/operations/management/view_index_upsert.cxx +1 -1
  248. data/ext/couchbase/core/operations/management/view_index_upsert.hxx +1 -0
  249. data/ext/couchbase/core/origin.cxx +3 -2
  250. data/ext/couchbase/core/platform/base64.h +8 -8
  251. data/ext/couchbase/core/protocol/client_opcode_fmt.hxx +1 -1
  252. data/ext/couchbase/core/protocol/client_response.hxx +1 -1
  253. data/ext/couchbase/core/protocol/frame_info_id_fmt.hxx +1 -1
  254. data/ext/couchbase/core/protocol/hello_feature_fmt.hxx +1 -1
  255. data/ext/couchbase/core/protocol/magic_fmt.hxx +1 -1
  256. data/ext/couchbase/core/protocol/server_opcode_fmt.hxx +1 -1
  257. data/ext/couchbase/core/query_context.hxx +7 -6
  258. data/ext/couchbase/core/retry_orchestrator.cxx +1 -1
  259. data/ext/couchbase/core/sasl/CMakeLists.txt +0 -1
  260. data/ext/couchbase/core/sasl/error_fmt.h +1 -1
  261. data/ext/couchbase/core/seed_config.cxx +2 -2
  262. data/ext/couchbase/core/service_type_fmt.hxx +1 -1
  263. data/ext/couchbase/core/topology/capabilities_fmt.hxx +1 -1
  264. data/ext/couchbase/core/topology/collections_manifest_fmt.hxx +2 -1
  265. data/ext/couchbase/core/topology/configuration_fmt.hxx +1 -1
  266. data/ext/couchbase/core/transactions/async_attempt_context.cxx +1 -1
  267. data/ext/couchbase/core/transactions/async_attempt_context.hxx +9 -22
  268. data/ext/couchbase/core/transactions/attempt_context.cxx +1 -1
  269. data/ext/couchbase/core/transactions/attempt_context.hxx +6 -33
  270. data/ext/couchbase/core/transactions/attempt_context_impl.cxx +41 -41
  271. data/ext/couchbase/core/transactions/attempt_context_impl.hxx +15 -16
  272. data/ext/couchbase/core/transactions/exceptions_fmt.hxx +1 -1
  273. data/ext/couchbase/core/transactions/internal/atr_cleanup_entry.hxx +1 -1
  274. data/ext/couchbase/core/transactions/internal/client_record.hxx +4 -3
  275. data/ext/couchbase/core/transactions/internal/doc_record_fmt.hxx +1 -1
  276. data/ext/couchbase/core/transactions/internal/exceptions_internal.hxx +0 -2
  277. data/ext/couchbase/core/transactions/internal/exceptions_internal_fmt.hxx +1 -1
  278. data/ext/couchbase/core/transactions/internal/logging.hxx +2 -0
  279. data/ext/couchbase/core/transactions/internal/transaction_context.hxx +3 -0
  280. data/ext/couchbase/core/transactions/result_fmt.hxx +1 -1
  281. data/ext/couchbase/core/transactions/transaction_context.cxx +12 -2
  282. data/ext/couchbase/core/transactions/transaction_get_result.hxx +0 -20
  283. data/ext/couchbase/core/transactions/transaction_links.hxx +1 -1
  284. data/ext/couchbase/core/utils/join_strings.hxx +2 -2
  285. data/ext/couchbase/core/utils/keyspace.hxx +2 -1
  286. data/ext/couchbase/core/utils/url_codec.cxx +1 -1
  287. data/ext/couchbase/couchbase/common_options.hxx +16 -1
  288. data/ext/couchbase/couchbase/fmt/analytics_scan_consistency.hxx +0 -2
  289. data/ext/couchbase/couchbase/fmt/analytics_status.hxx +0 -2
  290. data/ext/couchbase/couchbase/fmt/cas.hxx +0 -2
  291. data/ext/couchbase/couchbase/fmt/durability_level.hxx +0 -2
  292. data/ext/couchbase/couchbase/fmt/error.hxx +0 -2
  293. data/ext/couchbase/couchbase/fmt/error_context.hxx +0 -2
  294. data/ext/couchbase/couchbase/fmt/mutation_token.hxx +0 -2
  295. data/ext/couchbase/couchbase/fmt/query_profile.hxx +0 -2
  296. data/ext/couchbase/couchbase/fmt/query_scan_consistency.hxx +0 -2
  297. data/ext/couchbase/couchbase/fmt/query_status.hxx +0 -2
  298. data/ext/couchbase/couchbase/fmt/retry_reason.hxx +5 -1
  299. data/ext/couchbase/couchbase/fmt/search_scan_consistency.hxx +0 -2
  300. data/ext/couchbase/couchbase/fmt/tls_verify_mode.hxx +0 -2
  301. data/ext/couchbase/couchbase/fmt/transaction_keyspace.hxx +0 -2
  302. data/ext/couchbase/couchbase/metrics/otel_meter.hxx +16 -20
  303. data/ext/extconf.rb +1 -0
  304. data/ext/rcb_analytics.cxx +7 -7
  305. data/ext/rcb_backend.cxx +6 -1
  306. data/ext/rcb_buckets.cxx +1 -1
  307. data/ext/rcb_collections.cxx +1 -1
  308. data/ext/rcb_crud.cxx +51 -30
  309. data/ext/rcb_diagnostics.cxx +1 -1
  310. data/ext/rcb_exceptions.cxx +3 -2
  311. data/ext/rcb_extras.cxx +1 -1
  312. data/ext/rcb_range_scan.cxx +1 -1
  313. data/ext/rcb_search.cxx +1 -1
  314. data/ext/rcb_users.cxx +2 -2
  315. data/ext/rcb_utils.hxx +32 -0
  316. data/lib/couchbase/logger.rb +3 -3
  317. data/lib/couchbase/options.rb +48 -0
  318. data/lib/couchbase/version.rb +1 -1
  319. metadata +131 -153
  320. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/CMakeLists.txt +0 -520
  321. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/ChangeLog.md +0 -2598
  322. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/LICENSE +0 -27
  323. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/README.md +0 -484
  324. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/fmt.cc +0 -135
  325. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/os.cc +0 -403
  326. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/FindSetEnv.cmake +0 -7
  327. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/JoinPaths.cmake +0 -26
  328. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt-config.cmake.in +0 -7
  329. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt.pc.in +0 -11
  330. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/args.h +0 -235
  331. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -2240
  332. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/color.h +0 -643
  333. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/compile.h +0 -535
  334. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/core.h +0 -2969
  335. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1678
  336. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format.h +0 -4535
  337. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/os.h +0 -455
  338. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -245
  339. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/printf.h +0 -675
  340. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -738
  341. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/std.h +0 -537
  342. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/xchar.h +0 -259
  343. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/src/bundled_fmtlib_format.cpp +0 -46
  344. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/LICENSE +0 -0
  345. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/ide.cmake +0 -0
  346. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/pch.h.in +0 -0
  347. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlog.pc.in +0 -0
  348. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogCPack.cmake +0 -0
  349. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogConfig.cmake.in +0 -0
  350. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/version.rc.in +0 -0
  351. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async.h +0 -0
  352. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async_logger.h +0 -0
  353. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/argv.h +0 -0
  354. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/env.h +0 -0
  355. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers-inl.h +0 -0
  356. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers.h +0 -0
  357. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common-inl.h +0 -0
  358. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common.h +0 -0
  359. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer-inl.h +0 -0
  360. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer.h +0 -0
  361. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/circular_q.h +0 -0
  362. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/console_globals.h +0 -0
  363. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper-inl.h +0 -0
  364. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper.h +0 -0
  365. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/fmt_helper.h +0 -0
  366. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg-inl.h +0 -0
  367. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg.h +0 -0
  368. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -0
  369. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer.h +0 -0
  370. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/null_mutex.h +0 -0
  371. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/os.h +0 -0
  372. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -0
  373. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker.h +0 -0
  374. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry-inl.h +0 -0
  375. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry.h +0 -0
  376. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/synchronous_factory.h +0 -0
  377. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client-windows.h +0 -0
  378. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client.h +0 -0
  379. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client-windows.h +0 -0
  380. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client.h +0 -0
  381. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/windows_include.h +0 -0
  382. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -0
  383. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/args.h +0 -0
  384. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/chrono.h +0 -0
  385. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/color.h +0 -0
  386. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/compile.h +0 -0
  387. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/core.h +0 -0
  388. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/fmt.license.rst +0 -0
  389. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/locale.h +0 -0
  390. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/os.h +0 -0
  391. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/ostream.h +0 -0
  392. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/printf.h +0 -0
  393. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/std.h +0 -0
  394. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/xchar.h +0 -0
  395. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/chrono.h +0 -0
  396. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/compile.h +0 -0
  397. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/fmt.h +0 -0
  398. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ostr.h +0 -0
  399. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ranges.h +0 -0
  400. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/std.h +0 -0
  401. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/xchar.h +0 -0
  402. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/formatter.h +0 -0
  403. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fwd.h +0 -0
  404. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger-inl.h +0 -0
  405. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger.h +0 -0
  406. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/pattern_formatter.h +0 -0
  407. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/android_sink.h +0 -0
  408. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -0
  409. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -0
  410. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -0
  411. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -0
  412. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dist_sink.h +0 -0
  413. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -0
  414. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/kafka_sink.h +0 -0
  415. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/mongo_sink.h +0 -0
  416. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/null_sink.h +0 -0
  417. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ostream_sink.h +0 -0
  418. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/qt_sinks.h +0 -0
  419. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -0
  420. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -0
  421. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink-inl.h +0 -0
  422. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink.h +0 -0
  423. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -0
  424. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -0
  425. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -0
  426. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -0
  427. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/systemd_sink.h +0 -0
  428. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/tcp_sink.h +0 -0
  429. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/udp_sink.h +0 -0
  430. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -0
  431. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -0
  432. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog-inl.h +0 -0
  433. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog.h +0 -0
  434. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/stopwatch.h +0 -0
  435. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/tweakme.h +0 -0
  436. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/async.cpp +0 -0
  437. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/cfg.cpp +0 -0
  438. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/color_sinks.cpp +0 -0
  439. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/file_sinks.cpp +0 -0
  440. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/spdlog.cpp +0 -0
  441. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/stdout_sinks.cpp +0 -0
@@ -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/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"]
@@ -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
@@ -22,7 +22,7 @@
22
22
  #include <core/utils/connection_string.hxx>
23
23
 
24
24
  #include <asio/io_context.hpp>
25
- #include <fmt/core.h>
25
+ #include <spdlog/fmt/bundled/core.h>
26
26
 
27
27
  #include <future>
28
28
  #include <memory>
@@ -208,6 +208,11 @@ initialize_cluster_options(const core::utils::connection_string& connstr,
208
208
  cluster_options.network().preferred_network(param.value());
209
209
  }
210
210
 
211
+ static const auto server_group = rb_id2sym(rb_intern("preferred_server_group"));
212
+ if (auto group = options::get_string(options, server_group); group) {
213
+ cluster_options.network().preferred_server_group(group.value());
214
+ }
215
+
211
216
  static const auto sym_use_ip_protocol = rb_id2sym(rb_intern("use_ip_protocol"));
212
217
  if (auto proto = options::get_symbol(options, sym_use_ip_protocol); proto) {
213
218
  static const auto sym_any = rb_id2sym(rb_intern("any"));
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>
@@ -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
 
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)
@@ -46,7 +46,7 @@ module Couchbase
46
46
 
47
47
  # Return logger associated with the library
48
48
  def self.logger
49
- @logger # rubocop:disable ThreadSafety/InstanceVariableInClassMethod
49
+ @logger # rubocop:disable ThreadSafety/ClassInstanceVariable
50
50
  end
51
51
 
52
52
  # Associate logger with the library
@@ -67,8 +67,8 @@ module Couchbase
67
67
  #
68
68
  # @since 3.4.0
69
69
  def self.set_logger(logger, adapter_class: nil, verbose: false, level: :info)
70
- @logger = logger # rubocop:disable ThreadSafety/InstanceVariableInClassMethod
71
- if @logger.nil? # rubocop:disable ThreadSafety/InstanceVariableInClassMethod
70
+ @logger = logger # rubocop:disable ThreadSafety/ClassInstanceVariable
71
+ if @logger.nil? # rubocop:disable ThreadSafety/ClassInstanceVariable
72
72
  Backend.install_logger_shim(nil)
73
73
  return
74
74
  end
@@ -237,10 +237,14 @@ module Couchbase
237
237
  # Options for {Collection#get_all_replicas}
238
238
  class GetAllReplicas < Base
239
239
  attr_accessor :transcoder # @return [JsonTranscoder, #decode(String, Integer)]
240
+ attr_accessor :read_preference # @return [Symbol]
240
241
 
241
242
  # Creates an instance of options for {Collection#get_all_replicas}
242
243
  #
243
244
  # @param [JsonTranscoder, #decode(String, Integer)] transcoder used for decoding
245
+ # @param [Symbol] read_preference decides how the replica nodes will be selected.
246
+ # +:no_preference+:: no preference and will select any available replica. This is the default
247
+ # +:selected_server_group+:: restrict to nodes in {Cluster#preferred_server_group}
244
248
  #
245
249
  # @param [Integer, #in_milliseconds, nil] timeout
246
250
  # @param [Proc, nil] retry_strategy the custom retry strategy, if set
@@ -249,12 +253,14 @@ module Couchbase
249
253
  #
250
254
  # @yieldparam [GetAllReplicas] self
251
255
  def initialize(transcoder: JsonTranscoder.new,
256
+ read_preference: :no_preference,
252
257
  timeout: nil,
253
258
  retry_strategy: nil,
254
259
  client_context: nil,
255
260
  parent_span: nil)
256
261
  super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
257
262
  @transcoder = transcoder
263
+ @read_preference = read_preference
258
264
  yield self if block_given?
259
265
  end
260
266
 
@@ -262,6 +268,7 @@ module Couchbase
262
268
  def to_backend
263
269
  {
264
270
  timeout: Utils::Time.extract_duration(@timeout),
271
+ read_preference: @read_preference,
265
272
  }
266
273
  end
267
274
 
@@ -272,10 +279,14 @@ module Couchbase
272
279
  # Options for {Collection#get_any_replica}
273
280
  class GetAnyReplica < Base
274
281
  attr_accessor :transcoder # @return [JsonTranscoder, #decode(String, Integer)]
282
+ attr_accessor :read_preference # @return [Symbol]
275
283
 
276
284
  # Creates an instance of options for {Collection#get_any_replica}
277
285
  #
278
286
  # @param [JsonTranscoder, #decode(String, Integer)] transcoder used for decoding
287
+ # @param [Symbol] read_preference decides how the replica nodes will be selected.
288
+ # +:no_preference+:: no preference and will select any available replica. This is the default
289
+ # +:selected_server_group+:: restrict to nodes in {Cluster#preferred_server_group}
279
290
  #
280
291
  # @param [Integer, #in_milliseconds, nil] timeout
281
292
  # @param [Proc, nil] retry_strategy the custom retry strategy, if set
@@ -284,12 +295,14 @@ module Couchbase
284
295
  #
285
296
  # @yieldparam [GetAnyReplica] self
286
297
  def initialize(transcoder: JsonTranscoder.new,
298
+ read_preference: :no_preference,
287
299
  timeout: nil,
288
300
  retry_strategy: nil,
289
301
  client_context: nil,
290
302
  parent_span: nil)
291
303
  super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
292
304
  @transcoder = transcoder
305
+ @read_preference = read_preference
293
306
  yield self if block_given?
294
307
  end
295
308
 
@@ -297,6 +310,7 @@ module Couchbase
297
310
  def to_backend
298
311
  {
299
312
  timeout: Utils::Time.extract_duration(@timeout),
313
+ read_preference: @read_preference,
300
314
  }
301
315
  end
302
316
 
@@ -1032,10 +1046,14 @@ module Couchbase
1032
1046
  # Options for {Collection#lookup_in_any_replica}
1033
1047
  class LookupInAnyReplica < Base
1034
1048
  attr_accessor :transcoder # @return [JsonTranscoder, #decode(String)]
1049
+ attr_accessor :read_preference # @return [Symbol]
1035
1050
 
1036
1051
  # Creates an instance of options for {Collection#lookup_in_any_replica}
1037
1052
  #
1038
1053
  # @param [JsonTranscoder, #decode(String)] transcoder used for encoding
1054
+ # @param [Symbol] read_preference decides how the replica nodes will be selected.
1055
+ # +:no_preference+:: no preference and will select any available replica. This is the default
1056
+ # +:selected_server_group+:: restrict to nodes in {Cluster#preferred_server_group}
1039
1057
  #
1040
1058
  # @param [Integer, #in_milliseconds, nil] timeout
1041
1059
  # @param [Proc, nil] retry_strategy the custom retry strategy, if set
@@ -1044,12 +1062,14 @@ module Couchbase
1044
1062
  #
1045
1063
  # @yieldparam [LookupIn] self
1046
1064
  def initialize(transcoder: JsonTranscoder.new,
1065
+ read_preference: :no_preference,
1047
1066
  timeout: nil,
1048
1067
  retry_strategy: nil,
1049
1068
  client_context: nil,
1050
1069
  parent_span: nil)
1051
1070
  super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
1052
1071
  @transcoder = transcoder
1072
+ @read_preference = read_preference
1053
1073
  yield self if block_given?
1054
1074
  end
1055
1075
 
@@ -1057,6 +1077,7 @@ module Couchbase
1057
1077
  def to_backend
1058
1078
  {
1059
1079
  timeout: Utils::Time.extract_duration(@timeout),
1080
+ read_preference: @read_preference,
1060
1081
  }
1061
1082
  end
1062
1083
 
@@ -1071,10 +1092,14 @@ module Couchbase
1071
1092
  # Options for {Collection#lookup_in_all_replicas}
1072
1093
  class LookupInAllReplicas < Base
1073
1094
  attr_accessor :transcoder # @return [JsonTranscoder, #decode(String)]
1095
+ attr_accessor :read_preference # @return [Symbol]
1074
1096
 
1075
1097
  # Creates an instance of options for {Collection#lookup_in_all_replicas}
1076
1098
  #
1077
1099
  # @param [JsonTranscoder, #decode(String)] transcoder used for encoding
1100
+ # @param [Symbol] read_preference decides how the replica nodes will be selected.
1101
+ # +:no_preference+:: no preference and will select any available replica. This is the default
1102
+ # +:selected_server_group+:: restrict to nodes in {Cluster#preferred_server_group}
1078
1103
  #
1079
1104
  # @param [Integer, #in_milliseconds, nil] timeout
1080
1105
  # @param [Proc, nil] retry_strategy the custom retry strategy, if set
@@ -1083,12 +1108,14 @@ module Couchbase
1083
1108
  #
1084
1109
  # @yieldparam [LookupInAllReplicas] self
1085
1110
  def initialize(transcoder: JsonTranscoder.new,
1111
+ read_preference: :no_preference,
1086
1112
  timeout: nil,
1087
1113
  retry_strategy: nil,
1088
1114
  client_context: nil,
1089
1115
  parent_span: nil)
1090
1116
  super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
1091
1117
  @transcoder = transcoder
1118
+ @read_preference = read_preference
1092
1119
  yield self if block_given?
1093
1120
  end
1094
1121
 
@@ -1096,6 +1123,7 @@ module Couchbase
1096
1123
  def to_backend
1097
1124
  {
1098
1125
  timeout: Utils::Time.extract_duration(@timeout),
1126
+ read_preference: @read_preference,
1099
1127
  }
1100
1128
  end
1101
1129
 
@@ -1646,6 +1674,8 @@ module Couchbase
1646
1674
  class Cluster
1647
1675
  attr_accessor :authenticator # @return [PasswordAuthenticator, CertificateAuthenticator]
1648
1676
 
1677
+ attr_accessor :preferred_server_group # @return [String]
1678
+
1649
1679
  attr_accessor :enable_metrics # @return [Boolean]
1650
1680
  attr_accessor :metrics_emit_interval # @return [nil, Integer, #in_milliseconds]
1651
1681
  attr_accessor :enable_tracing # @return [Boolean]
@@ -1679,6 +1709,7 @@ module Couchbase
1679
1709
  # Creates an instance of options for {Couchbase::Cluster.connect}
1680
1710
  #
1681
1711
  # @param [PasswordAuthenticator, CertificateAuthenticator] authenticator
1712
+ # @param [String] preferred_server_group the server group to use for replica APIs e.g. {Collection#get_all_replicas}
1682
1713
  # @param [nil, Integer, #in_milliseconds] key_value_timeout default timeout for Key/Value operations, e.g. {Collection#get}
1683
1714
  # @param [nil, Integer, #in_milliseconds] view_timeout default timeout for View query
1684
1715
  # @param [nil, Integer, #in_milliseconds] query_timeout default timeout for N1QL query
@@ -1690,6 +1721,7 @@ module Couchbase
1690
1721
  #
1691
1722
  # @yieldparam [Cluster] self
1692
1723
  def initialize(authenticator: nil,
1724
+ preferred_server_group: nil,
1693
1725
  enable_metrics: nil,
1694
1726
  metrics_emit_interval: nil,
1695
1727
  enable_tracing: nil,
@@ -1719,6 +1751,7 @@ module Couchbase
1719
1751
  config_idle_redial_timeout: nil,
1720
1752
  idle_http_connection_timeout: nil)
1721
1753
  @authenticator = authenticator
1754
+ @preferred_server_group = preferred_server_group
1722
1755
  @enable_metrics = enable_metrics
1723
1756
  @metrics_emit_interval = metrics_emit_interval
1724
1757
  @enable_tracing = enable_tracing
@@ -1765,6 +1798,7 @@ module Couchbase
1765
1798
  def to_backend
1766
1799
  {
1767
1800
  enable_metrics: @enable_metrics,
1801
+ preferred_server_group: @preferred_server_group,
1768
1802
  metrics_emit_interval: Utils::Time.extract_duration(@metrics_emit_interval),
1769
1803
  enable_tracing: @enable_tracing,
1770
1804
  orphaned_emit_interval: Utils::Time.extract_duration(@orphaned_emit_interval),
@@ -2841,6 +2875,20 @@ module Couchbase
2841
2875
  Scan.new(**args)
2842
2876
  end
2843
2877
 
2878
+ # Construct {LookupInAnyReplica} options for {Collection#lookup_in_any_replica}
2879
+ #
2880
+ # @return [LookupInAnyReplica]
2881
+ def LookupInAnyReplica(**args)
2882
+ LookupInAnyReplica.new(**args)
2883
+ end
2884
+
2885
+ # Construct {LookupInAllReplics} options for {Collection#lookup_in_all_replicas}
2886
+ #
2887
+ # @return [LookupInAllReplicas]
2888
+ def LookupInAllReplicas(**args)
2889
+ LookupInAllReplicas.new(**args)
2890
+ end
2891
+
2844
2892
  # rubocop:enable Naming/MethodName
2845
2893
  end
2846
2894
  end
@@ -21,5 +21,5 @@ module Couchbase
21
21
  # $ ruby -rcouchbase -e 'pp Couchbase::VERSION'
22
22
  # {:sdk=>"3.4.0", :ruby_abi=>"3.1.0", :revision=>"416fe68e6029ec8a4c40611cf6e6b30d3b90d20f"}
23
23
  VERSION = {} unless defined?(VERSION) # rubocop:disable Style/MutableConstant
24
- VERSION.update(:sdk => "3.5.4")
24
+ VERSION.update(:sdk => "3.5.5")
25
25
  end