couchbase 4.2.8-dev.1 → 4.2.9

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 (317) 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 +397 -424
  5. package/deps/couchbase-cxx-client/core/agent_config.hxx +1 -1
  6. package/deps/couchbase-cxx-client/core/agent_group.cxx +0 -1
  7. package/deps/couchbase-cxx-client/core/agent_group.hxx +9 -0
  8. package/deps/couchbase-cxx-client/core/agent_group_config.hxx +1 -1
  9. package/deps/couchbase-cxx-client/core/bucket.cxx +22 -8
  10. package/deps/couchbase-cxx-client/core/bucket.hxx +3 -1
  11. package/deps/couchbase-cxx-client/core/cluster.cxx +1453 -108
  12. package/deps/couchbase-cxx-client/core/cluster.hxx +183 -473
  13. package/deps/couchbase-cxx-client/core/cluster_agent_config.hxx +1 -1
  14. package/deps/couchbase-cxx-client/core/cluster_options.cxx +12 -2
  15. package/deps/couchbase-cxx-client/core/cluster_options.hxx +9 -8
  16. package/deps/couchbase-cxx-client/core/config_profiles.cxx +2 -2
  17. package/deps/couchbase-cxx-client/core/config_profiles.hxx +1 -1
  18. package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +1 -2
  19. package/deps/couchbase-cxx-client/core/core_sdk_shim.hxx +3 -2
  20. package/deps/couchbase-cxx-client/core/diagnostics.hxx +0 -1
  21. package/deps/couchbase-cxx-client/core/dispatcher.cxx +2 -2
  22. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +38 -76
  23. package/deps/couchbase-cxx-client/core/impl/analytics.hxx +40 -0
  24. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +820 -0
  25. package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +403 -0
  26. package/deps/couchbase-cxx-client/core/impl/bucket.cxx +78 -0
  27. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +433 -0
  28. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +226 -44
  29. package/deps/couchbase-cxx-client/core/impl/collection.cxx +1384 -0
  30. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +306 -0
  31. package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +3 -1
  32. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +2 -0
  33. package/deps/couchbase-cxx-client/core/{operations/mcbp_noop.cxx → impl/doc_id_query.cxx} +19 -15
  34. package/deps/couchbase-cxx-client/core/impl/key_value_error_category.cxx +4 -2
  35. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.hxx +0 -10
  36. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.hxx +0 -10
  37. package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +24 -17
  38. package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -1
  39. package/deps/couchbase-cxx-client/core/impl/query.cxx +45 -68
  40. package/deps/couchbase-cxx-client/core/impl/query.hxx +34 -0
  41. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +628 -0
  42. package/deps/couchbase-cxx-client/core/impl/scope.cxx +172 -0
  43. package/deps/couchbase-cxx-client/core/impl/search.cxx +12 -61
  44. package/deps/couchbase-cxx-client/core/impl/search.hxx +37 -0
  45. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +469 -0
  46. package/deps/couchbase-cxx-client/core/impl/search_row_location.cxx +12 -0
  47. package/deps/couchbase-cxx-client/core/impl/search_sort_geo_distance.cxx +87 -0
  48. package/deps/couchbase-cxx-client/core/impl/with_legacy_durability.hxx +23 -25
  49. package/deps/couchbase-cxx-client/core/io/dns_config.cxx +28 -0
  50. package/deps/couchbase-cxx-client/core/io/dns_config.hxx +6 -25
  51. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +9 -1
  52. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +1 -1
  53. package/deps/couchbase-cxx-client/core/io/mcbp_message.hxx +3 -2
  54. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +51 -21
  55. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +2 -1
  56. package/deps/couchbase-cxx-client/core/logger/logger.hxx +4 -4
  57. package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +1 -1
  58. package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +1 -1
  59. package/deps/couchbase-cxx-client/core/mcbp/queue_callback.hxx +1 -1
  60. package/deps/couchbase-cxx-client/core/meta/features.hxx +28 -0
  61. package/deps/couchbase-cxx-client/core/operations/document_query.cxx +17 -1
  62. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -1
  63. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +2 -0
  64. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +2 -0
  65. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +2 -0
  66. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +2 -0
  67. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +2 -0
  68. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +2 -0
  69. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +2 -0
  70. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +2 -0
  71. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +2 -0
  72. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +2 -0
  73. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +1 -1
  74. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -0
  75. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +2 -0
  76. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +2 -0
  77. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +2 -0
  78. package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +3 -1
  79. package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +2 -0
  80. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +2 -0
  81. package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +2 -0
  82. package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +6 -5
  83. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +2 -0
  84. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +2 -0
  85. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +2 -0
  86. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +2 -0
  87. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +2 -0
  88. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +2 -0
  89. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +2 -0
  90. package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +2 -0
  91. package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +2 -0
  92. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.cxx +1 -1
  93. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +2 -2
  94. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +4 -1
  95. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +4 -1
  96. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +1 -1
  97. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +1 -1
  98. package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -0
  99. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +2 -0
  100. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +2 -0
  101. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.cxx +4 -4
  102. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +4 -4
  103. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +2 -0
  104. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +2 -0
  105. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +2 -0
  106. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +2 -0
  107. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +2 -0
  108. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +2 -0
  109. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +1 -1
  110. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +2 -0
  111. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +2 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +2 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -0
  114. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -0
  115. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +2 -0
  116. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -0
  117. package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
  118. package/deps/couchbase-cxx-client/core/operations_fwd.hxx +260 -0
  119. package/deps/couchbase-cxx-client/core/origin.cxx +146 -5
  120. package/deps/couchbase-cxx-client/core/origin.hxx +30 -140
  121. package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.hxx +3 -3
  122. package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +5 -0
  123. package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.hxx +4 -4
  124. package/deps/couchbase-cxx-client/core/protocol/hello_feature.hxx +6 -0
  125. package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +3 -0
  126. package/deps/couchbase-cxx-client/core/protocol/status.cxx +6 -0
  127. package/deps/couchbase-cxx-client/core/protocol/status.hxx +1 -0
  128. package/deps/couchbase-cxx-client/core/query_context.hxx +11 -7
  129. package/deps/couchbase-cxx-client/core/range_scan_orchestrator.cxx +1 -1
  130. package/deps/couchbase-cxx-client/core/topology/configuration.cxx +23 -0
  131. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +8 -12
  132. package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +3 -3
  133. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +2 -0
  134. package/deps/couchbase-cxx-client/core/topology/error_map.hxx +2 -2
  135. package/deps/couchbase-cxx-client/core/topology/error_map_json.hxx +4 -0
  136. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.cxx +58 -0
  137. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +5 -40
  138. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +30 -0
  139. package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +18 -18
  140. package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +36 -0
  141. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +39 -41
  142. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +2 -2
  143. package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +3 -1
  144. package/deps/couchbase-cxx-client/core/transactions/internal/atr_entry.hxx +2 -0
  145. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +32 -0
  146. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +4 -30
  147. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +41 -0
  148. package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +17 -15
  149. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +1 -1
  150. package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +4 -4
  151. package/deps/couchbase-cxx-client/core/transactions/internal/utils.hxx +1 -13
  152. package/deps/couchbase-cxx-client/core/transactions/result.hxx +0 -26
  153. package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +46 -0
  154. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +16 -14
  155. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +6 -6
  156. package/deps/couchbase-cxx-client/core/transactions/transaction_keyspace.cxx +48 -0
  157. package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +1 -0
  158. package/deps/couchbase-cxx-client/core/transactions/transaction_options.cxx +61 -4
  159. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +9 -8
  160. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +9 -16
  161. package/deps/couchbase-cxx-client/core/transactions/transactions_config.cxx +7 -6
  162. package/deps/couchbase-cxx-client/core/transactions.hxx +6 -5
  163. package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +4 -3
  164. package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +4 -4
  165. package/deps/couchbase-cxx-client/couchbase/allow_querying_search_index_options.hxx +44 -0
  166. package/deps/couchbase-cxx-client/couchbase/analytics_index_manager.hxx +463 -0
  167. package/deps/couchbase-cxx-client/couchbase/analyze_document_options.hxx +44 -0
  168. package/deps/couchbase-cxx-client/couchbase/append_options.hxx +0 -24
  169. package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +1 -1
  170. package/deps/couchbase-cxx-client/couchbase/binary_collection.hxx +19 -115
  171. package/deps/couchbase-cxx-client/couchbase/bucket.hxx +13 -30
  172. package/deps/couchbase-cxx-client/couchbase/bucket_manager.hxx +8 -7
  173. package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +0 -1
  174. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +41 -73
  175. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +1 -27
  176. package/deps/couchbase-cxx-client/couchbase/collection.hxx +176 -386
  177. package/deps/couchbase-cxx-client/couchbase/collection_manager.hxx +8 -9
  178. package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +21 -24
  179. package/deps/couchbase-cxx-client/couchbase/connect_link_analytics_options.hxx +116 -0
  180. package/deps/couchbase-cxx-client/couchbase/create_bucket_options.hxx +3 -3
  181. package/deps/couchbase-cxx-client/couchbase/create_collection_options.hxx +3 -2
  182. package/deps/couchbase-cxx-client/couchbase/create_dataset_analytics_options.hxx +120 -0
  183. package/deps/couchbase-cxx-client/couchbase/create_dataverse_analytics_options.hxx +85 -0
  184. package/deps/couchbase-cxx-client/couchbase/create_index_analytics_options.hxx +103 -0
  185. package/deps/couchbase-cxx-client/couchbase/create_link_analytics_options.hxx +63 -0
  186. package/deps/couchbase-cxx-client/couchbase/decrement_options.hxx +0 -23
  187. package/deps/couchbase-cxx-client/couchbase/disallow_querying_search_index_options.hxx +43 -0
  188. package/deps/couchbase-cxx-client/couchbase/disconnect_link_analytics_options.hxx +105 -0
  189. package/deps/couchbase-cxx-client/couchbase/drop_dataset_analytics_options.hxx +103 -0
  190. package/deps/couchbase-cxx-client/couchbase/drop_dataverse_analytics_options.hxx +84 -0
  191. package/deps/couchbase-cxx-client/couchbase/drop_index_analytics_options.hxx +103 -0
  192. package/deps/couchbase-cxx-client/couchbase/drop_link_analytics_options.hxx +63 -0
  193. package/deps/couchbase-cxx-client/couchbase/drop_search_index_options.hxx +43 -0
  194. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +22 -1
  195. package/deps/couchbase-cxx-client/couchbase/exists_options.hxx +0 -23
  196. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_error_map_attribute.hxx +6 -0
  197. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +3 -0
  198. package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +37 -0
  199. package/deps/couchbase-cxx-client/couchbase/freeze_plan_search_index_options.hxx +43 -0
  200. package/deps/couchbase-cxx-client/couchbase/get_all_datasets_analytics_options.hxx +66 -0
  201. package/deps/couchbase-cxx-client/couchbase/get_all_indexes_analytics_options.hxx +65 -0
  202. package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +1 -4
  203. package/deps/couchbase-cxx-client/couchbase/get_all_replicas_options.hxx +0 -23
  204. package/deps/couchbase-cxx-client/couchbase/get_all_search_indexes_options.hxx +45 -0
  205. package/deps/couchbase-cxx-client/couchbase/get_and_lock_options.hxx +0 -24
  206. package/deps/couchbase-cxx-client/couchbase/get_and_touch_options.hxx +0 -24
  207. package/deps/couchbase-cxx-client/couchbase/get_any_replica_options.hxx +0 -23
  208. package/deps/couchbase-cxx-client/couchbase/get_indexed_search_index_options.hxx +43 -0
  209. package/deps/couchbase-cxx-client/couchbase/get_links_analytics_options.hxx +121 -0
  210. package/deps/couchbase-cxx-client/couchbase/get_options.hxx +0 -23
  211. package/deps/couchbase-cxx-client/couchbase/get_pending_mutations_analytics_options.hxx +67 -0
  212. package/deps/couchbase-cxx-client/couchbase/get_search_index_options.hxx +44 -0
  213. package/deps/couchbase-cxx-client/couchbase/increment_options.hxx +0 -23
  214. package/deps/couchbase-cxx-client/couchbase/insert_options.hxx +0 -24
  215. package/deps/couchbase-cxx-client/couchbase/key_value_error_map_attribute.hxx +12 -0
  216. package/deps/couchbase-cxx-client/couchbase/key_value_status_code.hxx +1 -0
  217. package/deps/couchbase-cxx-client/couchbase/lookup_in_options.hxx +0 -24
  218. package/deps/couchbase-cxx-client/couchbase/management/analytics_dataset.hxx +48 -0
  219. package/deps/couchbase-cxx-client/couchbase/management/analytics_index.hxx +48 -0
  220. package/deps/couchbase-cxx-client/couchbase/management/analytics_link.hxx +239 -0
  221. package/deps/couchbase-cxx-client/couchbase/management/query_index.hxx +3 -3
  222. package/deps/couchbase-cxx-client/couchbase/management/search_index.hxx +40 -0
  223. package/deps/couchbase-cxx-client/couchbase/manager_error_context.hxx +0 -1
  224. package/deps/couchbase-cxx-client/couchbase/mutate_in_options.hxx +0 -24
  225. package/deps/couchbase-cxx-client/couchbase/network_options.hxx +1 -1
  226. package/deps/couchbase-cxx-client/couchbase/pause_ingest_search_index_options.hxx +43 -0
  227. package/deps/couchbase-cxx-client/couchbase/phrase_query.hxx +19 -0
  228. package/deps/couchbase-cxx-client/couchbase/prepend_options.hxx +0 -24
  229. package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +99 -20
  230. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +0 -21
  231. package/deps/couchbase-cxx-client/couchbase/remove_options.hxx +0 -23
  232. package/deps/couchbase-cxx-client/couchbase/replace_link_analytics_options.hxx +63 -0
  233. package/deps/couchbase-cxx-client/couchbase/replace_options.hxx +0 -24
  234. package/deps/couchbase-cxx-client/couchbase/resume_ingest_search_index_options.hxx +43 -0
  235. package/deps/couchbase-cxx-client/couchbase/scope.hxx +13 -45
  236. package/deps/couchbase-cxx-client/couchbase/search_facet_result.hxx +1 -7
  237. package/deps/couchbase-cxx-client/couchbase/search_geo_distance_units.hxx +26 -0
  238. package/deps/couchbase-cxx-client/couchbase/search_index_manager.hxx +292 -0
  239. package/deps/couchbase-cxx-client/couchbase/search_row_location.hxx +10 -0
  240. package/deps/couchbase-cxx-client/couchbase/search_sort_geo_distance.hxx +84 -0
  241. package/deps/couchbase-cxx-client/couchbase/security_options.hxx +1 -1
  242. package/deps/couchbase-cxx-client/couchbase/touch_options.hxx +0 -24
  243. package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +1 -1
  244. package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +10 -7
  245. package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +10 -10
  246. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +8 -58
  247. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +28 -70
  248. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +7 -2
  249. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +2 -1
  250. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +11 -38
  251. package/deps/couchbase-cxx-client/couchbase/unfreeze_plan_search_index_options.hxx +43 -0
  252. package/deps/couchbase-cxx-client/couchbase/unlock_options.hxx +0 -24
  253. package/deps/couchbase-cxx-client/couchbase/upsert_options.hxx +0 -24
  254. package/deps/couchbase-cxx-client/couchbase/upsert_search_index_options.hxx +41 -0
  255. package/dist/binding.d.ts +7 -9
  256. package/dist/bindingutilities.js +2 -0
  257. package/dist/collection.js +3 -3
  258. package/dist/errors.d.ts +9 -0
  259. package/dist/errors.js +14 -2
  260. package/dist/transactions.d.ts +2 -0
  261. package/dist/transactions.js +2 -3
  262. package/dist/usermanager.js +1 -1
  263. package/package.json +7 -7
  264. package/src/binding.cpp +1 -0
  265. package/src/connection.cpp +12 -9
  266. package/src/connection.hpp +3 -3
  267. package/src/connection_autogen.cpp +7 -5
  268. package/src/constants.cpp +3 -0
  269. package/src/instance.cpp +2 -2
  270. package/src/instance.hpp +1 -1
  271. package/src/jstocbpp_autogen.hpp +21 -38
  272. package/src/jstocbpp_basic.hpp +2 -0
  273. package/src/jstocbpp_errors.hpp +1 -0
  274. package/src/jstocbpp_transactions.hpp +6 -22
  275. package/src/mutationtoken.hpp +1 -0
  276. package/tools/gen-bindings-json.py +39 -16
  277. package/deps/couchbase-cxx-cache/spdlog/66ab2619a0014319471759c03e2de1af6bda14de/spdlog/example/CMakeLists.txt +0 -23
  278. package/deps/couchbase-cxx-cache/spdlog/66ab2619a0014319471759c03e2de1af6bda14de/spdlog/example/example.cpp +0 -398
  279. package/deps/couchbase-cxx-client/core/impl/append.cxx +0 -87
  280. package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +0 -157
  281. package/deps/couchbase-cxx-client/core/impl/create_bucket.cxx +0 -158
  282. package/deps/couchbase-cxx-client/core/impl/create_collection.cxx +0 -83
  283. package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +0 -232
  284. package/deps/couchbase-cxx-client/core/impl/create_scope.cxx +0 -69
  285. package/deps/couchbase-cxx-client/core/impl/decrement.cxx +0 -96
  286. package/deps/couchbase-cxx-client/core/impl/drop_bucket.cxx +0 -66
  287. package/deps/couchbase-cxx-client/core/impl/drop_collection.cxx +0 -76
  288. package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +0 -187
  289. package/deps/couchbase-cxx-client/core/impl/drop_scope.cxx +0 -68
  290. package/deps/couchbase-cxx-client/core/impl/exists.cxx +0 -47
  291. package/deps/couchbase-cxx-client/core/impl/flush_bucket.cxx +0 -66
  292. package/deps/couchbase-cxx-client/core/impl/get.cxx +0 -68
  293. package/deps/couchbase-cxx-client/core/impl/get_all_buckets.cxx +0 -178
  294. package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +0 -106
  295. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.cxx +0 -145
  296. package/deps/couchbase-cxx-client/core/impl/get_all_scopes.cxx +0 -94
  297. package/deps/couchbase-cxx-client/core/impl/get_and_lock.cxx +0 -49
  298. package/deps/couchbase-cxx-client/core/impl/get_and_touch.cxx +0 -49
  299. package/deps/couchbase-cxx-client/core/impl/get_any_replica.cxx +0 -134
  300. package/deps/couchbase-cxx-client/core/impl/get_bucket.cxx +0 -168
  301. package/deps/couchbase-cxx-client/core/impl/increment.cxx +0 -96
  302. package/deps/couchbase-cxx-client/core/impl/insert.cxx +0 -90
  303. package/deps/couchbase-cxx-client/core/impl/lookup_in.cxx +0 -69
  304. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.cxx +0 -178
  305. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.cxx +0 -169
  306. package/deps/couchbase-cxx-client/core/impl/mutate_in.cxx +0 -125
  307. package/deps/couchbase-cxx-client/core/impl/prepend.cxx +0 -87
  308. package/deps/couchbase-cxx-client/core/impl/remove.cxx +0 -86
  309. package/deps/couchbase-cxx-client/core/impl/replace.cxx +0 -102
  310. package/deps/couchbase-cxx-client/core/impl/touch.cxx +0 -49
  311. package/deps/couchbase-cxx-client/core/impl/unlock.cxx +0 -47
  312. package/deps/couchbase-cxx-client/core/impl/update_bucket.cxx +0 -133
  313. package/deps/couchbase-cxx-client/core/impl/update_collection.cxx +0 -83
  314. package/deps/couchbase-cxx-client/core/impl/upsert.cxx +0 -100
  315. package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +0 -196
  316. package/deps/couchbase-cxx-client/core/operations/mcbp_noop.hxx +0 -49
  317. /package/deps/couchbase-cxx-client/core/impl/{streaming_json_lexter_error_category.cxx → streaming_json_lexer_error_category.cxx} +0 -0
