couchbase 3.1.1-universal-darwin-20 → 3.2.0-universal-darwin-20

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 (221) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/ext/CMakeLists.txt +3 -1
  4. data/ext/build_version.hxx.in +1 -1
  5. data/ext/cmake/Testing.cmake +1 -0
  6. data/ext/cmake/ThirdPartyDependencies.cmake +6 -0
  7. data/ext/cmake/VersionInfo.cmake +3 -0
  8. data/ext/couchbase/bucket.hxx +47 -28
  9. data/ext/couchbase/cbsasl/client.h +1 -1
  10. data/ext/couchbase/cbsasl/context.cc +1 -1
  11. data/ext/couchbase/cbsasl/context.h +3 -3
  12. data/ext/couchbase/cbsasl/mechanism.cc +5 -8
  13. data/ext/couchbase/cbsasl/mechanism.h +1 -4
  14. data/ext/couchbase/cbsasl/plain/plain.cc +1 -1
  15. data/ext/couchbase/cbsasl/scram-sha/scram-sha.cc +30 -36
  16. data/ext/couchbase/cluster.hxx +40 -22
  17. data/ext/couchbase/cluster_options.hxx +7 -1
  18. data/ext/couchbase/configuration.hxx +37 -16
  19. data/ext/couchbase/couchbase.cxx +1145 -291
  20. data/ext/couchbase/error_map.hxx +1 -1
  21. data/ext/couchbase/errors.hxx +25 -17
  22. data/ext/couchbase/io/dns_client.hxx +3 -3
  23. data/ext/couchbase/io/dns_codec.hxx +4 -5
  24. data/ext/couchbase/io/dns_config.hxx +5 -6
  25. data/ext/couchbase/io/dns_message.hxx +3 -3
  26. data/ext/couchbase/io/http_command.hxx +70 -35
  27. data/ext/couchbase/io/http_session.hxx +4 -3
  28. data/ext/couchbase/io/http_session_manager.hxx +28 -19
  29. data/ext/couchbase/io/mcbp_command.hxx +51 -19
  30. data/ext/couchbase/io/mcbp_context.hxx +1 -1
  31. data/ext/couchbase/io/mcbp_parser.hxx +4 -4
  32. data/ext/couchbase/io/mcbp_session.hxx +91 -101
  33. data/ext/couchbase/io/query_cache.hxx +2 -2
  34. data/ext/couchbase/io/retry_orchestrator.hxx +2 -4
  35. data/ext/couchbase/io/retry_reason.hxx +2 -2
  36. data/ext/couchbase/io/retry_strategy.hxx +1 -6
  37. data/ext/couchbase/io/streams.hxx +7 -7
  38. data/ext/couchbase/metrics/logging_meter.hxx +228 -0
  39. data/ext/couchbase/metrics/logging_meter_options.hxx +28 -0
  40. data/ext/couchbase/metrics/meter.hxx +49 -0
  41. data/ext/couchbase/metrics/noop_meter.hxx +43 -0
  42. data/ext/couchbase/operations.hxx +4 -0
  43. data/ext/couchbase/operations/analytics_dataset_create.hxx +16 -12
  44. data/ext/couchbase/operations/analytics_dataset_drop.hxx +11 -11
  45. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +6 -6
  46. data/ext/couchbase/operations/analytics_dataverse_create.hxx +10 -11
  47. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +10 -11
  48. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +9 -11
  49. data/ext/couchbase/operations/analytics_index_create.hxx +14 -13
  50. data/ext/couchbase/operations/analytics_index_drop.hxx +18 -12
  51. data/ext/couchbase/operations/analytics_index_get_all.hxx +8 -6
  52. data/ext/couchbase/operations/analytics_link.hxx +39 -0
  53. data/ext/couchbase/operations/analytics_link_azure_blob_external.hxx +145 -0
  54. data/ext/couchbase/operations/analytics_link_connect.hxx +14 -12
  55. data/ext/couchbase/operations/analytics_link_couchbase_remote.hxx +220 -0
  56. data/ext/couchbase/operations/analytics_link_create.hxx +128 -0
  57. data/ext/couchbase/operations/analytics_link_disconnect.hxx +11 -12
  58. data/ext/couchbase/operations/analytics_link_drop.hxx +130 -0
  59. data/ext/couchbase/operations/analytics_link_get_all.hxx +160 -0
  60. data/ext/couchbase/operations/analytics_link_replace.hxx +128 -0
  61. data/ext/couchbase/operations/analytics_link_s3_external.hxx +122 -0
  62. data/ext/couchbase/operations/bucket_create.hxx +8 -8
  63. data/ext/couchbase/operations/bucket_drop.hxx +5 -5
  64. data/ext/couchbase/operations/bucket_flush.hxx +5 -5
  65. data/ext/couchbase/operations/bucket_get.hxx +7 -7
  66. data/ext/couchbase/operations/bucket_get_all.hxx +7 -5
  67. data/ext/couchbase/operations/bucket_settings.hxx +40 -49
  68. data/ext/couchbase/operations/bucket_update.hxx +8 -8
  69. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +7 -7
  70. data/ext/couchbase/operations/collection_create.hxx +11 -11
  71. data/ext/couchbase/operations/collection_drop.hxx +12 -10
  72. data/ext/couchbase/operations/collections_manifest_get.hxx +3 -3
  73. data/ext/couchbase/operations/design_document.hxx +2 -2
  74. data/ext/couchbase/operations/document_analytics.hxx +29 -36
  75. data/ext/couchbase/operations/document_append.hxx +3 -3
  76. data/ext/couchbase/operations/document_decrement.hxx +3 -3
  77. data/ext/couchbase/operations/document_exists.hxx +2 -2
  78. data/ext/couchbase/operations/document_get.hxx +3 -3
  79. data/ext/couchbase/operations/document_get_and_lock.hxx +5 -3
  80. data/ext/couchbase/operations/document_get_and_touch.hxx +5 -3
  81. data/ext/couchbase/operations/document_get_projected.hxx +10 -11
  82. data/ext/couchbase/operations/document_increment.hxx +3 -3
  83. data/ext/couchbase/operations/document_insert.hxx +3 -3
  84. data/ext/couchbase/operations/document_lookup_in.hxx +12 -18
  85. data/ext/couchbase/operations/document_mutate_in.hxx +13 -18
  86. data/ext/couchbase/operations/document_prepend.hxx +3 -3
  87. data/ext/couchbase/operations/document_query.hxx +39 -41
  88. data/ext/couchbase/operations/document_remove.hxx +3 -3
  89. data/ext/couchbase/operations/document_replace.hxx +3 -3
  90. data/ext/couchbase/operations/document_search.hxx +56 -61
  91. data/ext/couchbase/operations/document_touch.hxx +3 -3
  92. data/ext/couchbase/operations/document_unlock.hxx +3 -3
  93. data/ext/couchbase/operations/document_upsert.hxx +3 -3
  94. data/ext/couchbase/operations/document_view.hxx +23 -23
  95. data/ext/couchbase/operations/group_drop.hxx +5 -5
  96. data/ext/couchbase/operations/group_get.hxx +7 -7
  97. data/ext/couchbase/operations/group_get_all.hxx +6 -6
  98. data/ext/couchbase/operations/group_upsert.hxx +11 -11
  99. data/ext/couchbase/operations/http_noop.hxx +6 -6
  100. data/ext/couchbase/operations/mcbp_noop.hxx +3 -3
  101. data/ext/couchbase/operations/query_index_build_deferred.hxx +6 -6
  102. data/ext/couchbase/operations/query_index_create.hxx +10 -8
  103. data/ext/couchbase/operations/query_index_drop.hxx +8 -8
  104. data/ext/couchbase/operations/query_index_get_all.hxx +43 -39
  105. data/ext/couchbase/operations/rbac.hxx +40 -63
  106. data/ext/couchbase/operations/role_get_all.hxx +6 -6
  107. data/ext/couchbase/operations/scope_create.hxx +10 -10
  108. data/ext/couchbase/operations/scope_drop.hxx +9 -9
  109. data/ext/couchbase/operations/scope_get_all.hxx +8 -8
  110. data/ext/couchbase/operations/search_get_stats.hxx +5 -3
  111. data/ext/couchbase/operations/search_index.hxx +6 -15
  112. data/ext/couchbase/operations/search_index_analyze_document.hxx +11 -11
  113. data/ext/couchbase/operations/search_index_control_ingest.hxx +9 -9
  114. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +9 -9
  115. data/ext/couchbase/operations/search_index_control_query.hxx +9 -9
  116. data/ext/couchbase/operations/search_index_drop.hxx +11 -9
  117. data/ext/couchbase/operations/search_index_get.hxx +11 -9
  118. data/ext/couchbase/operations/search_index_get_all.hxx +11 -11
  119. data/ext/couchbase/operations/search_index_get_documents_count.hxx +10 -10
  120. data/ext/couchbase/operations/search_index_get_stats.hxx +10 -8
  121. data/ext/couchbase/operations/search_index_upsert.hxx +12 -10
  122. data/ext/couchbase/operations/user_drop.hxx +5 -5
  123. data/ext/couchbase/operations/user_get.hxx +7 -7
  124. data/ext/couchbase/operations/user_get_all.hxx +6 -6
  125. data/ext/couchbase/operations/user_upsert.hxx +9 -9
  126. data/ext/couchbase/operations/view_index_drop.hxx +10 -10
  127. data/ext/couchbase/operations/view_index_get.hxx +13 -15
  128. data/ext/couchbase/operations/view_index_get_all.hxx +17 -20
  129. data/ext/couchbase/operations/view_index_upsert.hxx +9 -7
  130. data/ext/couchbase/origin.hxx +14 -10
  131. data/ext/couchbase/platform/backtrace.c +1 -1
  132. data/ext/couchbase/platform/base64.cc +5 -5
  133. data/ext/couchbase/platform/base64.h +2 -5
  134. data/ext/couchbase/protocol/client_opcode.hxx +7 -4
  135. data/ext/couchbase/protocol/client_request.hxx +2 -2
  136. data/ext/couchbase/protocol/client_response.hxx +41 -16
  137. data/ext/couchbase/protocol/cmd_append.hxx +17 -16
  138. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +4 -4
  139. data/ext/couchbase/protocol/cmd_decrement.hxx +10 -11
  140. data/ext/couchbase/protocol/cmd_exists.hxx +12 -15
  141. data/ext/couchbase/protocol/cmd_get.hxx +11 -14
  142. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +10 -12
  143. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +10 -12
  144. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +13 -18
  145. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +12 -15
  146. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +12 -16
  147. data/ext/couchbase/protocol/cmd_get_error_map.hxx +14 -17
  148. data/ext/couchbase/protocol/cmd_hello.hxx +8 -10
  149. data/ext/couchbase/protocol/cmd_increment.hxx +9 -10
  150. data/ext/couchbase/protocol/cmd_insert.hxx +9 -9
  151. data/ext/couchbase/protocol/cmd_lookup_in.hxx +12 -13
  152. data/ext/couchbase/protocol/cmd_mutate_in.hxx +11 -11
  153. data/ext/couchbase/protocol/cmd_noop.hxx +16 -20
  154. data/ext/couchbase/protocol/cmd_prepend.hxx +9 -10
  155. data/ext/couchbase/protocol/cmd_remove.hxx +10 -13
  156. data/ext/couchbase/protocol/cmd_replace.hxx +7 -7
  157. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +8 -10
  158. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +10 -15
  159. data/ext/couchbase/protocol/cmd_sasl_step.hxx +10 -12
  160. data/ext/couchbase/protocol/cmd_select_bucket.hxx +14 -18
  161. data/ext/couchbase/protocol/cmd_touch.hxx +8 -11
  162. data/ext/couchbase/protocol/cmd_unlock.hxx +10 -14
  163. data/ext/couchbase/protocol/cmd_upsert.hxx +8 -8
  164. data/ext/couchbase/protocol/datatype.hxx +3 -3
  165. data/ext/couchbase/protocol/durability_level.hxx +2 -2
  166. data/ext/couchbase/protocol/frame_info_id.hxx +4 -4
  167. data/ext/couchbase/protocol/hello_feature.hxx +2 -2
  168. data/ext/couchbase/protocol/magic.hxx +2 -2
  169. data/ext/couchbase/protocol/server_opcode.hxx +2 -2
  170. data/ext/couchbase/protocol/server_request.hxx +1 -1
  171. data/ext/couchbase/protocol/status.hxx +4 -7
  172. data/ext/couchbase/protocol/unsigned_leb128.h +5 -20
  173. data/ext/couchbase/service_type.hxx +4 -4
  174. data/ext/couchbase/tracing/constants.hxx +261 -0
  175. data/ext/couchbase/tracing/noop_tracer.hxx +50 -0
  176. data/ext/couchbase/tracing/request_tracer.hxx +77 -0
  177. data/ext/couchbase/tracing/threshold_logging_options.hxx +64 -0
  178. data/ext/couchbase/tracing/threshold_logging_tracer.hxx +366 -0
  179. data/ext/couchbase/utils/byteswap.hxx +1 -1
  180. data/ext/couchbase/utils/connection_string.hxx +21 -1
  181. data/ext/couchbase/utils/name_codec.hxx +41 -0
  182. data/ext/couchbase/utils/url_codec.hxx +236 -0
  183. data/ext/couchbase/version.hxx +1 -1
  184. data/ext/test/CMakeLists.txt +1 -0
  185. data/ext/test/test_native_trivial_query.cxx +60 -0
  186. data/ext/third_party/hdr_histogram_c/CMakeLists.txt +84 -0
  187. data/ext/third_party/hdr_histogram_c/COPYING.txt +121 -0
  188. data/ext/third_party/hdr_histogram_c/LICENSE.txt +41 -0
  189. data/ext/third_party/hdr_histogram_c/config.cmake.in +6 -0
  190. data/ext/third_party/hdr_histogram_c/src/CMakeLists.txt +83 -0
  191. data/ext/third_party/hdr_histogram_c/src/hdr_atomic.h +146 -0
  192. data/ext/third_party/hdr_histogram_c/src/hdr_encoding.c +322 -0
  193. data/ext/third_party/hdr_histogram_c/src/hdr_encoding.h +79 -0
  194. data/ext/third_party/hdr_histogram_c/src/hdr_endian.h +116 -0
  195. data/ext/third_party/hdr_histogram_c/src/hdr_histogram.c +1196 -0
  196. data/ext/third_party/hdr_histogram_c/src/hdr_histogram.h +516 -0
  197. data/ext/third_party/hdr_histogram_c/src/hdr_histogram_log.c +1290 -0
  198. data/ext/third_party/hdr_histogram_c/src/hdr_histogram_log.h +236 -0
  199. data/ext/third_party/hdr_histogram_c/src/hdr_histogram_log_no_op.c +171 -0
  200. data/ext/third_party/hdr_histogram_c/src/hdr_interval_recorder.c +227 -0
  201. data/ext/third_party/hdr_histogram_c/src/hdr_interval_recorder.h +109 -0
  202. data/ext/third_party/hdr_histogram_c/src/hdr_malloc.h +19 -0
  203. data/ext/third_party/hdr_histogram_c/src/hdr_tests.h +22 -0
  204. data/ext/third_party/hdr_histogram_c/src/hdr_thread.c +108 -0
  205. data/ext/third_party/hdr_histogram_c/src/hdr_thread.h +55 -0
  206. data/ext/third_party/hdr_histogram_c/src/hdr_time.c +98 -0
  207. data/ext/third_party/hdr_histogram_c/src/hdr_time.h +49 -0
  208. data/ext/third_party/hdr_histogram_c/src/hdr_writer_reader_phaser.c +143 -0
  209. data/ext/third_party/hdr_histogram_c/src/hdr_writer_reader_phaser.h +51 -0
  210. data/lib/couchbase/cluster.rb +1 -0
  211. data/lib/couchbase/errors.rb +3 -0
  212. data/lib/couchbase/libcouchbase.bundle +0 -0
  213. data/lib/couchbase/management/analytics_index_manager.rb +920 -226
  214. data/lib/couchbase/management/bucket_manager.rb +207 -69
  215. data/lib/couchbase/management/collection_manager.rb +173 -61
  216. data/lib/couchbase/management/query_index_manager.rb +357 -169
  217. data/lib/couchbase/options.rb +75 -3
  218. data/lib/couchbase/scope.rb +102 -0
  219. data/lib/couchbase/utils/time.rb +4 -0
  220. data/lib/couchbase/version.rb +6 -6
  221. metadata +48 -5
