couchbase 4.2.8 → 4.2.10

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 (370) hide show
  1. package/CMakeLists.txt +1 -1
  2. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +139 -56
  3. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
  4. package/deps/couchbase-cxx-client/CMakeLists.txt +401 -424
  5. package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +7 -3
  6. package/deps/couchbase-cxx-client/cmake/OpenSSL.cmake +1 -0
  7. package/deps/couchbase-cxx-client/core/agent_config.hxx +1 -1
  8. package/deps/couchbase-cxx-client/core/agent_group.cxx +0 -1
  9. package/deps/couchbase-cxx-client/core/agent_group.hxx +9 -0
  10. package/deps/couchbase-cxx-client/core/agent_group_config.hxx +1 -1
  11. package/deps/couchbase-cxx-client/core/bucket.cxx +74 -10
  12. package/deps/couchbase-cxx-client/core/bucket.hxx +4 -2
  13. package/deps/couchbase-cxx-client/core/cluster.cxx +1491 -108
  14. package/deps/couchbase-cxx-client/core/cluster.hxx +183 -473
  15. package/deps/couchbase-cxx-client/core/cluster_agent_config.hxx +1 -1
  16. package/deps/couchbase-cxx-client/core/cluster_options.cxx +12 -2
  17. package/deps/couchbase-cxx-client/core/cluster_options.hxx +9 -8
  18. package/deps/couchbase-cxx-client/core/config_profiles.cxx +2 -2
  19. package/deps/couchbase-cxx-client/core/config_profiles.hxx +1 -1
  20. package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +1 -2
  21. package/deps/couchbase-cxx-client/core/core_sdk_shim.hxx +3 -2
  22. package/deps/couchbase-cxx-client/core/diagnostics.hxx +0 -1
  23. package/deps/couchbase-cxx-client/core/dispatcher.cxx +2 -2
  24. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +38 -76
  25. package/deps/couchbase-cxx-client/core/impl/analytics.hxx +40 -0
  26. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +820 -0
  27. package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +403 -0
  28. package/deps/couchbase-cxx-client/core/impl/bucket.cxx +102 -0
  29. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +433 -0
  30. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +299 -44
  31. package/deps/couchbase-cxx-client/core/impl/collection.cxx +1384 -0
  32. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +306 -0
  33. package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +3 -1
  34. package/deps/couchbase-cxx-client/core/impl/diagnostics.cxx +294 -0
  35. package/deps/couchbase-cxx-client/core/impl/diagnostics.hxx +39 -0
  36. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +2 -0
  37. package/deps/couchbase-cxx-client/core/{operations/mcbp_noop.cxx → impl/doc_id_query.cxx} +19 -15
  38. package/deps/couchbase-cxx-client/core/impl/key_value_error_category.cxx +4 -2
  39. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.hxx +0 -10
  40. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.hxx +0 -10
  41. package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +24 -17
  42. package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -1
  43. package/deps/couchbase-cxx-client/core/impl/query.cxx +45 -68
  44. package/deps/couchbase-cxx-client/core/impl/query.hxx +34 -0
  45. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +628 -0
  46. package/deps/couchbase-cxx-client/core/impl/scope.cxx +187 -0
  47. package/deps/couchbase-cxx-client/core/impl/search.cxx +81 -57
  48. package/deps/couchbase-cxx-client/core/impl/search.hxx +45 -0
  49. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +712 -0
  50. package/deps/couchbase-cxx-client/core/impl/search_request.cxx +139 -0
  51. package/deps/couchbase-cxx-client/core/impl/search_row_location.cxx +12 -0
  52. package/deps/couchbase-cxx-client/core/impl/search_sort_geo_distance.cxx +87 -0
  53. package/deps/couchbase-cxx-client/core/impl/vector_query.cxx +42 -0
  54. package/deps/couchbase-cxx-client/core/impl/vector_search.cxx +40 -0
  55. package/deps/couchbase-cxx-client/core/impl/with_legacy_durability.hxx +23 -25
  56. package/deps/couchbase-cxx-client/core/io/dns_config.cxx +28 -0
  57. package/deps/couchbase-cxx-client/core/io/dns_config.hxx +6 -25
  58. package/deps/couchbase-cxx-client/core/io/http_session.hxx +6 -3
  59. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +9 -1
  60. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +1 -1
  61. package/deps/couchbase-cxx-client/core/io/mcbp_message.hxx +3 -2
  62. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +75 -53
  63. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +3 -1
  64. package/deps/couchbase-cxx-client/core/logger/logger.cxx +1 -1
  65. package/deps/couchbase-cxx-client/core/logger/logger.hxx +4 -4
  66. package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +1 -1
  67. package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +1 -1
  68. package/deps/couchbase-cxx-client/core/mcbp/queue_callback.hxx +1 -1
  69. package/deps/couchbase-cxx-client/core/meta/features.hxx +38 -0
  70. package/deps/couchbase-cxx-client/core/operations/document_query.cxx +23 -2
  71. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -1
  72. package/deps/couchbase-cxx-client/core/operations/document_search.cxx +37 -1
  73. package/deps/couchbase-cxx-client/core/operations/document_search.hxx +11 -0
  74. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +2 -0
  75. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +2 -0
  76. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +2 -0
  77. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +2 -0
  78. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +2 -0
  79. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +2 -0
  80. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +2 -0
  81. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +2 -0
  82. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +2 -0
  83. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +2 -0
  84. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +1 -1
  85. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -0
  86. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +2 -0
  87. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +2 -0
  88. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +2 -0
  89. package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +3 -1
  90. package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +9 -6
  91. package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +1 -1
  92. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +2 -0
  93. package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +9 -8
  94. package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +1 -1
  95. package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +9 -5
  96. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +2 -0
  97. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +2 -0
  98. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +2 -0
  99. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +2 -0
  100. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +2 -0
  101. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +2 -0
  102. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +2 -0
  103. package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +2 -0
  104. package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +2 -0
  105. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.cxx +1 -1
  106. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +2 -2
  107. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +4 -1
  108. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +4 -1
  109. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +1 -1
  110. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +1 -1
  111. package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +2 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +2 -0
  114. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.cxx +4 -4
  115. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +4 -4
  116. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +19 -1
  117. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +3 -0
  118. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +23 -1
  119. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +3 -0
  120. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +23 -1
  121. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +3 -0
  122. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +23 -1
  123. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +3 -0
  124. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +19 -1
  125. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +3 -0
  126. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +19 -1
  127. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +2 -0
  128. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +39 -22
  129. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +3 -0
  130. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +20 -1
  131. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +3 -0
  132. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +2 -0
  133. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +19 -1
  134. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +3 -0
  135. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -0
  136. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -0
  137. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +2 -0
  138. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -0
  139. package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
  140. package/deps/couchbase-cxx-client/core/operations_fwd.hxx +260 -0
  141. package/deps/couchbase-cxx-client/core/origin.cxx +146 -5
  142. package/deps/couchbase-cxx-client/core/origin.hxx +30 -140
  143. package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.hxx +3 -3
  144. package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +5 -0
  145. package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.hxx +4 -4
  146. package/deps/couchbase-cxx-client/core/protocol/hello_feature.hxx +6 -0
  147. package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +3 -0
  148. package/deps/couchbase-cxx-client/core/protocol/status.cxx +6 -0
  149. package/deps/couchbase-cxx-client/core/protocol/status.hxx +1 -0
  150. package/deps/couchbase-cxx-client/core/query_context.hxx +11 -7
  151. package/deps/couchbase-cxx-client/core/range_scan_orchestrator.cxx +1 -1
  152. package/deps/couchbase-cxx-client/core/topology/collections_manifest.hxx +1 -1
  153. package/deps/couchbase-cxx-client/core/topology/collections_manifest_json.hxx +1 -1
  154. package/deps/couchbase-cxx-client/core/topology/configuration.cxx +23 -0
  155. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +8 -12
  156. package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +3 -3
  157. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +2 -0
  158. package/deps/couchbase-cxx-client/core/topology/error_map.hxx +2 -2
  159. package/deps/couchbase-cxx-client/core/topology/error_map_json.hxx +4 -0
  160. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.cxx +58 -0
  161. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +5 -40
  162. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +30 -0
  163. package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +18 -18
  164. package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +36 -0
  165. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +39 -41
  166. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +2 -2
  167. package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +3 -1
  168. package/deps/couchbase-cxx-client/core/transactions/internal/atr_entry.hxx +2 -0
  169. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +32 -0
  170. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +4 -30
  171. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +41 -0
  172. package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +17 -15
  173. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +1 -1
  174. package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +4 -4
  175. package/deps/couchbase-cxx-client/core/transactions/internal/utils.hxx +5 -13
  176. package/deps/couchbase-cxx-client/core/transactions/result.hxx +0 -26
  177. package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +46 -0
  178. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +16 -14
  179. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +6 -6
  180. package/deps/couchbase-cxx-client/core/transactions/transaction_keyspace.cxx +48 -0
  181. package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +1 -0
  182. package/deps/couchbase-cxx-client/core/transactions/transaction_options.cxx +61 -4
  183. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +9 -8
  184. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +9 -16
  185. package/deps/couchbase-cxx-client/core/transactions/transactions_config.cxx +7 -6
  186. package/deps/couchbase-cxx-client/core/transactions.hxx +6 -5
  187. package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +4 -3
  188. package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +4 -4
  189. package/deps/couchbase-cxx-client/core/vector_query_combination.hxx +23 -0
  190. package/deps/couchbase-cxx-client/couchbase/allow_querying_search_index_options.hxx +44 -0
  191. package/deps/couchbase-cxx-client/couchbase/analytics_index_manager.hxx +463 -0
  192. package/deps/couchbase-cxx-client/couchbase/analyze_document_options.hxx +44 -0
  193. package/deps/couchbase-cxx-client/couchbase/append_options.hxx +0 -24
  194. package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +1 -1
  195. package/deps/couchbase-cxx-client/couchbase/binary_collection.hxx +19 -115
  196. package/deps/couchbase-cxx-client/couchbase/bucket.hxx +42 -30
  197. package/deps/couchbase-cxx-client/couchbase/bucket_manager.hxx +8 -7
  198. package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +0 -1
  199. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +151 -73
  200. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +1 -27
  201. package/deps/couchbase-cxx-client/couchbase/codec/json_transcoder.hxx +1 -1
  202. package/deps/couchbase-cxx-client/couchbase/codec/raw_binary_transcoder.hxx +2 -1
  203. package/deps/couchbase-cxx-client/couchbase/codec/raw_json_transcoder.hxx +78 -0
  204. package/deps/couchbase-cxx-client/couchbase/codec/raw_string_transcoder.hxx +72 -0
  205. package/deps/couchbase-cxx-client/couchbase/collection.hxx +176 -386
  206. package/deps/couchbase-cxx-client/couchbase/collection_manager.hxx +8 -9
  207. package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +21 -24
  208. package/deps/couchbase-cxx-client/couchbase/connect_link_analytics_options.hxx +116 -0
  209. package/deps/couchbase-cxx-client/couchbase/create_bucket_options.hxx +3 -3
  210. package/deps/couchbase-cxx-client/couchbase/create_collection_options.hxx +32 -3
  211. package/deps/couchbase-cxx-client/couchbase/create_dataset_analytics_options.hxx +120 -0
  212. package/deps/couchbase-cxx-client/couchbase/create_dataverse_analytics_options.hxx +85 -0
  213. package/deps/couchbase-cxx-client/couchbase/create_index_analytics_options.hxx +103 -0
  214. package/deps/couchbase-cxx-client/couchbase/create_link_analytics_options.hxx +63 -0
  215. package/deps/couchbase-cxx-client/couchbase/decrement_options.hxx +0 -23
  216. package/deps/couchbase-cxx-client/couchbase/diagnostics_options.hxx +75 -0
  217. package/deps/couchbase-cxx-client/couchbase/diagnostics_result.hxx +124 -0
  218. package/deps/couchbase-cxx-client/couchbase/disallow_querying_search_index_options.hxx +43 -0
  219. package/deps/couchbase-cxx-client/couchbase/disconnect_link_analytics_options.hxx +105 -0
  220. package/deps/couchbase-cxx-client/couchbase/drop_dataset_analytics_options.hxx +103 -0
  221. package/deps/couchbase-cxx-client/couchbase/drop_dataverse_analytics_options.hxx +84 -0
  222. package/deps/couchbase-cxx-client/couchbase/drop_index_analytics_options.hxx +103 -0
  223. package/deps/couchbase-cxx-client/couchbase/drop_link_analytics_options.hxx +63 -0
  224. package/deps/couchbase-cxx-client/couchbase/drop_search_index_options.hxx +43 -0
  225. package/deps/couchbase-cxx-client/couchbase/endpoint_diagnostics.hxx +206 -0
  226. package/deps/couchbase-cxx-client/couchbase/endpoint_ping_report.hxx +205 -0
  227. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +22 -1
  228. package/deps/couchbase-cxx-client/couchbase/exists_options.hxx +0 -23
  229. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_error_map_attribute.hxx +6 -0
  230. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +3 -0
  231. package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +37 -0
  232. package/deps/couchbase-cxx-client/couchbase/freeze_plan_search_index_options.hxx +43 -0
  233. package/deps/couchbase-cxx-client/couchbase/get_all_datasets_analytics_options.hxx +66 -0
  234. package/deps/couchbase-cxx-client/couchbase/get_all_indexes_analytics_options.hxx +65 -0
  235. package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +1 -4
  236. package/deps/couchbase-cxx-client/couchbase/get_all_replicas_options.hxx +0 -23
  237. package/deps/couchbase-cxx-client/couchbase/get_all_search_indexes_options.hxx +45 -0
  238. package/deps/couchbase-cxx-client/couchbase/get_and_lock_options.hxx +0 -24
  239. package/deps/couchbase-cxx-client/couchbase/get_and_touch_options.hxx +0 -24
  240. package/deps/couchbase-cxx-client/couchbase/get_any_replica_options.hxx +0 -23
  241. package/deps/couchbase-cxx-client/couchbase/get_indexed_search_index_options.hxx +43 -0
  242. package/deps/couchbase-cxx-client/couchbase/get_links_analytics_options.hxx +121 -0
  243. package/deps/couchbase-cxx-client/couchbase/get_options.hxx +1 -29
  244. package/deps/couchbase-cxx-client/couchbase/get_pending_mutations_analytics_options.hxx +67 -0
  245. package/deps/couchbase-cxx-client/couchbase/get_search_index_options.hxx +44 -0
  246. package/deps/couchbase-cxx-client/couchbase/increment_options.hxx +0 -23
  247. package/deps/couchbase-cxx-client/couchbase/insert_options.hxx +0 -24
  248. package/deps/couchbase-cxx-client/couchbase/key_value_error_map_attribute.hxx +12 -0
  249. package/deps/couchbase-cxx-client/couchbase/key_value_status_code.hxx +1 -0
  250. package/deps/couchbase-cxx-client/couchbase/lookup_in_options.hxx +0 -24
  251. package/deps/couchbase-cxx-client/couchbase/management/analytics_dataset.hxx +48 -0
  252. package/deps/couchbase-cxx-client/couchbase/management/analytics_index.hxx +48 -0
  253. package/deps/couchbase-cxx-client/couchbase/management/analytics_link.hxx +239 -0
  254. package/deps/couchbase-cxx-client/couchbase/management/collection_spec.hxx +1 -1
  255. package/deps/couchbase-cxx-client/couchbase/management/query_index.hxx +3 -3
  256. package/deps/couchbase-cxx-client/couchbase/management/search_index.hxx +40 -0
  257. package/deps/couchbase-cxx-client/couchbase/manager_error_context.hxx +0 -1
  258. package/deps/couchbase-cxx-client/couchbase/mutate_in_options.hxx +0 -24
  259. package/deps/couchbase-cxx-client/couchbase/network_options.hxx +1 -1
  260. package/deps/couchbase-cxx-client/couchbase/pause_ingest_search_index_options.hxx +43 -0
  261. package/deps/couchbase-cxx-client/couchbase/phrase_query.hxx +19 -0
  262. package/deps/couchbase-cxx-client/couchbase/ping_options.hxx +93 -0
  263. package/deps/couchbase-cxx-client/couchbase/ping_result.hxx +118 -0
  264. package/deps/couchbase-cxx-client/couchbase/prepend_options.hxx +0 -24
  265. package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +99 -20
  266. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +0 -21
  267. package/deps/couchbase-cxx-client/couchbase/remove_options.hxx +0 -23
  268. package/deps/couchbase-cxx-client/couchbase/replace_link_analytics_options.hxx +63 -0
  269. package/deps/couchbase-cxx-client/couchbase/replace_options.hxx +0 -24
  270. package/deps/couchbase-cxx-client/couchbase/resume_ingest_search_index_options.hxx +43 -0
  271. package/deps/couchbase-cxx-client/couchbase/scope.hxx +37 -53
  272. package/deps/couchbase-cxx-client/couchbase/scope_search_index_manager.hxx +291 -0
  273. package/deps/couchbase-cxx-client/couchbase/search_facet_result.hxx +1 -7
  274. package/deps/couchbase-cxx-client/couchbase/search_geo_distance_units.hxx +26 -0
  275. package/deps/couchbase-cxx-client/couchbase/search_index_manager.hxx +292 -0
  276. package/deps/couchbase-cxx-client/couchbase/search_request.hxx +120 -0
  277. package/deps/couchbase-cxx-client/couchbase/search_row_location.hxx +10 -0
  278. package/deps/couchbase-cxx-client/couchbase/search_sort_geo_distance.hxx +84 -0
  279. package/deps/couchbase-cxx-client/couchbase/security_options.hxx +1 -1
  280. package/deps/couchbase-cxx-client/couchbase/service_type.hxx +58 -0
  281. package/deps/couchbase-cxx-client/couchbase/touch_options.hxx +0 -24
  282. package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +1 -1
  283. package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +10 -7
  284. package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +10 -10
  285. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +8 -58
  286. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +28 -70
  287. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +7 -2
  288. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +2 -1
  289. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +11 -38
  290. package/deps/couchbase-cxx-client/couchbase/unfreeze_plan_search_index_options.hxx +43 -0
  291. package/deps/couchbase-cxx-client/couchbase/unlock_options.hxx +0 -24
  292. package/deps/couchbase-cxx-client/couchbase/update_collection_options.hxx +32 -3
  293. package/deps/couchbase-cxx-client/couchbase/upsert_options.hxx +0 -24
  294. package/deps/couchbase-cxx-client/couchbase/upsert_search_index_options.hxx +41 -0
  295. package/deps/couchbase-cxx-client/couchbase/vector_query.hxx +99 -0
  296. package/deps/couchbase-cxx-client/couchbase/vector_search.hxx +85 -0
  297. package/deps/couchbase-cxx-client/couchbase/vector_search_options.hxx +76 -0
  298. package/dist/binding.d.ts +16 -9
  299. package/dist/binding.js +4 -1
  300. package/dist/bindingutilities.d.ts +6 -1
  301. package/dist/bindingutilities.js +17 -1
  302. package/dist/cluster.d.ts +12 -1
  303. package/dist/cluster.js +22 -0
  304. package/dist/collection.js +3 -3
  305. package/dist/couchbase.d.ts +1 -0
  306. package/dist/couchbase.js +1 -0
  307. package/dist/errors.d.ts +9 -0
  308. package/dist/errors.js +14 -2
  309. package/dist/searchexecutor.d.ts +2 -2
  310. package/dist/searchexecutor.js +19 -3
  311. package/dist/searchtypes.d.ts +46 -0
  312. package/dist/searchtypes.js +81 -1
  313. package/dist/transactions.d.ts +2 -0
  314. package/dist/transactions.js +2 -3
  315. package/dist/usermanager.js +1 -1
  316. package/dist/vectorsearch.d.ts +99 -0
  317. package/dist/vectorsearch.js +132 -0
  318. package/package.json +7 -7
  319. package/src/binding.cpp +1 -0
  320. package/src/connection.cpp +12 -9
  321. package/src/connection.hpp +3 -3
  322. package/src/connection_autogen.cpp +7 -5
  323. package/src/constants.cpp +14 -0
  324. package/src/instance.cpp +2 -2
  325. package/src/instance.hpp +1 -1
  326. package/src/jstocbpp_autogen.hpp +45 -45
  327. package/src/jstocbpp_basic.hpp +2 -0
  328. package/src/jstocbpp_errors.hpp +1 -0
  329. package/src/jstocbpp_transactions.hpp +6 -22
  330. package/src/mutationtoken.hpp +1 -0
  331. package/tools/gen-bindings-json.py +41 -16
  332. package/deps/couchbase-cxx-client/core/impl/append.cxx +0 -87
  333. package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +0 -157
  334. package/deps/couchbase-cxx-client/core/impl/create_bucket.cxx +0 -158
  335. package/deps/couchbase-cxx-client/core/impl/create_collection.cxx +0 -83
  336. package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +0 -232
  337. package/deps/couchbase-cxx-client/core/impl/create_scope.cxx +0 -69
  338. package/deps/couchbase-cxx-client/core/impl/decrement.cxx +0 -96
  339. package/deps/couchbase-cxx-client/core/impl/drop_bucket.cxx +0 -66
  340. package/deps/couchbase-cxx-client/core/impl/drop_collection.cxx +0 -76
  341. package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +0 -187
  342. package/deps/couchbase-cxx-client/core/impl/drop_scope.cxx +0 -68
  343. package/deps/couchbase-cxx-client/core/impl/exists.cxx +0 -47
  344. package/deps/couchbase-cxx-client/core/impl/flush_bucket.cxx +0 -66
  345. package/deps/couchbase-cxx-client/core/impl/get.cxx +0 -68
  346. package/deps/couchbase-cxx-client/core/impl/get_all_buckets.cxx +0 -178
  347. package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +0 -106
  348. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.cxx +0 -145
  349. package/deps/couchbase-cxx-client/core/impl/get_all_scopes.cxx +0 -94
  350. package/deps/couchbase-cxx-client/core/impl/get_and_lock.cxx +0 -49
  351. package/deps/couchbase-cxx-client/core/impl/get_and_touch.cxx +0 -49
  352. package/deps/couchbase-cxx-client/core/impl/get_any_replica.cxx +0 -134
  353. package/deps/couchbase-cxx-client/core/impl/get_bucket.cxx +0 -168
  354. package/deps/couchbase-cxx-client/core/impl/increment.cxx +0 -96
  355. package/deps/couchbase-cxx-client/core/impl/insert.cxx +0 -90
  356. package/deps/couchbase-cxx-client/core/impl/lookup_in.cxx +0 -69
  357. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.cxx +0 -178
  358. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.cxx +0 -169
  359. package/deps/couchbase-cxx-client/core/impl/mutate_in.cxx +0 -125
  360. package/deps/couchbase-cxx-client/core/impl/prepend.cxx +0 -87
  361. package/deps/couchbase-cxx-client/core/impl/remove.cxx +0 -86
  362. package/deps/couchbase-cxx-client/core/impl/replace.cxx +0 -102
  363. package/deps/couchbase-cxx-client/core/impl/touch.cxx +0 -49
  364. package/deps/couchbase-cxx-client/core/impl/unlock.cxx +0 -47
  365. package/deps/couchbase-cxx-client/core/impl/update_bucket.cxx +0 -133
  366. package/deps/couchbase-cxx-client/core/impl/update_collection.cxx +0 -83
  367. package/deps/couchbase-cxx-client/core/impl/upsert.cxx +0 -100
  368. package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +0 -196
  369. package/deps/couchbase-cxx-client/core/operations/mcbp_noop.hxx +0 -49
  370. /package/deps/couchbase-cxx-client/core/impl/{streaming_json_lexter_error_category.cxx → streaming_json_lexer_error_category.cxx} +0 -0