@@ -0,0 +1,292 @@
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/allow_querying_search_index_options.hxx>
21
+ #include <couchbase/analyze_document_options.hxx>
22
+ #include <couchbase/disallow_querying_search_index_options.hxx>
23
+ #include <couchbase/drop_search_index_options.hxx>
24
+ #include <couchbase/freeze_plan_search_index_options.hxx>
25
+ #include <couchbase/get_all_search_indexes_options.hxx>
26
+ #include <couchbase/get_indexed_search_index_options.hxx>
27
+ #include <couchbase/get_search_index_options.hxx>
28
+ #include <couchbase/pause_ingest_search_index_options.hxx>
29
+ #include <couchbase/resume_ingest_search_index_options.hxx>
30
+ #include <couchbase/unfreeze_plan_search_index_options.hxx>
31
+ #include <couchbase/upsert_search_index_options.hxx>
32
+
33
+ #include <future>
34
+ #include <memory>
35
+
36
+ #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
37
+ namespace couchbase
38
+ {
39
+ namespace core
40
+ {
41
+ class cluster;
42
+ } // namespace core
43
+ class search_index_manager_impl;
44
+ } // namespace couchbase
45
+ #endif
46
+
47
+ namespace couchbase
48
+ {
49
+ class cluster;
50
+
51
+ class search_index_manager
52
+ {
53
+ public:
54
+ /**
55
+ * Fetches an index from the server if it exists
56
+ *
57
+ * @param index_name the name of the index
58
+ * @param options optional parameters
59
+ * @param handler handler that implements @ref get_search_index_handler
60
+ *
61
+ * @since 1.0.0
62
+ * @committed
63
+ */
64
+ void get_index(std::string index_name, const get_search_index_options& options, get_search_index_handler&& handler) const;
65
+
66
+ [[nodiscard]] auto get_index(std::string index_name, const get_search_index_options& options = {}) const
67
+ -> std::future<std::pair<manager_error_context, management::search::index>>;
68
+
69
+ /**
70
+ * Fetches all indexes from the server
71
+ *
72
+ * @param options optional parameters
73
+ * @param handler handler that implements @ref get_all_search_indexes_handler
74
+ *
75
+ * @since 1.0.0
76
+ * @committed
77
+ */
78
+ void get_all_indexes(const get_all_search_indexes_options& options, get_all_search_indexes_handler&& handler) const;
79
+
80
+ [[nodiscard]] auto get_all_indexes(const get_all_search_indexes_options& options = {}) const
81
+ -> std::future<std::pair<manager_error_context, std::vector<management::search::index>>>;
82
+
83
+ /**
84
+ * Creates, or updates an index
85
+ *
86
+ * @param search_index the index definition including name and settings
87
+ * @param options optional parameters
88
+ * @param handler handler that implements @ref upsert_search_index_handler
89
+ *
90
+ * @since 1.0.0
91
+ * @committed
92
+ */
93
+ void upsert_index(const management::search::index& search_index,
94
+ const upsert_search_index_options& options,
95
+ upsert_search_index_handler&& handler) const;
96
+
97
+ [[nodiscard]] auto upsert_index(const management::search::index& search_index, const upsert_search_index_options& options = {}) const
98
+ -> std::future<manager_error_context>;
99
+
100
+ /**
101
+ * Drops an index
102
+ *
103
+ * @param index_name the name of the search index
104
+ * @param options optional parameters
105
+ * @param handler handler that implements @ref drop_search_index_handler
106
+ *
107
+ * @since 1.0.0
108
+ * @committed
109
+ */
110
+ void drop_index(std::string index_name, const drop_search_index_options& options, drop_search_index_handler&& handler) const;
111
+
112
+ [[nodiscard]] auto drop_index(std::string index_name, const drop_search_index_options& options = {}) const
113
+ -> std::future<manager_error_context>;
114
+
115
+ /**
116
+ * Retrieves the number of documents that have been indexed for an index
117
+ *
118
+ * @param index_name the name of the search index
119
+ * @param options optional parameters
120
+ * @param handler handler that implements @ref get_indexed_search_index_handler
121
+ *
122
+ * @since 1.0.0
123
+ * @committed
124
+ */
125
+ void get_indexed_documents_count(std::string index_name,
126
+ const get_indexed_search_index_options& options,
127
+ get_indexed_search_index_handler&& handler) const;
128
+
129
+ [[nodiscard]] auto get_indexed_documents_count(std::string index_name, const get_indexed_search_index_options& options = {}) const
130
+ -> std::future<std::pair<manager_error_context, std::uint64_t>>;
131
+
132
+ /**
133
+ * Pauses updates and maintenance for an index.
134
+ *
135
+ * @param index_name the name of the search index
136
+ * @param options optional parameters
137
+ * @param handler handler that implements @ref pause_ingest_search_index_handler
138
+ *
139
+ * @since 1.0.0
140
+ * @committed
141
+ */
142
+ void pause_ingest(std::string index_name,
143
+ const pause_ingest_search_index_options& options,
144
+ pause_ingest_search_index_handler&& handler) const;
145
+
146
+ [[nodiscard]] auto pause_ingest(std::string index_name, const pause_ingest_search_index_options& options = {}) const
147
+ -> std::future<manager_error_context>;
148
+
149
+ /**
150
+ * Resumes updates and maintenance for an index.
151
+ *
152
+ * @param index_name the name of the search index
153
+ * @param options optional parameters
154
+ * @param handler handler that implements @ref resume_ingest_search_index_handler
155
+ *
156
+ * @since 1.0.0
157
+ * @committed
158
+ */
159
+ void resume_ingest(std::string index_name,
160
+ const resume_ingest_search_index_options& options,
161
+ resume_ingest_search_index_handler&& handler) const;
162
+
163
+ [[nodiscard]] auto resume_ingest(std::string index_name, const resume_ingest_search_index_options& options = {}) const
164
+ -> std::future<manager_error_context>;
165
+
166
+ /**
167
+ * Allows querying against an index
168
+ *
169
+ * @param index_name the name of the search index
170
+ * @param options optional parameters
171
+ * @param handler handler that implements @ref allow_querying_search_index_handler
172
+ *
173
+ * @since 1.0.0
174
+ * @committed
175
+ */
176
+ void allow_querying(std::string index_name,
177
+ const allow_querying_search_index_options& options,
178
+ allow_querying_search_index_handler&& handler) const;
179
+
180
+ [[nodiscard]] auto allow_querying(std::string index_name, const allow_querying_search_index_options& options = {}) const
181
+ -> std::future<manager_error_context>;
182
+
183
+ /**
184
+ * Disallows querying against an index
185
+ *
186
+ * @param index_name the name of the search index
187
+ * @param options optional parameters
188
+ * @param handler handler that implements @ref disallow_querying_search_index_handler
189
+ *
190
+ * @since 1.0.0
191
+ * @committed
192
+ */
193
+ void disallow_querying(std::string index_name,
194
+ const disallow_querying_search_index_options& options,
195
+ disallow_querying_search_index_handler&& handler) const;
196
+
197
+ [[nodiscard]] auto disallow_querying(std::string index_name, const disallow_querying_search_index_options& options = {}) const
198
+ -> std::future<manager_error_context>;
199
+
200
+ /**
201
+ * Freeze the assignment of index partitions to nodes.
202
+ *
203
+ * @param index_name the name of the search index
204
+ * @param options optional parameters
205
+ * @param handler handler that implements @ref freeze_plan_search_index_handler
206
+ *
207
+ * @since 1.0.0
208
+ * @committed
209
+ */
210
+ void freeze_plan(std::string index_name,
211
+ const freeze_plan_search_index_options& options,
212
+ freeze_plan_search_index_handler&& handler) const;
213
+
214
+ [[nodiscard]] auto freeze_plan(std::string index_name, const freeze_plan_search_index_options& options = {}) const
215
+ -> std::future<manager_error_context>;
216
+
217
+ /**
218
+ * Unfreeze the assignment of index partitions to nodes.
219
+ *
220
+ * @param index_name the name of the search index
221
+ * @param options optional parameters
222
+ * @param handler handler that implements @ref unfreeze_plan_search_index_handler
223
+ *
224
+ * @since 1.0.0
225
+ * @committed
226
+ */
227
+ void unfreeze_plan(std::string index_name,
228
+ const unfreeze_plan_search_index_options& options,
229
+ unfreeze_plan_search_index_handler&& handler) const;
230
+
231
+ [[nodiscard]] auto unfreeze_plan(std::string index_name, const unfreeze_plan_search_index_options& options = {}) const
232
+ -> std::future<manager_error_context>;
233
+
234
+ /**
235
+ * Allows to see how a document is analyzed against a specific index.
236
+ *
237
+ * @param index_name the name of the search index
238
+ * @param document the document to be analyzed
239
+ * @param options optional parameters
240
+ * @param handler handler that implements @ref analyze_document_handler
241
+ *
242
+ * @since 1.0.0
243
+ * @committed
244
+ */
245
+ template<typename Document>
246
+ void analyze_document(std::string index_name,
247
+ Document document,
248
+ const analyze_document_options& options,
249
+ analyze_document_handler&& handler) const
250
+ {
251
+ auto encoded = couchbase::codec::default_json_transcoder::encode(document); // Encode as JSON and convert to string
252
+ auto decoded = std::string{ reinterpret_cast<const char*>(encoded.data.data()), encoded.data.size() };
253
+ return analyze_document(std::move(index_name), decoded, options, std::move(handler));
254
+ }
255
+
256
+ template<typename Document>
257
+ [[nodiscard]] auto analyze_document(std::string index_name, Document document, const analyze_document_options& options = {}) const
258
+ -> std::future<std::pair<manager_error_context, std::vector<std::string>>>
259
+ {
260
+ auto encoded = couchbase::codec::default_json_transcoder::encode(document); // Encode as JSON and convert to string
261
+ auto decoded = std::string{ reinterpret_cast<const char*>(encoded.data.data()), encoded.data.size() };
262
+
263
+ return analyze_document(std::move(index_name), decoded, options);
264
+ }
265
+
266
+ /**
267
+ * Allows to see how a document is analyzed against a specific index.
268
+ *
269
+ * @param index_name the name of the search index
270
+ * @param document the document to be analyzed encoded in JSON
271
+ * @param options optional parameters
272
+ * @param handler handler that implements @ref analyze_document_handler
273
+ *
274
+ * @since 1.0.0
275
+ * @committed
276
+ */
277
+ void analyze_document(std::string index_name,
278
+ std::string document,
279
+ const analyze_document_options& options,
280
+ analyze_document_handler&& handler) const;
281
+
282
+ [[nodiscard]] auto analyze_document(std::string index_name, std::string document, const analyze_document_options& options) const
283
+ -> std::future<std::pair<manager_error_context, std::vector<std::string>>>;
284
+
285
+ private:
286
+ friend class cluster;
287
+
288
+ explicit search_index_manager(core::cluster core);
289
+
290
+ std::shared_ptr<search_index_manager_impl> impl_;
291
+ };
292
+ } // namespace couchbase
@@ -41,6 +41,16 @@ class search_row_location
41
41
  */