@@ -44,7 +44,7 @@ struct bucket_update_request {
44
44
 
45
45
  bucket_settings bucket{};
46
46
 
47
- [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, http_context&)
47
+ [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, http_context& /* context */) const
48
48
  {
49
49
  encoded.method = "POST";
50
50
  encoded.path = fmt::format("/pools/default/buckets/{}", bucket.name);
@@ -105,23 +105,23 @@ struct bucket_update_request {
105
105
  };
106
106
 
107
107
  bucket_update_response
108
- make_response(error_context::http&& ctx, bucket_update_request& /* request */, bucket_update_request::encoded_response_type&& encoded)
108
+ make_response(error_context::http&& ctx, const bucket_update_request& /* request */, bucket_update_request::encoded_response_type&& encoded)
109
109
  {
110
- bucket_update_response response{ ctx };
110
+ bucket_update_response response{ std::move(ctx) };
111
111
  if (!response.ctx.ec) {
112
112
  switch (encoded.status_code) {
113
113
  case 404:
114
- response.ctx.ec = std::make_error_code(error::common_errc::bucket_not_found);
114
+ response.ctx.ec = error::common_errc::bucket_not_found;
115
115
  break;
116
116
  case 400: {
117
117
  tao::json::value payload{};
118
118
  try {
119
119
  payload = tao::json::from_string(encoded.body);
120
- } catch (tao::json::pegtl::parse_error& e) {
121
- response.ctx.ec = std::make_error_code(error::common_errc::parsing_failure);
120
+ } catch (const tao::json::pegtl::parse_error& e) {
121
+ response.ctx.ec = error::common_errc::parsing_failure;
122
122
  return response;
123
123
  }
124
- response.ctx.ec = std::make_error_code(error::common_errc::invalid_argument);
124
+ response.ctx.ec = error::common_errc::invalid_argument;
125
125
  auto* errors = payload.find("errors");
126
126
  if (errors != nullptr) {
127
127
  std::vector<std::string> error_list{};
@@ -137,7 +137,7 @@ make_response(error_context::http&& ctx, bucket_update_request& /* request */, b
137
137
  case 202:
138
138
  break;
139
139
  default:
140
- response.ctx.ec = std::make_error_code(error::common_errc::internal_server_failure);
140
+ response.ctx.ec = error::common_errc::internal_server_failure;
141
141
  break;
142
142
  }
143
143
  }
@@ -39,7 +39,7 @@ struct cluster_developer_preview_enable_request {
39
39
  std::chrono::milliseconds timeout{ timeout_defaults::management_timeout };
40
40
  std::string client_context_id{ uuid::to_string(uuid::random()) };
41
41
 
42
- [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, http_context&)
42
+ [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, http_context& /* context */) const
43
43
  {
44
44
  encoded.method = "POST";
45
45
  encoded.headers["content-type"] = "application/x-www-form-urlencoded";
@@ -50,13 +50,13 @@ struct cluster_developer_preview_enable_request {
50
50
  };
51
51
 
52
52
  cluster_developer_preview_enable_response
53
- make_response(error_context::http&& ctx, cluster_developer_preview_enable_request&, scope_get_all_request::encoded_response_type&& encoded)
53
+ make_response(error_context::http&& ctx,
54
+ const cluster_developer_preview_enable_request& /* request */,
55
+ scope_get_all_request::encoded_response_type&& encoded)
54
56
  {
55
- cluster_developer_preview_enable_response response{ ctx };
56
- if (!response.ctx.ec) {
57
- if (encoded.status_code != 200) {
58
- response.ctx.ec = std::make_error_code(error::common_errc::internal_server_failure);
59
- }
57
+ cluster_developer_preview_enable_response response{ std::move(ctx) };
58
+ if (!response.ctx.ec && encoded.status_code != 200) {
59
+ response.ctx.ec = error::common_errc::internal_server_failure;
60
60
  }
61
61
  return response;
62
62
  }
@@ -46,7 +46,7 @@ struct collection_create_request {
46
46
  std::chrono::milliseconds timeout{ timeout_defaults::management_timeout };
47
47
  std::string client_context_id{ uuid::to_string(uuid::random()) };
48
48
 
49
- [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, http_context&)
49
+ [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, http_context& /* context */) const
50
50
  {
51
51
  encoded.method = "POST";
52
52
  encoded.path = fmt::format("/pools/default/buckets/{}/scopes/{}/collections", bucket_name, scope_name);
@@ -61,42 +61,42 @@ struct collection_create_request {
61
61
 
62
62
  collection_create_response
63
63
  make_response(error_context::http&& ctx,
64
- collection_create_request& /* request */,
64
+ const collection_create_request& /* request */,
65
65
  collection_create_request::encoded_response_type&& encoded)
66
66
  {
67
- collection_create_response response{ ctx };
67
+ collection_create_response response{ std::move(ctx) };
68
68
  if (!response.ctx.ec) {
69
69
  switch (encoded.status_code) {
70
70
  case 400: {
71
71
  std::regex collection_exists("Collection with name .+ already exists");
72
72
  if (std::regex_search(encoded.body, collection_exists)) {
73
- response.ctx.ec = std::make_error_code(error::management_errc::collection_exists);
73
+ response.ctx.ec = error::management_errc::collection_exists;
74
74
  } else if (encoded.body.find("Not allowed on this version of cluster") != std::string::npos) {
75
- response.ctx.ec = std::make_error_code(error::common_errc::feature_not_available);
75
+ response.ctx.ec = error::common_errc::feature_not_available;
76
76
  } else {
77
- response.ctx.ec = std::make_error_code(error::common_errc::invalid_argument);
77
+ response.ctx.ec = error::common_errc::invalid_argument;
78
78
  }
79
79
  } break;
80
80
  case 404: {
81
81
  std::regex scope_not_found("Scope with name .+ is not found");
82
82
  if (std::regex_search(encoded.body, scope_not_found)) {
83
- response.ctx.ec = std::make_error_code(error::common_errc::scope_not_found);
83
+ response.ctx.ec = error::common_errc::scope_not_found;
84
84
  } else {
85
- response.ctx.ec = std::make_error_code(error::common_errc::bucket_not_found);
85
+ response.ctx.ec = error::common_errc::bucket_not_found;
86
86
  }
87
87
  } break;
88
88
  case 200: {
89
89
  tao::json::value payload{};
90
90
  try {
91
91
  payload = tao::json::from_string(encoded.body);
92
- } catch (tao::json::pegtl::parse_error& e) {
93
- response.ctx.ec = std::make_error_code(error::common_errc::parsing_failure);
92
+ } catch (const tao::json::pegtl::parse_error& e) {
93
+ response.ctx.ec = error::common_errc::parsing_failure;
94
94
  return response;
95
95
  }
96
96
  response.uid = std::stoull(payload.at("uid").get_string(), 0, 16);
97
97
  } break;
98
98
  default:
99
- response.ctx.ec = std::make_error_code(error::common_errc::internal_server_failure);
99
+ response.ctx.ec = error::common_errc::internal_server_failure;
100
100
  break;
101
101
  }
102
102
  }
@@ -47,7 +47,7 @@ struct collection_drop_request {
47
47
  std::chrono::milliseconds timeout{ timeout_defaults::management_timeout };
48
48
  std::string client_context_id{ uuid::to_string(uuid::random()) };
49
49
 
50
- [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, http_context&)
50
+ [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, http_context& /* context */) const
51
51
  {
52
52
  encoded.method = "DELETE";
53
53
  encoded.path = fmt::format("/pools/default/buckets/{}/scopes/{}/collections/{}", bucket_name, scope_name, collection_name);
@@ -56,37 +56,39 @@ struct collection_drop_request {
56
56
  };
57
57
 
58
58
  collection_drop_response
59
- make_response(error_context::http&& ctx, collection_drop_request& /* request */, collection_drop_request::encoded_response_type&& encoded)
59
+ make_response(error_context::http&& ctx,
60
+ const collection_drop_request& /* request */,
61
+ collection_drop_request::encoded_response_type&& encoded)
60
62
  {
61
- collection_drop_response response{ ctx };
63
+ collection_drop_response response{ std::move(ctx) };
62
64
  if (!response.ctx.ec) {
63
65
  switch (encoded.status_code) {
64
66
  case 400:
65
- response.ctx.ec = std::make_error_code(error::common_errc::unsupported_operation);
67
+ response.ctx.ec = error::common_errc::unsupported_operation;
66
68
  break;
67
69
  case 404: {
68
70
  std::regex scope_not_found("Scope with name .+ is not found");
69
71
  std::regex collection_not_found("Collection with name .+ is not found");
70
72
  if (std::regex_search(encoded.body, collection_not_found)) {
71
- response.ctx.ec = std::make_error_code(error::common_errc::collection_not_found);
73
+ response.ctx.ec = error::common_errc::collection_not_found;
72
74
  } else if (std::regex_search(encoded.body, scope_not_found)) {
73
- response.ctx.ec = std::make_error_code(error::common_errc::scope_not_found);
75
+ response.ctx.ec = error::common_errc::scope_not_found;
74
76
  } else {
75
- response.ctx.ec = std::make_error_code(error::common_errc::bucket_not_found);
77
+ response.ctx.ec = error::common_errc::bucket_not_found;
76
78
  }
77
79
  } break;
78
80
  case 200: {
79
81
  tao::json::value payload{};
80
82
  try {
81
83
  payload = tao::json::from_string(encoded.body);
82
- } catch (tao::json::pegtl::parse_error& e) {
83
- response.ctx.ec = std::make_error_code(error::common_errc::parsing_failure);
84
+ } catch (const tao::json::pegtl::parse_error& e) {
85
+ response.ctx.ec = error::common_errc::parsing_failure;
84
86
  return response;
85
87
  }
86
88
  response.uid = std::stoull(payload.at("uid").get_string(), 0, 16);
87
89
  } break;
88
90
  default:
89
- response.ctx.ec = std::make_error_code(error::common_errc::internal_server_failure);
91
+ response.ctx.ec = error::common_errc::internal_server_failure;
90
92
  break;
91
93
  }
92
94
  }
@@ -45,7 +45,7 @@ struct collections_manifest_get_request {
45
45
  std::chrono::milliseconds timeout{ timeout_defaults::key_value_timeout };
46
46
  io::retry_context<io::retry_strategy::best_effort> retries{ true };
47
47
 
48
- [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, mcbp_context&&)
48
+ [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, mcbp_context&& /* context */) const
49
49
  {
50
50
  encoded.opaque(opaque);
51
51
  return {};
@@ -54,10 +54,10 @@ struct collections_manifest_get_request {
54
54
 
55
55
  collections_manifest_get_response
56
56
  make_response(error_context::key_value&& ctx,
57
- collections_manifest_get_request&,
57
+ const collections_manifest_get_request& /* request */,
58
58
  collections_manifest_get_request::encoded_response_type&& encoded)
59
59
  {
60
- collections_manifest_get_response response{ ctx };
60
+ collections_manifest_get_response response{ std::move(ctx) };
61
61
  if (!response.ctx.ec) {
62
62
  response.manifest = encoded.body().manifest();
63
63
  }
@@ -27,8 +27,8 @@ struct design_document {
27
27
 
28
28
  struct view {
29
29
  std::string name;
30
- std::optional<std::string> map;
31
- std::optional<std::string> reduce;
30
+ std::optional<std::string> map{};
31
+ std::optional<std::string> reduce{};
32
32
  };
33
33
 
34
34
  std::string rev;
@@ -79,18 +79,16 @@ struct traits<couchbase::operations::analytics_response_payload> {
79
79
  result.meta_data.request_id = v.at("requestID").get_string();
80
80
  result.meta_data.client_context_id = v.at("clientContextID").get_string();
81
81
  result.meta_data.status = v.at("status").get_string();
82
- const auto s = v.find("signature");
83
- if (s != nullptr) {
82
+
83
+ if (const auto* s = v.find("signature"); s != nullptr) {
84
84
  result.meta_data.signature = tao::json::to_string(*s);
85
85
  }
86
86
 
87
- const auto p = v.find("profile");
88
- if (p != nullptr) {
87
+ if (const auto* p = v.find("profile"); p != nullptr) {
89
88
  result.meta_data.profile = tao::json::to_string(*p);
90
89
  }
91
90
 
92
- const auto m = v.find("metrics");
93
- if (m != nullptr) {
91
+ if (const auto* m = v.find("metrics"); m != nullptr) {
94
92
  result.meta_data.metrics.result_count = m->at("resultCount").get_unsigned();
95
93
  result.meta_data.metrics.result_size = m->at("resultSize").get_unsigned();
96
94
  result.meta_data.metrics.elapsed_time = m->at("elapsedTime").get_string();
@@ -101,8 +99,7 @@ struct traits<couchbase::operations::analytics_response_payload> {
101
99
  result.meta_data.metrics.warning_count = m->template optional<std::uint64_t>("warningCount");
102
100
  }
103
101
 
104
- const auto e = v.find("errors");
105
- if (e != nullptr) {
102
+ if (const auto* e = v.find("errors"); e != nullptr) {
106
103
  std::vector<couchbase::operations::analytics_response_payload::analytics_problem> problems{};
107
104
  for (auto& err : e->get_array()) {
108
105
  couchbase::operations::analytics_response_payload::analytics_problem problem;
@@ -113,8 +110,7 @@ struct traits<couchbase::operations::analytics_response_payload> {
113
110
  result.meta_data.errors.emplace(problems);
114
111
  }
115
112
 
116
- const auto w = v.find("warnings");
117
- if (w != nullptr) {
113
+ if (const auto* w = v.find("warnings"); w != nullptr) {
118
114
  std::vector<couchbase::operations::analytics_response_payload::analytics_problem> problems{};
119
115
  for (auto& warn : w->get_array()) {
120
116
  couchbase::operations::analytics_response_payload::analytics_problem problem;
@@ -124,8 +120,8 @@ struct traits<couchbase::operations::analytics_response_payload> {
124
120
  }
125
121
  result.meta_data.warnings.emplace(problems);
126
122
  }
127
- const auto r = v.find("results");
128
- if (r != nullptr) {
123
+
124
+ if (const auto* r = v.find("results"); r != nullptr) {
129
125
  result.rows.reserve(result.meta_data.metrics.result_count);
130
126
  for (auto& row : r->get_array()) {
131
127
  result.rows.emplace_back(tao::json::to_string(row));
@@ -178,13 +174,13 @@ struct analytics_request {
178
174
  { "client_context_id", client_context_id },
179
175
  { "timeout", fmt::format("{}ms", timeout.count()) } };
180
176
  if (positional_parameters.empty()) {
181
- for (auto& param : named_parameters) {
182
- Expects(param.first.empty() == false);
183
- std::string key = param.first;
177
+ for (const auto& [name, value] : named_parameters) {
178
+ Expects(name.empty() == false);
179
+ std::string key = name;
184
180
  if (key[0] != '$') {
185
181
  key.insert(key.begin(), '$');
186
182
  }
187
- body[key] = param.second;
183
+ body[key] = value;
188
184
  }
189
185
  } else {
190
186
  body["args"] = positional_parameters;
@@ -204,14 +200,11 @@ struct analytics_request {
204
200
  }
205
201
  if (scope_qualifier) {
206
202
  body["query_context"] = scope_qualifier;
207
- } else if (scope_name) {
208
- if (bucket_name) {
209
- // for analytics bucket_name.scope_name is quoted as a single unit (unlike n1ql query)
210
- body["query_context"] = fmt::format("default:`{}.{}`", *bucket_name, *scope_name);
211
- }
203
+ } else if (scope_name && bucket_name) {
204
+ body["query_context"] = fmt::format("default:`{}`.`{}`", *bucket_name, *scope_name);
212
205
  }
213
- for (auto& param : raw) {
214
- body[param.first] = param.second;
206
+ for (const auto& [name, value] : raw) {
207
+ body[name] = value;
215
208
  }
216
209
  encoded.type = type;
217
210
  encoded.headers["content-type"] = "application/json";
@@ -232,16 +225,16 @@ struct analytics_request {
232
225
  };
233
226
 
234
227
  analytics_response
235
- make_response(error_context::analytics&& ctx, analytics_request& request, analytics_request::encoded_response_type&& encoded)
228
+ make_response(error_context::analytics&& ctx, const analytics_request& request, analytics_request::encoded_response_type&& encoded)
236
229
  {
237
- analytics_response response{ ctx };
230
+ analytics_response response{ std::move(ctx) };
238
231
  response.ctx.statement = request.statement;
239
232
  response.ctx.parameters = request.body_str;
240
233
  if (!response.ctx.ec) {
241
234
  try {
242
235
  response.payload = tao::json::from_string(encoded.body).as<analytics_response_payload>();
243
- } catch (tao::json::pegtl::parse_error& e) {
244
- response.ctx.ec = std::make_error_code(error::common_errc::parsing_failure);
236
+ } catch (const tao::json::pegtl::parse_error&) {
237
+ response.ctx.ec = error::common_errc::parsing_failure;
245
238
  return response;
246
239
  }
247
240
  Expects(response.payload.meta_data.client_context_id == request.client_context_id);
@@ -290,23 +283,23 @@ make_response(error_context::analytics&& ctx, analytics_request& request, analyt
290
283
  }
291
284
  }
292
285
  if (compilation_failure) {
293
- response.ctx.ec = std::make_error_code(error::analytics_errc::compilation_failure);
286
+ response.ctx.ec = error::analytics_errc::compilation_failure;
294
287
  } else if (link_not_found) {
295
- response.ctx.ec = std::make_error_code(error::analytics_errc::link_not_found);
288
+ response.ctx.ec = error::analytics_errc::link_not_found;
296
289
  } else if (dataset_not_found) {
297
- response.ctx.ec = std::make_error_code(error::analytics_errc::dataset_not_found);
290
+ response.ctx.ec = error::analytics_errc::dataset_not_found;
298
291
  } else if (dataverse_not_found) {
299
- response.ctx.ec = std::make_error_code(error::analytics_errc::dataverse_not_found);
292
+ response.ctx.ec = error::analytics_errc::dataverse_not_found;
300
293
  } else if (server_timeout) {
301
- response.ctx.ec = std::make_error_code(error::common_errc::unambiguous_timeout);
294
+ response.ctx.ec = error::common_errc::unambiguous_timeout;
302
295
  } else if (dataset_exists) {
303
- response.ctx.ec = std::make_error_code(error::analytics_errc::dataset_exists);
296
+ response.ctx.ec = error::analytics_errc::dataset_exists;
304
297
  } else if (dataverse_exists) {
305
- response.ctx.ec = std::make_error_code(error::analytics_errc::dataverse_exists);
298
+ response.ctx.ec = error::analytics_errc::dataverse_exists;
306
299
  } else if (job_queue_is_full) {
307
- response.ctx.ec = std::make_error_code(error::analytics_errc::job_queue_full);
300
+ response.ctx.ec = error::analytics_errc::job_queue_full;
308
301
  } else {
309
- response.ctx.ec = std::make_error_code(error::common_errc::internal_server_failure);
302
+ response.ctx.ec = error::common_errc::internal_server_failure;
310
303
  }
311
304
  }
312
305
  }
@@ -43,7 +43,7 @@ struct append_request {
43
43
  std::chrono::milliseconds timeout{ timeout_defaults::key_value_timeout };
44
44
  io::retry_context<io::retry_strategy::best_effort> retries{ false };
45
45
 
46
- [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, mcbp_context&&)
46
+ [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, mcbp_context&& /* context */) const
47
47
  {
48
48
  encoded.opaque(opaque);
49
49
  encoded.partition(partition);
@@ -57,9 +57,9 @@ struct append_request {
57
57
  };
58
58
 
59
59
  append_response
60
- make_response(error_context::key_value&& ctx, append_request& request, append_request::encoded_response_type&& encoded)
60
+ make_response(error_context::key_value&& ctx, const append_request& request, append_request::encoded_response_type&& encoded)
61
61
  {
62
- append_response response{ ctx };
62
+ append_response response{ std::move(ctx) };
63
63
  if (!response.ctx.ec) {
64
64
  response.cas = encoded.cas();
65
65
  response.token = encoded.body().token();
@@ -47,7 +47,7 @@ struct decrement_request {
47
47
  io::retry_context<io::retry_strategy::best_effort> retries{ false };
48
48
  bool preserve_expiry{ false };
49
49
 
50
- [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, mcbp_context&&)
50
+ [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, mcbp_context&& /* context */) const
51
51
  {
52
52
  encoded.opaque(opaque);
53
53
  encoded.partition(partition);
@@ -71,9 +71,9 @@ struct decrement_request {
71
71
  };
72
72
 
73
73
  decrement_response
74
- make_response(error_context::key_value&& ctx, decrement_request& request, decrement_request::encoded_response_type&& encoded)
74
+ make_response(error_context::key_value&& ctx, const decrement_request& request, decrement_request::encoded_response_type&& encoded)
75
75
  {
76
- decrement_response response{ ctx };
76
+ decrement_response response{ std::move(ctx) };
77
77
  if (!ctx.ec) {
78
78
  response.cas = encoded.cas();
79
79
  response.content = encoded.body().content();
@@ -43,7 +43,7 @@ struct exists_request {
43
43
  std::chrono::milliseconds timeout{ timeout_defaults::key_value_timeout };
44
44
  io::retry_context<io::retry_strategy::best_effort> retries{ false };
45
45
 
46
- [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, mcbp_context&&)
46
+ [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, mcbp_context&& /* context */) const
47
47
  {
48
48
  encoded.opaque(opaque);
49
49
  encoded.body().id(partition, id);
@@ -52,7 +52,7 @@ struct exists_request {
52
52
  };
53
53
 
54
54
  exists_response
55
- make_response(error_context::key_value&& ctx, exists_request& request, exists_request::encoded_response_type&& encoded)
55
+ make_response(error_context::key_value&& ctx, const exists_request& request, exists_request::encoded_response_type&& encoded)
56
56
  {
57
57
  exists_response response{ ctx, request.partition };
58
58
  if (!ctx.ec) {
@@ -42,7 +42,7 @@ struct get_request {
42
42
  std::chrono::milliseconds timeout{ timeout_defaults::key_value_timeout };
43
43
  io::retry_context<io::retry_strategy::best_effort> retries{ true };
44
44
 
45
- [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, mcbp_context&&)
45
+ [[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, mcbp_context&& /* context */) const
46
46
  {
47
47
  encoded.opaque(opaque);
48
48
  encoded.partition(partition);
@@ -52,9 +52,9 @@ struct get_request {
52
52
  };
53
53
 
54
54
  get_response
55
- make_response(error_context::key_value&& ctx, get_request&, get_request::encoded_response_type&& encoded)
55
+ make_response(error_context::key_value&& ctx, const get_request& /* request */, get_request::encoded_response_type&& encoded)
56
56
  {
57
- get_response response{ ctx };
57
+ get_response response{ std::move(ctx) };
58
58
  if (!response.ctx.ec) {
59
59
  response.value = std::move(encoded.body().value());
60
60
  response.cas = encoded.cas();