@@ -19,7 +19,12 @@
19
19
  #include <couchbase/transactions/transaction_query_options.hxx>
20
20
  #include <couchbase/transactions/transaction_query_result.hxx>
21
21
 
22
- namespace couchbase::transactions
22
+ namespace couchbase
23
+ {
24
+ class collection;
25
+ class scope;
26
+
27
+ namespace transactions
23
28
  {
24
29
  /**
25
30
  * The attempt_context is used for all synchronous transaction operations
@@ -108,10 +113,7 @@ class attempt_context
108
113
  * @return The result of the operation, with is an @ref transaction_op_error_context and a @ref transaction_query_result.
109
114
  */
110
115
  std::pair<transaction_op_error_context, transaction_query_result> query(const std::string& statement,
111
- const transaction_query_options& options = {})
112
- {
113
- return do_public_query(statement, options, {});
114
- }
116
+ const transaction_query_options& options = {});
115
117
 
116
118
  /**
117
119
  * Perform a scoped query.
@@ -123,10 +125,7 @@ class attempt_context
123
125
  */
124
126
  std::pair<transaction_op_error_context, transaction_query_result> query(const scope& scope,
125
127
  const std::string& statement,
126
- const transaction_query_options& opts = {})
127
- {
128
- return do_public_query(statement, opts, fmt::format("{}.{}", scope.bucket_name(), scope.name()));
129
- }
128
+ const transaction_query_options& opts = {});
130
129
 