42
42
  explicit search_row_location(internal_search_row_location location);
43
43
 
44
+ search_row_location();
45
+
46
+ ~search_row_location();
47
+
48
+ search_row_location(const search_row_location&) = delete;
49
+ search_row_location& operator=(const search_row_location&) = delete;
50
+
51
+ search_row_location(search_row_location&&) noexcept;
52
+ search_row_location& operator=(search_row_location&&) noexcept;
53
+
44
54
  [[nodiscard]] auto field() const -> const std::string&;
45
55
  [[nodiscard]] auto term() const -> const std::string&;
46
56
  [[nodiscard]] auto position() const -> const std::uint64_t&;
@@ -0,0 +1,84 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2023-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/geo_point.hxx>
21
+ #include <couchbase/search_geo_distance_units.hxx>
22
+ #include <couchbase/search_sort.hxx>
23
+
24
+ #include <string>
25
+
26
+ namespace couchbase
27
+ {
28
+ /**
29
+ * Sorts by location in the hits
30
+ *
31
+ * @see https://docs.couchbase.com/server/current/fts/fts-search-request.html#sorting-with-objects
32
+ *
33
+ * @since 1.0.0
34
+ */
35
+ class search_sort_geo_distance : public search_sort
36
+ {
37
+ public:
38
+ search_sort_geo_distance(geo_point location, std::string field)
39
+ : location_{ location }
40
+ , field_{ std::move(field) }
41
+ {
42
+ }
43
+
44
+ search_sort_geo_distance(double latitude, double longitude, std::string field)
45
+ : location_{ geo_point{ latitude, longitude } }
46
+ , field_{ std::move(field) }
47
+ {
48
+ }
49
+
50
+ /**
51
+ * Set the sorting direction.
52
+ *
53
+ * @param desc `true` for descending order, `false` for ascending
54
+ * @return pointer to this
55
+ *
56
+ * @since 1.0.0
57
+ * @committed
58
+ */
59
+ auto descending(bool desc) -> search_sort_geo_distance&;
60
+
61
+ /**
62
+ * Specifies the unit used for sorting
63
+ *
64
+ * @param unit the unit used
65
+ *
66
+ * @since 1.0.0
67
+ * @committed
68
+ */
69
+ auto unit(search_geo_distance_units unit) -> search_sort_geo_distance&;
70
+
71
+ /**
72
+ * @return encoded representation of the search facet.
73
+ *
74
+ * @since 1.0.0
75
+ * @internal
76
+ */
77
+ [[nodiscard]] auto encode() const -> encoded_search_sort override;
78
+
79
+ private:
80
+ geo_point location_;
81
+ std::string field_;
82
+ std::optional<search_geo_distance_units> unit_;
83
+ };
84
+ } // namespace couchbase
@@ -17,7 +17,7 @@
17
17
 
