couchbase 4.4.6 → 4.5.1

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 (143) hide show
  1. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +79 -165
  2. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
  3. package/deps/couchbase-cxx-client/CMakeLists.txt +14 -3
  4. package/deps/couchbase-cxx-client/README.md +2 -2
  5. package/deps/couchbase-cxx-client/cmake/Profiler.cmake +15 -0
  6. package/deps/couchbase-cxx-client/core/app_telemetry_address.cxx +55 -0
  7. package/deps/couchbase-cxx-client/core/app_telemetry_address.hxx +39 -0
  8. package/deps/couchbase-cxx-client/core/app_telemetry_meter.cxx +791 -0
  9. package/deps/couchbase-cxx-client/core/app_telemetry_meter.hxx +200 -0
  10. package/deps/couchbase-cxx-client/core/app_telemetry_reporter.cxx +895 -0
  11. package/deps/couchbase-cxx-client/core/app_telemetry_reporter.hxx +59 -0
  12. package/deps/couchbase-cxx-client/core/bucket.cxx +77 -35
  13. package/deps/couchbase-cxx-client/core/bucket.hxx +17 -10
  14. package/deps/couchbase-cxx-client/core/cluster.cxx +56 -17
  15. package/deps/couchbase-cxx-client/core/cluster_credentials.cxx +27 -0
  16. package/deps/couchbase-cxx-client/core/cluster_credentials.hxx +36 -0
  17. package/deps/couchbase-cxx-client/core/cluster_options.hxx +13 -0
  18. package/deps/couchbase-cxx-client/core/collections_component.cxx +7 -5
  19. package/deps/couchbase-cxx-client/core/http_component.cxx +6 -0
  20. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +2 -0
  21. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +10 -0
  22. package/deps/couchbase-cxx-client/core/impl/collection.cxx +2 -0
  23. package/deps/couchbase-cxx-client/core/impl/error.cxx +22 -6
  24. package/deps/couchbase-cxx-client/core/impl/error.hxx +1 -1
  25. package/deps/couchbase-cxx-client/core/impl/logger.cxx +51 -0
  26. package/deps/couchbase-cxx-client/core/impl/replica_utils.cxx +1 -1
  27. package/deps/couchbase-cxx-client/core/impl/transaction_get_multi_replicas_from_preferred_server_group_spec.cxx +32 -0
  28. package/deps/couchbase-cxx-client/core/impl/transaction_get_multi_spec.cxx +30 -0
  29. package/deps/couchbase-cxx-client/core/impl/transaction_op_error_category.cxx +2 -0
  30. package/deps/couchbase-cxx-client/core/io/config_tracker.cxx +6 -6
  31. package/deps/couchbase-cxx-client/core/io/http_command.hxx +35 -11
  32. package/deps/couchbase-cxx-client/core/io/http_session.cxx +10 -0
  33. package/deps/couchbase-cxx-client/core/io/http_session.hxx +4 -0
  34. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +87 -35
  35. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +41 -2
  36. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +52 -19
  37. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +3 -0
  38. package/deps/couchbase-cxx-client/core/logger/logger.cxx +46 -0
  39. package/deps/couchbase-cxx-client/core/logger/logger.hxx +41 -1
  40. package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +1 -0
  41. package/deps/couchbase-cxx-client/core/management/bucket_settings_json.hxx +4 -0
  42. package/deps/couchbase-cxx-client/core/meta/features.hxx +32 -0
  43. package/deps/couchbase-cxx-client/core/operations/document_analytics.cxx +9 -9
  44. package/deps/couchbase-cxx-client/core/operations/document_get_all_replicas.hxx +10 -2
  45. package/deps/couchbase-cxx-client/core/operations/document_lookup_in.cxx +4 -0
  46. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_all_replicas.hxx +14 -2
  47. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_any_replica.hxx +4 -0
  48. package/deps/couchbase-cxx-client/core/operations/document_mutate_in.cxx +4 -0
  49. package/deps/couchbase-cxx-client/core/operations/document_mutate_in.hxx +1 -0
  50. package/deps/couchbase-cxx-client/core/operations/document_query.cxx +12 -10
  51. package/deps/couchbase-cxx-client/core/operations/http_noop.cxx +1 -0
  52. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +3 -0
  53. package/deps/couchbase-cxx-client/core/operations/management/bucket_update.cxx +3 -0
  54. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +3 -2
  55. package/deps/couchbase-cxx-client/core/origin.cxx +25 -5
  56. package/deps/couchbase-cxx-client/core/origin.hxx +18 -24
  57. package/deps/couchbase-cxx-client/core/platform/random.cc +6 -3
  58. package/deps/couchbase-cxx-client/core/platform/random.h +2 -2
  59. package/deps/couchbase-cxx-client/core/protocol/cmd_mutate_in.hxx +9 -0
  60. package/deps/couchbase-cxx-client/core/timeout_defaults.hxx +4 -0
  61. package/deps/couchbase-cxx-client/core/topology/configuration.cxx +10 -13
  62. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +14 -15
  63. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +6 -0
  64. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.hxx +22 -2
  65. package/deps/couchbase-cxx-client/core/transactions/attempt_context.hxx +25 -7
  66. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +723 -245
  67. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +91 -12
  68. package/deps/couchbase-cxx-client/core/transactions/exceptions.cxx +5 -0
  69. package/deps/couchbase-cxx-client/core/transactions/exceptions.hxx +20 -0
  70. package/deps/couchbase-cxx-client/core/transactions/exceptions_fmt.hxx +3 -0
  71. package/deps/couchbase-cxx-client/core/transactions/forward_compat.cxx +71 -6
  72. package/deps/couchbase-cxx-client/core/transactions/forward_compat.hxx +45 -59
  73. package/deps/couchbase-cxx-client/core/transactions/get_multi_orchestrator.cxx +616 -0
  74. package/deps/couchbase-cxx-client/core/transactions/get_multi_orchestrator.hxx +61 -0
  75. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +8 -0
  76. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +16 -5
  77. package/deps/couchbase-cxx-client/core/transactions/internal/exceptions_internal.hxx +12 -0
  78. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +13 -0
  79. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_fields.hxx +1 -0
  80. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +277 -96
  81. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.hxx +28 -76
  82. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +33 -0
  83. package/deps/couchbase-cxx-client/core/transactions/transaction_get_multi_mode.hxx +28 -0
  84. package/deps/couchbase-cxx-client/core/transactions/transaction_get_multi_replicas_from_preferred_server_group_mode.hxx +27 -0
  85. package/deps/couchbase-cxx-client/core/transactions/transaction_get_multi_replicas_from_preferred_server_group_result.hxx +72 -0
  86. package/deps/couchbase-cxx-client/core/transactions/transaction_get_multi_result.hxx +67 -0
  87. package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +10 -0
  88. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +8 -3
  89. package/deps/couchbase-cxx-client/core/utils/connection_string.cxx +7 -0
  90. package/deps/couchbase-cxx-client/core/utils/connection_string.hxx +1 -0
  91. package/deps/couchbase-cxx-client/core/utils/url_codec.cxx +26 -0
  92. package/deps/couchbase-cxx-client/core/utils/url_codec.hxx +11 -0
  93. package/deps/couchbase-cxx-client/core/websocket_codec.cxx +647 -0
  94. package/deps/couchbase-cxx-client/core/websocket_codec.hxx +77 -0
  95. package/deps/couchbase-cxx-client/couchbase/analytics_options.hxx +70 -6
  96. package/deps/couchbase-cxx-client/couchbase/application_telemetry_options.hxx +124 -0
  97. package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +9 -0
  98. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +17 -0
  99. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +1 -0
  100. package/deps/couchbase-cxx-client/couchbase/logger.hxx +16 -0
  101. package/deps/couchbase-cxx-client/couchbase/management/bucket_settings.hxx +1 -0
  102. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +70 -6
  103. package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +29 -5
  104. package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +24 -7
  105. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_get_multi_mode.hxx +47 -0
  106. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_get_multi_options.hxx +44 -0
  107. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_get_multi_replicas_from_preferred_server_group_mode.hxx +46 -0
  108. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_get_multi_replicas_from_preferred_server_group_options.hxx +48 -0
  109. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_get_multi_replicas_from_preferred_server_group_result.hxx +112 -0
  110. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_get_multi_replicas_from_preferred_server_group_spec.hxx +47 -0
  111. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_get_multi_result.hxx +105 -0
  112. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_get_multi_spec.hxx +45 -0
  113. package/dist/analyticsindexmanager.d.ts +1 -0
  114. package/dist/binarycollection.d.ts +1 -0
  115. package/dist/binding.d.ts +82 -38
  116. package/dist/binding.js +14 -7
  117. package/dist/bindingutilities.d.ts +16 -4
  118. package/dist/bindingutilities.js +233 -31
  119. package/dist/cluster.d.ts +39 -0
  120. package/dist/cluster.js +21 -3
  121. package/dist/collection.d.ts +20 -1
  122. package/dist/collection.js +13 -0
  123. package/dist/errorcontexts.d.ts +24 -0
  124. package/dist/errorcontexts.js +12 -6
  125. package/dist/generaltypes.d.ts +16 -0
  126. package/dist/generaltypes.js +18 -1
  127. package/dist/httpexecutor.d.ts +1 -2
  128. package/dist/httpexecutor.js +0 -9
  129. package/dist/streamablepromises.d.ts +25 -7
  130. package/dist/streamablepromises.js +32 -7
  131. package/dist/transactions.d.ts +239 -1
  132. package/dist/transactions.js +316 -2
  133. package/dist/transcoders.d.ts +1 -0
  134. package/dist/utilities.d.ts +1 -0
  135. package/package.json +24 -24
  136. package/src/connection.cpp +34 -4
  137. package/src/constants.cpp +124 -0
  138. package/src/jstocbpp_autogen.hpp +22 -8
  139. package/src/jstocbpp_transactions.hpp +76 -2
  140. package/src/transaction.cpp +101 -0
  141. package/src/transaction.hpp +5 -0
  142. package/tools/gen-bindings-js.js +2 -1
  143. package/tools/gen-bindings-json.py +28 -3