131
130
  virtual ~attempt_context() = default;
132
131
 
@@ -143,4 +142,5 @@ class attempt_context
143
142
  const transaction_query_options& options,
144
143
  std::optional<std::string> query_context) = 0;
145
144
  };
146
- } // namespace couchbase::transactions
145
+ } // namespace transactions
146
+ } // namespace couchbase
@@ -15,12 +15,7 @@
15
15
  */
16
16
  #pragma once
17
17
 
18
- #include "couchbase/collection.hxx"
19
- #include "couchbase/scope.hxx"
20
-
21
- #include <fmt/format.h>
22
18
  #include <string>
23
- #include <utility>
24
19
 
25
20
  namespace couchbase::transactions
26
21
  {
@@ -28,44 +23,15 @@ namespace couchbase::transactions
28
23
  * @brief Offline, serializable representation of a bucket, scope, and collection
29
24
  */
30
25
  struct transaction_keyspace {
26
+ transaction_keyspace(std::string bucket_name, std::string scope_name, std::string collection_name);
31
27
 
32
- std::string bucket;
33
- std::string scope{ couchbase::scope::default_name };
34
- std::string collection{ couchbase::collection::default_name };
28
+ explicit transaction_keyspace(const std::string& bucket_name);
35
29
 
36
- transaction_keyspace(const transaction_keyspace&) = default;
37
- transaction_keyspace(transaction_keyspace&&) = default;
38
- transaction_keyspace& operator=(const transaction_keyspace& keyspace)
39
- {
40
- if (this != &keyspace) {
41
- bucket = keyspace.bucket;
42
- scope = keyspace.scope;
43
- collection = keyspace.collection;
44
- }
45
- return *this;
46
- }
47
- bool operator==(const transaction_keyspace& keyspace)
30
+ bool operator==(const transaction_keyspace& keyspace) const
48
31
  {
49
32
  return bucket == keyspace.bucket && scope == keyspace.scope && collection == keyspace.collection;
50
33
  }
51
34
 
52
- transaction_keyspace(std::string bucket_name, std::string scope_name, std::string collection_name)
53
- : bucket(std::move(bucket_name))
54
- , scope(std::move(scope_name))
55
- , collection(std::move(collection_name))
56
- {
57
- if (scope.empty()) {
58
- scope = couchbase::scope::default_name;
59
- }
60
- if (collection.empty()) {
61
- collection = couchbase::collection::default_name;
62
- }
63
- }
64
-
65
- explicit transaction_keyspace(const std::string& bucket_name)
66
- : transaction_keyspace{ bucket_name, couchbase::scope::default_name, couchbase::collection::default_name }
67
- {
68
- }
69
35
  /**
70
36
  * Check if a keyspace is valid.
71
37
  *
@@ -74,10 +40,7 @@ struct transaction_keyspace {
74
40
  *
75
41
  * @return true if valid.
76
42
  */
77
- bool valid()
78
- {
79
- return !bucket.empty() && !scope.empty() && !collection.empty();
80
- }
43
+ bool valid();
81
44
 
82
45
  /** @private */
83
46
  template<typename OStream>
@@ -90,22 +53,9 @@ struct transaction_keyspace {
90
53
  os << "}";
91
54
  return os;
92
55
  }
56
+
57
+ std::string bucket;
58
+ std::string scope;
59
+ std::string collection;
93
60
  };
94
61
  } // namespace couchbase::transactions