18
18
  #pragma once
19
19
 
20
- #include "tls_verify_mode.hxx"
20
+ #include <couchbase/tls_verify_mode.hxx>
21
21
 
22
22
  #include <optional>
23
23
  #include <string>
@@ -67,28 +67,4 @@ struct touch_options : public common_options<touch_options> {
67
67
  * @uncommitted
68
68
  */
69
69
  using touch_handler = std::function<void(couchbase::key_value_error_context, result)>;
70
-
71
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
72
- namespace core
73
- {
74
- class cluster;
75
- namespace impl
76
- {
77
-
78
- /**
79
- * @since 1.0.0
80
- * @internal
81
- */
82
- void
83
- initiate_touch_operation(std::shared_ptr<couchbase::core::cluster> core,
84
- std::string bucket_name,
85
- std::string scope_name,
86
- std::string collection_name,
87
- std::string document_key,
88
- std::uint32_t expiry,
89
- couchbase::touch_options::built options,
90
- couchbase::touch_handler&& handler);
91
- #endif
92
- } // namespace impl
93
- } // namespace core
94
70
  } // namespace couchbase
@@ -17,7 +17,7 @@
17
17
 
18
18
  #pragma once
19
19
 
20
- #include "request_span.hxx"
20
+ #include <couchbase/tracing/request_span.hxx>
21
21
 