@@ -42,4 +42,8 @@ constexpr std::chrono::milliseconds config_poll_interval{ 2'500 };
42
42
  constexpr std::chrono::milliseconds config_poll_floor{ 50 };
43
43
  constexpr std::chrono::milliseconds config_idle_redial_timeout{ 5 * 60'000 };
44
44
  constexpr std::chrono::milliseconds idle_http_connection_timeout{ 1'000 };
45
+
46
+ constexpr std::chrono::milliseconds app_telemetry_ping_interval{ 30'000 };
47
+ constexpr std::chrono::milliseconds app_telemetry_ping_timeout{ 2'000 };
48
+ constexpr std::chrono::milliseconds app_telemetry_backoff_interval{ std::chrono::hours{ 1 } };
45
49
  } // namespace couchbase::core::timeout_defaults
@@ -29,9 +29,8 @@
29
29
  namespace couchbase::core::topology
30
30
  {
31
31
  auto
32
- configuration::node::port_or(service_type type,
33
- bool is_tls,
34
- std::uint16_t default_value) const -> std::uint16_t
32
+ configuration::node::port_or(service_type type, bool is_tls, std::uint16_t default_value) const
33
+ -> std::uint16_t
35
34
  {
36
35
  if (is_tls) {
37
36
  switch (type) {
@@ -90,7 +89,7 @@ configuration::node::hostname_for(const std::string& network) const -> const std
90
89
  }
91
90
  const auto& address = alt.find(network);
92
91
  if (address == alt.end()) {
93
- CB_LOG_WARNING(R"(requested network "{}" is not found, fallback to "default" host)", network);
92
+ CB_LOG_DEBUG(R"(requested network "{}" is not found, fallback to "default" host)", network);
94
93
  return hostname;
95
94
  }
96
95
  return address->second.hostname;
@@ -107,10 +106,9 @@ configuration::node::port_or(const std::string& network,
107
106
  }
108
107
  const auto& address = alt.find(network);
109
108
  if (address == alt.end()) {
110
- CB_LOG_WARNING(
111
- R"(requested network "{}" is not found, fallback to "default" port of {} service)",
112
- network,
113
- type);
109
+ CB_LOG_DEBUG(R"(requested network "{}" is not found, fallback to "default" port of {} service)",
110
+ network,
111
+ type);
114
112
  return port_or(type, is_tls, default_value);
115
113
  }
116
114
  if (is_tls) {
@@ -163,9 +161,8 @@ configuration::node::port_or(const std::string& network,
163
161
  }
164
162
 
165
163
  auto
166
- configuration::node::endpoint(const std::string& network,
167
- service_type type,
168
- bool is_tls) const -> std::optional<std::string>
164
+ configuration::node::endpoint(const std::string& network, service_type type, bool is_tls) const
165
+ -> std::optional<std::string>
169
166
  {
170
167
  auto p = port_or(type, is_tls, 0);
171
168
  if (p == 0) {
@@ -234,8 +231,8 @@ configuration::index_for_this_node() const -> std::size_t
234
231
  }
235
232
 
236
233
  auto
237
- configuration::server_by_vbucket(std::uint16_t vbucket,
238
- std::size_t index) const -> std::optional<std::size_t>
234
+ configuration::server_by_vbucket(std::uint16_t vbucket, std::size_t index) const
235
+ -> std::optional<std::size_t>
239
236
  {
240
237
  if (!vbmap.has_value() || vbucket >= vbmap->size()) {
241
238
  return {};
@@ -61,6 +61,8 @@ struct configuration {
61
61
  port_map services_tls{};
62
62
  std::map<std::string, alternate_address> alt{};
63
63
  std::string server_group{};
64
+ std::optional<std::string> app_telemetry_path{};
65
+ std::string node_uuid{};
64
66
 
65
67
  auto operator!=(const node& other) const -> bool
66
68
  {
@@ -69,9 +71,8 @@ struct configuration {
69
71
  services_tls.key_value != other.services_tls.key_value;
70
72
  }
71
73
 
72
- [[nodiscard]] auto port_or(service_type type,
73
- bool is_tls,
74
- std::uint16_t default_value) const -> std::uint16_t;
74
+ [[nodiscard]] auto port_or(service_type type, bool is_tls, std::uint16_t default_value) const
75
+ -> std::uint16_t;
75
76
 
76
77
  [[nodiscard]] auto port_or(const std::string& network,
77
78
  service_type type,
@@ -80,9 +81,8 @@ struct configuration {
80
81
 
81
82
  [[nodiscard]] auto hostname_for(const std::string& network) const -> const std::string&;
82
83
 
83
- [[nodiscard]] auto endpoint(const std::string& network,
84
- service_type type,
85
- bool is_tls) const -> std::optional<std::string>;
84
+ [[nodiscard]] auto endpoint(const std::string& network, service_type type, bool is_tls) const
85
+ -> std::optional<std::string>;
86
86
  };
87
87
 
88
88
  [[nodiscard]] auto select_network(const std::string& bootstrap_hostname) const -> std::string;
@@ -128,13 +128,13 @@ struct configuration {
128
128
  const std::string& hostname,
129
129
  const std::string& port) const -> bool;
130
130
 
131
- auto map_key(const std::string& key,
132
- std::size_t index) const -> std::pair<std::uint16_t, std::optional<std::size_t>>;
133
- auto map_key(const std::vector<std::byte>& key,
134
- std::size_t index) const -> std::pair<std::uint16_t, std::optional<std::size_t>>;
131
+ auto map_key(const std::string& key, std::size_t index) const
132
+ -> std::pair<std::uint16_t, std::optional<std::size_t>>;
133
+ auto map_key(const std::vector<std::byte>& key, std::size_t index) const
134
+ -> std::pair<std::uint16_t, std::optional<std::size_t>>;
135
135
 
136
- auto server_by_vbucket(std::uint16_t vbucket,
137
- std::size_t index) const -> std::optional<std::size_t>;
136
+ auto server_by_vbucket(std::uint16_t vbucket, std::size_t index) const
137
+ -> std::optional<std::size_t>;
138
138
  };
139
139
 
140
140
  using endpoint = std::pair<std::string, std::string>;
@@ -145,7 +145,6 @@ make_blank_configuration(const std::string& hostname,
145
145
  std::uint16_t tls_port) -> configuration;
146
146
 
147
147
  auto
148
- make_blank_configuration(const std::vector<endpoint>& endpoints,
149
- bool use_tls,
150
- bool force = false) -> configuration;
148
+ make_blank_configuration(const std::vector<endpoint>& endpoints, bool use_tls, bool force = false)
149
+ -> configuration;
151
150
  } // namespace couchbase::core::topology
@@ -61,6 +61,12 @@ struct traits<couchbase::core::topology::configuration> {
61
61
  if (const auto& group = o.find("serverGroup"); group != o.end()) {
62
62
  n.server_group = group->second.get_string();
63
63
  }
64
+ if (const auto& path = o.find("appTelemetryPath"); path != o.end()) {
65
+ n.app_telemetry_path = path->second.get_string();
66
+ }
67
+ if (const auto& uuid = o.find("nodeUUID"); uuid != o.end()) {
68
+ n.node_uuid = uuid->second.get_string();
69
+ }
64
70
  const auto& s = o.at("services");
65
71
  n.services_plain.key_value = s.template optional<std::uint16_t>("kv");
66
72
  n.services_plain.management = s.template optional<std::uint16_t>("mgmt");
@@ -15,11 +15,14 @@
15
15
  */
16
16
  #pragma once
17
17
 
18
- #include "core/error_context/subdocument_error_context.hxx"
19
18
  #include "core/operations/document_query.hxx"
20
- #include "exceptions.hxx"
19
+ #include "transaction_get_multi_mode.hxx"
20
+ #include "transaction_get_multi_replicas_from_preferred_server_group_mode.hxx"
21
+ #include "transaction_get_multi_replicas_from_preferred_server_group_result.hxx"
22
+ #include "transaction_get_multi_result.hxx"
21
23
  #include "transaction_get_result.hxx"
22
24
 
25
+ // FIXME(SA): remove public API from the core
23
26
  #include <couchbase/transactions/transaction_query_options.hxx>
24
27
 
25
28
  #include <optional>
@@ -42,6 +45,11 @@ public:
42
45
  using QueryCallback =
43
46
  std::function<void(std::exception_ptr, std::optional<core::operations::query_response>)>;
44
47
 
48
+ async_attempt_context() = default;
49
+ async_attempt_context(async_attempt_context&&) = default;
50
+ async_attempt_context(const async_attempt_context&) noexcept = default;
51
+ auto operator=(async_attempt_context&&) -> async_attempt_context& = default;
52
+ auto operator=(const async_attempt_context&) noexcept -> async_attempt_context& = default;
45
53
  virtual ~async_attempt_context() = default;
46
54
 
47
55
  /**
@@ -78,6 +86,18 @@ public:
78
86
  const core::document_id& id,
79
87
  std::function<void(std::exception_ptr, std::optional<transaction_get_result>)>&& cb) = 0;
80
88
 
89
+ virtual void get_multi(
90
+ const std::vector<core::document_id>& ids,
91
+ transaction_get_multi_mode mode,
92
+ std::function<void(std::exception_ptr, std::optional<transaction_get_multi_result>)>&& cb) = 0;
93
+
94
+ virtual void get_multi_replicas_from_preferred_server_group(
95
+ const std::vector<core::document_id>& ids,
96
+ transaction_get_multi_replicas_from_preferred_server_group_mode mode,
97
+ std::function<void(
98
+ std::exception_ptr,
99
+ std::optional<transaction_get_multi_replicas_from_preferred_server_group_result>)>&& cb) = 0;
100
+
81
101
  /**
82
102
  * Mutates the specified document with new content, using the document's last
83
103
  * TransactionDocument#cas().
@@ -15,10 +15,14 @@
15
15
  */
16
16
  #pragma once
17
17
 
18
+ #include "core/operations/document_query.hxx"
19
+ #include "transaction_get_multi_mode.hxx"
20
+ #include "transaction_get_multi_replicas_from_preferred_server_group_mode.hxx"
21
+ #include "transaction_get_multi_replicas_from_preferred_server_group_result.hxx"
22
+ #include "transaction_get_multi_result.hxx"
18
23
  #include "transaction_get_result.hxx"
19
24
 
20
- #include "internal/exceptions_internal.hxx"
21
-
25
+ // TODO(SA): remove public API from core interfaces
22
26
  #include <couchbase/transactions/transaction_query_options.hxx>
23
27
 
24
28
  #include <optional>
@@ -37,7 +41,13 @@ namespace couchbase::core::transactions
37
41
  class attempt_context
38
42
  {
39
43
  public:
44
+ attempt_context() = default;
45
+ attempt_context(attempt_context&&) noexcept = default;
46
+ attempt_context(const attempt_context&) = default;
47
+ auto operator=(attempt_context&&) noexcept -> attempt_context& = default;
48
+ auto operator=(const attempt_context&) -> attempt_context& = default;
40
49
  virtual ~attempt_context() = default;
50
+
41
51
  /**
42
52
  * Gets a document from the specified Couchbase collection matching the
43
53
  * specified id.
@@ -80,6 +90,14 @@ public:
80
90
  virtual auto get_replica_from_preferred_server_group(const core::document_id& id)
81
91
  -> std::optional<transaction_get_result> = 0;
82
92
 
93
+ virtual auto get_multi(const std::vector<core::document_id>& ids, transaction_get_multi_mode mode)
94
+ -> transaction_get_multi_result = 0;
95
+
96
+ virtual auto get_multi_replicas_from_preferred_server_group(
97
+ const std::vector<core::document_id>& ids,
98
+ transaction_get_multi_replicas_from_preferred_server_group_mode mode)
99
+ -> transaction_get_multi_replicas_from_preferred_server_group_result = 0;
100
+
83
101
  /**
84
102
  * Mutates the specified document with new content, using the document's last
85
103
  * TransactionDocument#cas().
@@ -101,8 +119,8 @@ public:
101
119
  * @throws transaction_operation_failed which either should not be caught by
102
120
  * the lambda, or rethrown if it is caught.
103
121
  */
104
- virtual auto replace(const transaction_get_result& document,
105
- codec::encoded_value content) -> transaction_get_result = 0;
122
+ virtual auto replace(const transaction_get_result& document, codec::encoded_value content)
123
+ -> transaction_get_result = 0;
106
124
 
107
125
  /**
108
126
  * Inserts a new document into the specified Couchbase collection.
@@ -124,8 +142,8 @@ public:
124
142
  * @throws transaction_operation_failed which either should not be caught by
125
143
  * the lambda, or rethrown if it is caught.
126
144
  */
127
- virtual auto insert(const core::document_id& id,
128
- codec::encoded_value content) -> transaction_get_result = 0;
145
+ virtual auto insert(const core::document_id& id, codec::encoded_value content)
146
+ -> transaction_get_result = 0;
129
147
 
130
148
  /**
131
149
  * Removes the specified document, using the document's last
@@ -157,7 +175,7 @@ public:
157
175
  const couchbase::transactions::transaction_query_options& opts,
158
176
  std::optional<std::string> query_context = {}) -> core::operations::query_response
159
177
  {
160
- return do_core_query(statement, opts, query_context);
178
+ return do_core_query(statement, opts, std::move(query_context));
161
179
  };
162
180
 
163
181
  /**