95
-
96
- /** @private */
97
- template<>
98
- struct fmt::formatter<couchbase::transactions::transaction_keyspace> {
99
- public:
100
- template<typename ParseContext>
101
- constexpr auto parse(ParseContext& ctx)
102
- {
103
- return ctx.begin();
104
- }
105
-
106
- template<typename FormatContext>
107
- auto format(const couchbase::transactions::transaction_keyspace& k, FormatContext& ctx) const
108
- {
109
- return format_to(ctx.out(), "transaction_keyspace:{{ bucket: {}, scope: {}, collection: {} }}", k.bucket, k.scope, k.collection);
110
- }
111
- };
@@ -16,13 +16,18 @@
16
16
 
17
17
  #pragma once
18
18
 
19
+ #include <couchbase/durability_level.hxx>
19
20
  #include <couchbase/query_scan_consistency.hxx>
20
21
  #include <couchbase/transactions/transactions_config.hxx>
21
22
 
22
23
  #include <chrono>
23
24
  #include <optional>
24
25
 
25
- namespace couchbase::transactions
26
+ namespace couchbase
27
+ {
28
+ class collection;
29
+
30
+ namespace transactions
26
31
  {
27
32
  /**
28
33
  * The transaction_options can be passed in to override some elements of the global @ref transactions_config.
@@ -40,11 +45,8 @@ class transaction_options
40
45
  * @param level Durability level for this transaction.
41
46
  * @return reference to this object, convenient for chaining operations.
42
47
  */
43
- transaction_options& durability_level(durability_level level)
44
- {
45
- durability_ = level;
46
- return *this;
47
- }
48
+ transaction_options& durability_level(durability_level level);
49
+
48
50
  /**
49
51
  * Get the durability if it has been set.
50
52
  *
@@ -52,10 +54,8 @@ class transaction_options
52
54
  *
53
55
  * @return durability if set.
54
56
  */
55
- std::optional<couchbase::durability_level> durability_level()
56
- {
57
- return durability_;
58
- }
57
+ [[nodiscard]] std::optional<couchbase::durability_level> durability_level() const;
58
+
59
59
  /**
60
60
  * Set the @ref query_scan_consistency for this transaction.
61
61
  *
@@ -64,11 +64,8 @@ class transaction_options
64
64
  * @param scan_consistency The desired @ref query_scan_consistency for this transaction.
65
65
  * @return reference to this object, convenient for chaining operations.
66
66
  */
67
- transaction_options& scan_consistency(query_scan_consistency scan_consistency)
68
- {
69
- scan_consistency_ = scan_consistency;
70
- return *this;
71
- }
67
+ transaction_options& scan_consistency(query_scan_consistency scan_consistency);
68
+
72
69
  /**
73
70
  * Get the scan_consistency if it has been set.
74
71
  *
@@ -76,55 +73,28 @@ class transaction_options
76
73
  *
77
74
  * @return The scan_consistency, if set.
78
75
  */
79
- std::optional<query_scan_consistency> scan_consistency()
80
- {
81
- return scan_consistency_;
82
- }
83
- /**
84
- * Set the timeout for key-value operations for this transaction.
85
- *
86
- * @param kv_timeout Desired key-value timeout.
87
- * @return reference to this object, convenient for chaining operations.
88
- */
89
- transaction_options& kv_timeout(std::chrono::milliseconds kv_timeout)
90
- {
91
- kv_timeout_ = kv_timeout;
92
- return *this;
93
- }
94
-
95
- /**
96
- * Get the key-value timeout if it has been set.
97
- *
98
- * @return The key-value timeout, if set.
99
- */
100
- std::optional<std::chrono::milliseconds> kv_timeout()
101
- {
102
- return kv_timeout_;
103
- }
76
+ [[nodiscard]] std::optional<query_scan_consistency> scan_consistency() const;
104
77
 
105
78
  /**
106
- * Set the expiration time for this transaction.
79
+ * Set the timeout for this transaction.
107
80
  *
108
- * @tparam T expiration time type, e.g. @ref std::chrono::milliseconds, or similar
109
- * @param expiration_time Desired expiration time.
81
+ * @tparam T timeout type, e.g. @ref std::chrono::milliseconds, or similar
82
+ * @param timeout Desired timeout
110
83
  * @return reference to this object, convenient for chaining operations.
111
84
  */
112
85
  template<typename T>
113
- transaction_options& expiration_time(T expiration_time)
86
+ transaction_options& timeout(T timeout)
114
87
  {
115
- expiration_time_ = std::chrono::duration_cast<std::chrono::nanoseconds>(expiration_time);
88
+ timeout_ = std::chrono::duration_cast<std::chrono::nanoseconds>(timeout);
116
89
  return *this;
117
90
  }
118
91
 
119
92
  /**
120
- * Get the expiration time, if set.
93
+ * Get the timeout, if set.
121
94
  *
122
- * @return the expiration time, if set.
95
+ * @return the timeout, if set.
123
96
  */
124
- std::optional<std::chrono::nanoseconds> expiration_time()
125
- {
126
- return expiration_time_;
127
- }
97
+ std::optional<std::chrono::nanoseconds> timeout();
128
98
 
129
99
  /**
130
100
  * Set the metadata collection to use for this transaction
@@ -136,11 +106,8 @@ class transaction_options
136
106
  * @param coll The desired collection to use.
137
107
  * @return reference to this object, convenient for chaining operations.
138
108
  */
139
- transaction_options& metadata_collection(const couchbase::collection& coll)
140
- {
141
- metadata_collection_.emplace(coll.bucket_name(), coll.scope_name(), coll.name());
142
- return *this;
143
- }
109
+ transaction_options& metadata_collection(const couchbase::collection& coll);
110
+
144
111
  /**
145
112
  * Set metadata collection to use for this transaction
146
113
  *
@@ -157,30 +124,21 @@ class transaction_options
157
124
  *
158
125
  * @return the metadata collection, as a @ref transaction_keyspace, if set.
159
126
  */
160
- std::optional<transaction_keyspace> metadata_collection()
161
- {
162
- return metadata_collection_;
163
- }
127
+ [[nodiscard]] std::optional<transaction_keyspace> metadata_collection() const;
164
128
 
165
129
  /** @private */
166
130
  transaction_options& test_factories(std::shared_ptr<core::transactions::attempt_context_testing_hooks> hooks,
167
- std::shared_ptr<core::transactions::cleanup_testing_hooks> cleanup_hooks)
168
- {
169
- attempt_context_hooks_ = hooks;
170
- cleanup_hooks_ = cleanup_hooks;
171
- return *this;
172
- }
131
+ std::shared_ptr<core::transactions::cleanup_testing_hooks> cleanup_hooks);
173
132
  /** @private */
174
133
  [[nodiscard]] transactions_config::built apply(const transactions_config::built& conf) const;
175
134
 
176
135
  private:
177
136
  std::optional<couchbase::durability_level> durability_;
178
137
  std::optional<couchbase::query_scan_consistency> scan_consistency_;
179
- std::optional<std::chrono::milliseconds> kv_timeout_;
180
- std::optional<std::chrono::nanoseconds> expiration_time_;
138
+ std::optional<std::chrono::nanoseconds> timeout_;
181
139
  std::optional<transaction_keyspace> metadata_collection_;
182
140
  std::shared_ptr<core::transactions::attempt_context_testing_hooks> attempt_context_hooks_;
183
141
  std::shared_ptr<core::transactions::cleanup_testing_hooks> cleanup_hooks_;
184
142
  };