22
22
  #include <memory>
23
23
  #include <string>
@@ -15,12 +15,16 @@
15
15
  */
16
16
  #pragma once
17
17
 
18
- #include <couchbase/scope.hxx>
19
18
  #include <couchbase/transactions/transaction_get_result.hxx>
20
19
  #include <couchbase/transactions/transaction_query_options.hxx>
21
20
  #include <couchbase/transactions/transaction_query_result.hxx>
22
21
 
23
- namespace couchbase::transactions
22
+ namespace couchbase
23
+ {
24
+ class collection;
25
+ class scope;
26
+
27
+ namespace transactions
24
28
  {
25
29
  using async_result_handler = std::function<void(transaction_op_error_context, transaction_get_result)>;
26
30
  using async_query_handler = std::function<void(transaction_op_error_context, transaction_query_result)>;
@@ -111,10 +115,8 @@ class async_attempt_context
111
115
  * @param opts Options for the query
112
116
  * @param handler Handler which implements @ref async_query_handler.
113
117
  */
114
- void query(const scope& scope, std::string statement, transaction_query_options opts, async_query_handler&& handler)
115
- {
116
- return query(std::move(statement), std::move(opts), fmt::format("{}.{}", scope.bucket_name(), scope.name()), std::move(handler));
117
- }
118
+ void query(const scope& scope, std::string statement, transaction_query_options opts, async_query_handler&& handler);
119
+
118
120
  /**
119
121
  * Perform a query.
120
122
  *
@@ -154,4 +156,5 @@ class async_attempt_context
154
156
  std::optional<std::string> query_context,
155
157
  async_query_handler&&) = 0;
156
158
  };
157
- } // namespace couchbase::transactions
159
+ } // namespace transactions
160
+ } // namespace couchbase
@@ -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
- };