185
-
186
- } // namespace couchbase::transactions
143
+ } // namespace transactions
144
+ } // namespace couchbase
@@ -15,8 +15,6 @@
15
15
  */
16
16
  #pragma once
17
17
 
18
- // TODO: remove this when moving the wrap_request call
19
- #include "core/operations/document_query.hxx"
20
18
  #include <couchbase/query_options.hxx>
21
19
 
22
20
  // NOTE: when query is in public api, we will hold a query_options struct instead, and
@@ -57,6 +55,7 @@ class transaction_query_options
57
55
  opts_.raw(key, value);
58
56
  return *this;
59
57
  }
58
+
60
59
  /**
61
60
  * Set ad_hoc.
62
61
  *
@@ -71,6 +70,7 @@ class transaction_query_options
71
70
  opts_.adhoc(value);
72
71
  return *this;
73
72
  }
73
+
74
74
  /**
75
75
  * Set the query_scan_consistency for this query.
76
76
  *
@@ -98,6 +98,7 @@ class transaction_query_options
98
98
  opts_.profile(mode);
99
99
  return *this;
100
100
  }
101
+
101
102
  /**
102
103
  * Set a client id for this query.
103
104
  *
@@ -139,6 +140,7 @@ class transaction_query_options
139
140
  opts_.readonly(readonly);
140
141
  return *this;
141
142
  }
143
+
142
144
  /**
143
145
  * Set the scan cap for this query.
144
146
  *
@@ -152,6 +154,7 @@ class transaction_query_options
152
154
  opts_.scan_cap(cap);
153
155
  return *this;
154
156
  }
157
+
155
158
  /**
156
159
  * Set pipeline_batch size for this query.
157
160
  *
@@ -195,6 +198,7 @@ class transaction_query_options
195
198
  opts_.positional_parameters(parameters...);
196
199
  return *this;
197
200
  }
201
+
198
202
  /**
199
203
  * Set named parameters for this query.
200
204
  *
@@ -210,6 +214,7 @@ class transaction_query_options
210
214
  opts_.named_parameters(parameters...);
211
215
  return *this;
212
216
  }
217
+
213
218
  /**
214
219
  * Set metrics for this query.
215
220
  *
@@ -15,10 +15,11 @@
15
15
  */
16
16
  #pragma once
17
17
 
18
+ #include <couchbase/transactions/transaction_keyspace.hxx>
19
+
18
20
  #include <chrono>
19
21
  #include <list>
20
22
 
21
- #include <couchbase/transactions/transaction_keyspace.hxx>
22
23
  namespace couchbase::transactions
23
24
  {
24
25
  /**
@@ -1,3 +1,4 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
1
2
  /*
2
3
  * Copyright 2021-Present Couchbase, Inc.
3
4
  *
@@ -15,6 +16,7 @@
15
16
  */
16
17
  #pragma once
17
18
 
19
+ #include <couchbase/durability_level.hxx>
18
20
  #include <couchbase/transactions/transaction_keyspace.hxx>
19
21
  #include <couchbase/transactions/transactions_cleanup_config.hxx>
20
22
  #include <couchbase/transactions/transactions_query_config.hxx>
@@ -77,55 +79,28 @@ class transactions_config
77
79
  }
78
80
 
79
81
  /**
80
- * @brief Set kv_timeout
81
- *
82
- * @see kv_timeout()
83
- * @param duration An std::chrono::duration representing the desired default kv operation timeout.
84
- * @return reference to this, so calls can be chained.
85
- */
86
- template<typename T>
87
- transactions_config& kv_timeout(T duration)
88
- {
89
- kv_timeout_ = std::chrono::duration_cast<std::chrono::milliseconds>(duration);
90
- return *this;
91
- }
92
-
93
- /**
94
- * @brief Get kv_timeout
95
- *
96
- * This is the default kv operation timeout used throughout the transactions. Note all the operations
97
- * have an options class which allows you to override this value for a particular operation, if desired.
98
- *
99
- * @return The default kv operation timeout.
100
- */
101
- [[nodiscard]] std::optional<std::chrono::milliseconds> kv_timeout() const
102
- {
103
- return kv_timeout_;
104
- }
105
-
106
- /**
107
- * @brief Get expiration time for transactions
82
+ * @brief Get the timeout for transactions
108
83
  *
109
84
  * Transactions can conflict (or other operations on those documents), and may retry.
110
85
  * This is the maximum time a transaction can take, including any retries. The transaction will throw
111
86
  * an @ref transaction_expired and rollback when this occurs.
112
87
  *
113
- * @return expiration time for transactions.
88
+ * @return timeout for transactions.
114
89
  */
115
- [[nodiscard]] std::chrono::nanoseconds expiration_time() const
90
+ [[nodiscard]] std::chrono::nanoseconds timeout() const
116
91
  {
117
- return expiration_time_;
92
+ return timeout_;
118
93
  }
119
94
  /**
120
- * @brief Set the expiration time for transactions.
95
+ * @brief Set the timeout for transactions.
121
96
  *
122
97
  * @param duration desired expiration for transactions.
123
98
  * @return reference to this, so calls can be chained.
124
99
  */
125
100
  template<typename T>
126
- transactions_config& expiration_time(T duration)
101
+ transactions_config& timeout(T duration)
127
102
  {
128
- expiration_time_ = std::chrono::duration_cast<std::chrono::nanoseconds>(duration);
103
+ timeout_ = std::chrono::duration_cast<std::chrono::nanoseconds>(duration);
129
104
  return *this;
130
105
  }
131
106
 
@@ -234,8 +209,7 @@ class transactions_config
234
209
  /** @private */
235
210
  struct built {
236
211
  couchbase::durability_level level;
237
- std::chrono::nanoseconds expiration_time;
238
- std::optional<std::chrono::milliseconds> kv_timeout;
212
+ std::chrono::nanoseconds timeout;
239
213
  std::shared_ptr<core::transactions::attempt_context_testing_hooks> attempt_context_hooks;
240
214
  std::shared_ptr<core::transactions::cleanup_testing_hooks> cleanup_hooks;
241
215
  std::optional<couchbase::transactions::transaction_keyspace> metadata_collection;
@@ -248,8 +222,7 @@ class transactions_config
248
222
 
249
223
  private:
250
224
  couchbase::durability_level level_{ couchbase::durability_level::majority };
251
- std::chrono::nanoseconds expiration_time_{ std::chrono::seconds(15) };
252
- std::optional<std::chrono::milliseconds> kv_timeout_;
225
+ std::chrono::nanoseconds timeout_{ std::chrono::seconds(15) };
253
226
  std::shared_ptr<core::transactions::attempt_context_testing_hooks> attempt_context_hooks_;
254
227
  std::shared_ptr<core::transactions::cleanup_testing_hooks> cleanup_hooks_;
255
228
  std::optional<couchbase::transactions::transaction_keyspace> metadata_collection_;
@@ -0,0 +1,43 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2020-Present Couchbase, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ #pragma once
19
+
20
+ #include <couchbase/common_options.hxx>
21
+
22
+ #include <functional>
23
+ #include <memory>
24
+ #include <optional>
25
+ #include <string>
26
+
27
+ namespace couchbase
28
+ {
29
+ struct unfreeze_plan_search_index_options : public common_options<unfreeze_plan_search_index_options> {
30
+ public:
31
+ struct built : public common_options<unfreeze_plan_search_index_options>::built {
32
+ };
33
+
34
+ [[nodiscard]] auto build() const -> built
35
+ {
36
+ return { build_common_options() };
37
+ }
38
+
39
+ private:
40
+ };
41
+
42
+ using unfreeze_plan_search_index_handler = std::function<void(couchbase::manager_error_context)>;
43
+ } // namespace couchbase
@@ -70,28 +70,4 @@ struct unlock_options : public common_options<unlock_options> {
70
70
  * @uncommitted
71
71
  */
72
72
  using unlock_handler = std::function<void(couchbase::key_value_error_context)>;
73
-
74
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
75
- namespace core
76
- {
77
- class cluster;
78
- namespace impl
79
- {
80
-
81
- /**
82
- * @since 1.0.0
83
- * @internal
84
- */
85
- void
86
- initiate_unlock_operation(std::shared_ptr<couchbase::core::cluster> core,
87
- std::string bucket_name,
88
- std::string scope_name,
89
- std::string collection_name,
90
- std::string document_key,
91
- couchbase::cas cas,
92
- couchbase::unlock_options::built options,
93
- couchbase::unlock_handler&& handler);
94
- #endif
95
- } // namespace impl
96
- } // namespace core
97
73
  } // namespace couchbase
@@ -17,26 +17,55 @@
17
17
 
18
18
  #pragma once
19
19
 
20
- #include <functional>
20
+ #include <couchbase/common_options.hxx>
21
+ #include <couchbase/manager_error_context.hxx>
22
+
23
+ #include <cstdint>
21
24
  #include <memory>
22
25
  #include <optional>
23
- #include <string>
24
26
 
25
27
  namespace couchbase
26
28
  {
27
29
  struct update_collection_options : public common_options<update_collection_options> {
28
30
  public:
31
+ /**
32
+ * Immutable value object representing consistent options.
33
+ *
34
+ * @since 1.0.0
35
+ * @internal
36
+ */
29
37
  struct built : public common_options<update_collection_options>::built {
30
38
  };
31
39
 
40
+ /**
41
+ * Validates the options and returns them as an immutable value.
42
+ *
43
+ * @return consistent options as an immutable value
44
+ *
45
+ * @exception std::system_error with code errc::common::invalid_argument if the options are not valid
46
+ *
47
+ * @since 1.0.0
48
+ * @internal
49
+ */
32
50
  [[nodiscard]] auto build() const -> built
33
51
  {
34
52
  return { build_common_options() };
35
53
  }
36
54
  };
37
55
 
56
+ /**
57
+ * The settings that should be updated for the collection
58
+ */
38
59
  struct update_collection_settings {
39
- std::optional<std::uint32_t> max_expiry{};
60
+ /**
61
+ * The maximum expiry, in seconds, for documents in this collection. Values greater than or equal to -1 are valid.
62
+ * Value of 0 sets max_expiry to the bucket-level setting and value of -1 to set it as no-expiry.
63
+ */
64
+ std::optional<std::int32_t> max_expiry{};
65
+
66
+ /**
67
+ * Whether history retention should be enabled.
68
+ */
40
69
  std::optional<bool> history{};
41
70
  };
42
71
 
@@ -131,28 +131,4 @@ struct upsert_options : public common_durability_options<upsert_options> {
131
131
  * @uncommitted
132
132
  */
133
133
  using upsert_handler = std::function<void(couchbase::key_value_error_context, mutation_result)>;
134
-
135
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
136
- namespace core
137
- {
138
- class cluster;
139
- namespace impl
140
- {
141
-
142
- /**
143
- * @since 1.0.0
144
- * @internal
145
- */
146
- void
147
- initiate_upsert_operation(std::shared_ptr<couchbase::core::cluster> core,
148
- std::string bucket_name,
149
- std::string scope_name,
150
- std::string collection_name,
151
- std::string document_key,
152
- couchbase::codec::encoded_value encoded,
153
- couchbase::upsert_options::built options,
154
- couchbase::upsert_handler&& handler);
155
- #endif
156
- } // namespace impl
157
- } // namespace core
158
134
  } // namespace couchbase