couchbase 3.4.1 → 3.4.3

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 (278) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/ext/couchbase/CMakeLists.txt +59 -7
  4. data/ext/couchbase/cmake/Documentation.cmake +0 -1
  5. data/ext/couchbase/cmake/OpenSSL.cmake +98 -3
  6. data/ext/couchbase/cmake/Testing.cmake +12 -4
  7. data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +4 -0
  8. data/ext/couchbase/cmake/build_config.hxx.in +3 -0
  9. data/ext/couchbase/core/bucket.cxx +3 -2
  10. data/ext/couchbase/core/bucket.hxx +9 -0
  11. data/ext/couchbase/core/cluster.hxx +17 -0
  12. data/ext/couchbase/core/cluster_options.cxx +2 -2
  13. data/ext/couchbase/core/cluster_options.hxx +4 -7
  14. data/ext/couchbase/core/{config_profile.cxx → cluster_options_fwd.hxx} +7 -6
  15. data/ext/couchbase/core/config_profile.hxx +2 -65
  16. data/ext/couchbase/core/config_profiles.cxx +79 -0
  17. data/ext/couchbase/core/config_profiles.hxx +56 -0
  18. data/ext/couchbase/core/error_context/search.hxx +1 -1
  19. data/ext/couchbase/core/impl/analytics.cxx +237 -0
  20. data/ext/couchbase/core/impl/boolean_field_query.cxx +40 -0
  21. data/ext/couchbase/core/impl/boolean_query.cxx +62 -0
  22. data/ext/couchbase/core/impl/cluster.cxx +2 -1
  23. data/ext/couchbase/core/impl/conjunction_query.cxx +51 -0
  24. data/ext/couchbase/core/impl/date_range.cxx +89 -0
  25. data/ext/couchbase/core/impl/date_range_facet.cxx +54 -0
  26. data/ext/couchbase/core/impl/date_range_facet_result.cxx +64 -0
  27. data/ext/couchbase/core/impl/date_range_query.cxx +125 -0
  28. data/ext/couchbase/core/impl/disjunction_query.cxx +51 -0
  29. data/ext/couchbase/core/impl/dns_srv_tracker.cxx +5 -3
  30. data/ext/couchbase/core/impl/encoded_search_facet.hxx +29 -0
  31. data/ext/couchbase/core/impl/encoded_search_query.hxx +29 -0
  32. data/ext/couchbase/core/impl/encoded_search_sort.hxx +29 -0
  33. data/ext/couchbase/core/impl/geo_bounding_box_query.cxx +46 -0
  34. data/ext/couchbase/core/impl/geo_distance_query.cxx +43 -0
  35. data/ext/couchbase/core/impl/geo_polygon_query.cxx +46 -0
  36. data/ext/couchbase/core/impl/internal_date_range_facet_result.cxx +80 -0
  37. data/ext/couchbase/core/impl/internal_date_range_facet_result.hxx +48 -0
  38. data/ext/couchbase/core/impl/internal_numeric_range_facet_result.cxx +80 -0
  39. data/ext/couchbase/core/impl/internal_numeric_range_facet_result.hxx +48 -0
  40. data/ext/couchbase/core/impl/internal_search_error_context.cxx +141 -0
  41. data/ext/couchbase/core/impl/internal_search_error_context.hxx +61 -0
  42. data/ext/couchbase/core/impl/internal_search_meta_data.cxx +60 -0
  43. data/ext/couchbase/core/impl/internal_search_meta_data.hxx +41 -0
  44. data/ext/couchbase/core/impl/internal_search_result.cxx +84 -0
  45. data/ext/couchbase/core/impl/internal_search_result.hxx +43 -0
  46. data/ext/couchbase/core/impl/internal_search_row.cxx +82 -0
  47. data/ext/couchbase/core/impl/internal_search_row.hxx +56 -0
  48. data/ext/couchbase/core/impl/internal_search_row_location.hxx +32 -0
  49. data/ext/couchbase/core/impl/internal_search_row_locations.cxx +137 -0
  50. data/ext/couchbase/core/impl/internal_search_row_locations.hxx +45 -0
  51. data/ext/couchbase/core/impl/internal_term_facet_result.cxx +80 -0
  52. data/ext/couchbase/core/impl/internal_term_facet_result.hxx +48 -0
  53. data/ext/couchbase/core/impl/match_all_query.cxx +35 -0
  54. data/ext/couchbase/core/impl/match_none_query.cxx +35 -0
  55. data/ext/couchbase/core/impl/match_phrase_query.cxx +43 -0
  56. data/ext/couchbase/core/impl/match_query.cxx +59 -0
  57. data/ext/couchbase/core/impl/numeric_range.cxx +49 -0
  58. data/ext/couchbase/core/impl/numeric_range_facet.cxx +54 -0
  59. data/ext/couchbase/core/impl/numeric_range_facet_result.cxx +64 -0
  60. data/ext/couchbase/core/impl/numeric_range_query.cxx +56 -0
  61. data/ext/couchbase/core/impl/phrase_query.cxx +42 -0
  62. data/ext/couchbase/core/impl/prefix_query.cxx +40 -0
  63. data/ext/couchbase/core/impl/query.cxx +5 -5
  64. data/ext/couchbase/core/impl/query_string_query.cxx +37 -0
  65. data/ext/couchbase/core/impl/regexp_query.cxx +40 -0
  66. data/ext/couchbase/core/impl/search.cxx +191 -0
  67. data/ext/couchbase/core/impl/search_error_context.cxx +147 -0
  68. data/ext/couchbase/core/impl/search_meta_data.cxx +46 -0
  69. data/ext/couchbase/core/impl/search_result.cxx +66 -0
  70. data/ext/couchbase/core/impl/search_row.cxx +74 -0
  71. data/ext/couchbase/core/impl/search_row_location.cxx +64 -0
  72. data/ext/couchbase/core/impl/search_row_locations.cxx +66 -0
  73. data/ext/couchbase/core/impl/search_sort_field.cxx +104 -0
  74. data/ext/couchbase/core/impl/search_sort_id.cxx +43 -0
  75. data/ext/couchbase/core/impl/search_sort_score.cxx +43 -0
  76. data/ext/couchbase/core/impl/term_facet.cxx +36 -0
  77. data/ext/couchbase/core/impl/term_facet_result.cxx +64 -0
  78. data/ext/couchbase/core/impl/term_query.cxx +56 -0
  79. data/ext/couchbase/core/impl/term_range_query.cxx +57 -0
  80. data/ext/couchbase/core/impl/wildcard_query.cxx +40 -0
  81. data/ext/couchbase/core/io/dns_client.cxx +225 -0
  82. data/ext/couchbase/core/io/dns_client.hxx +19 -188
  83. data/ext/couchbase/core/io/http_context.hxx +1 -1
  84. data/ext/couchbase/core/io/http_session.hxx +10 -0
  85. data/ext/couchbase/core/io/http_session_manager.hxx +5 -3
  86. data/ext/couchbase/core/io/mcbp_session.cxx +28 -1
  87. data/ext/couchbase/core/io/retry_orchestrator.hxx +3 -2
  88. data/ext/couchbase/core/json_string.hxx +5 -0
  89. data/ext/couchbase/core/meta/version.cxx +18 -4
  90. data/ext/couchbase/core/mozilla_ca_bundle.hxx +39 -0
  91. data/ext/couchbase/core/operations/document_analytics.cxx +1 -0
  92. data/ext/couchbase/core/operations/document_analytics.hxx +1 -0
  93. data/ext/couchbase/core/operations/document_append.hxx +1 -1
  94. data/ext/couchbase/core/operations/document_decrement.hxx +1 -1
  95. data/ext/couchbase/core/operations/document_exists.hxx +1 -1
  96. data/ext/couchbase/core/operations/document_get.hxx +1 -1
  97. data/ext/couchbase/core/operations/document_get_and_lock.hxx +1 -1
  98. data/ext/couchbase/core/operations/document_get_and_touch.hxx +1 -1
  99. data/ext/couchbase/core/operations/document_get_projected.hxx +1 -1
  100. data/ext/couchbase/core/operations/document_increment.hxx +1 -1
  101. data/ext/couchbase/core/operations/document_insert.hxx +1 -1
  102. data/ext/couchbase/core/operations/document_lookup_in.hxx +1 -1
  103. data/ext/couchbase/core/operations/document_mutate_in.hxx +1 -1
  104. data/ext/couchbase/core/operations/document_prepend.hxx +1 -1
  105. data/ext/couchbase/core/operations/document_query.cxx +2 -0
  106. data/ext/couchbase/core/operations/document_query.hxx +6 -0
  107. data/ext/couchbase/core/operations/document_remove.hxx +1 -1
  108. data/ext/couchbase/core/operations/document_replace.hxx +1 -1
  109. data/ext/couchbase/core/operations/document_search.cxx +4 -1
  110. data/ext/couchbase/core/operations/document_search.hxx +2 -1
  111. data/ext/couchbase/core/operations/document_touch.hxx +1 -1
  112. data/ext/couchbase/core/operations/document_unlock.hxx +1 -1
  113. data/ext/couchbase/core/operations/document_upsert.hxx +1 -1
  114. data/ext/couchbase/core/operations/document_view.hxx +1 -0
  115. data/ext/couchbase/core/protocol/client_request.hxx +11 -2
  116. data/ext/couchbase/core/public_fwd.hxx +21 -0
  117. data/ext/couchbase/core/tls_verify_mode.hxx +26 -0
  118. data/ext/couchbase/core/topology/configuration.cxx +15 -2
  119. data/ext/couchbase/core/topology/configuration.hxx +5 -1
  120. data/ext/couchbase/core/transactions/active_transaction_record.hxx +2 -2
  121. data/ext/couchbase/core/transactions/attempt_context_impl.cxx +3 -0
  122. data/ext/couchbase/core/transactions/attempt_context_impl.hxx +1 -1
  123. data/ext/couchbase/core/transactions/attempt_context_testing_hooks.cxx +93 -0
  124. data/ext/couchbase/core/transactions/attempt_context_testing_hooks.hxx +48 -75
  125. data/ext/couchbase/core/transactions/cleanup_testing_hooks.cxx +52 -0
  126. data/ext/couchbase/core/transactions/cleanup_testing_hooks.hxx +17 -31
  127. data/ext/couchbase/core/transactions/exceptions.hxx +12 -9
  128. data/ext/couchbase/core/transactions/internal/transaction_context.hxx +12 -12
  129. data/ext/couchbase/core/transactions/internal/transactions_cleanup.hxx +7 -1
  130. data/ext/couchbase/core/transactions/transaction_context.cxx +1 -0
  131. data/ext/couchbase/core/transactions/transactions_cleanup.cxx +144 -155
  132. data/ext/couchbase/core/utils/connection_string.cxx +27 -3
  133. data/ext/couchbase/core/utils/connection_string.hxx +3 -3
  134. data/ext/couchbase/core/utils/json.cxx +4 -1
  135. data/ext/couchbase/couchbase/analytics_error_context.hxx +143 -0
  136. data/ext/couchbase/couchbase/analytics_meta_data.hxx +155 -0
  137. data/ext/couchbase/couchbase/analytics_metrics.hxx +163 -0
  138. data/ext/couchbase/couchbase/analytics_options.hxx +359 -0
  139. data/ext/couchbase/couchbase/analytics_result.hxx +102 -0
  140. data/ext/couchbase/couchbase/analytics_scan_consistency.hxx +46 -0
  141. data/ext/couchbase/couchbase/analytics_status.hxx +41 -0
  142. data/ext/couchbase/couchbase/analytics_warning.hxx +85 -0
  143. data/ext/couchbase/couchbase/behavior_options.hxx +10 -1
  144. data/ext/couchbase/couchbase/boolean_field_query.hxx +77 -0
  145. data/ext/couchbase/couchbase/boolean_query.hxx +223 -0
  146. data/ext/couchbase/couchbase/cluster.hxx +75 -1
  147. data/ext/couchbase/couchbase/conjunction_query.hxx +88 -0
  148. data/ext/couchbase/couchbase/date_range.hxx +69 -0
  149. data/ext/couchbase/couchbase/date_range_facet.hxx +56 -0
  150. data/ext/couchbase/couchbase/date_range_facet_result.hxx +55 -0
  151. data/ext/couchbase/couchbase/date_range_query.hxx +265 -0
  152. data/ext/couchbase/couchbase/disjunction_query.hxx +109 -0
  153. data/ext/couchbase/couchbase/doc_id_query.hxx +111 -0
  154. data/ext/couchbase/couchbase/error_context.hxx +7 -6
  155. data/ext/couchbase/couchbase/fmt/analytics_scan_consistency.hxx +52 -0
  156. data/ext/couchbase/couchbase/fmt/analytics_status.hxx +76 -0
  157. data/ext/couchbase/couchbase/fmt/search_scan_consistency.hxx +49 -0
  158. data/ext/couchbase/couchbase/geo_bounding_box_query.hxx +107 -0
  159. data/ext/couchbase/couchbase/geo_distance_query.hxx +109 -0
  160. data/ext/couchbase/couchbase/geo_point.hxx +32 -0
  161. data/ext/couchbase/couchbase/geo_polygon_query.hxx +85 -0
  162. data/ext/couchbase/couchbase/highlight_style.hxx +45 -0
  163. data/ext/couchbase/couchbase/match_all_query.hxx +43 -0
  164. data/ext/couchbase/couchbase/match_none_query.hxx +43 -0
  165. data/ext/couchbase/couchbase/match_operator.hxx +45 -0
  166. data/ext/couchbase/couchbase/match_phrase_query.hxx +108 -0
  167. data/ext/couchbase/couchbase/match_query.hxx +163 -0
  168. data/ext/couchbase/couchbase/numeric_range.hxx +58 -0
  169. data/ext/couchbase/couchbase/numeric_range_facet.hxx +56 -0
  170. data/ext/couchbase/couchbase/numeric_range_facet_result.hxx +55 -0
  171. data/ext/couchbase/couchbase/numeric_range_query.hxx +143 -0
  172. data/ext/couchbase/couchbase/phrase_query.hxx +93 -0
  173. data/ext/couchbase/couchbase/prefix_query.hxx +82 -0
  174. data/ext/couchbase/couchbase/query_options.hxx +0 -1
  175. data/ext/couchbase/couchbase/query_string_query.hxx +72 -0
  176. data/ext/couchbase/couchbase/regexp_query.hxx +82 -0
  177. data/ext/couchbase/couchbase/scope.hxx +73 -0
  178. data/ext/couchbase/couchbase/search_date_range.hxx +68 -0
  179. data/ext/couchbase/couchbase/search_error_context.hxx +138 -0
  180. data/ext/couchbase/couchbase/search_facet.hxx +60 -0
  181. data/ext/couchbase/couchbase/search_facet_result.hxx +50 -0
  182. data/ext/couchbase/couchbase/search_meta_data.hxx +85 -0
  183. data/ext/couchbase/couchbase/search_metrics.hxx +127 -0
  184. data/ext/couchbase/couchbase/search_numeric_range.hxx +69 -0
  185. data/ext/couchbase/couchbase/search_options.hxx +509 -0
  186. data/ext/couchbase/couchbase/search_query.hxx +69 -0
  187. data/ext/couchbase/couchbase/search_result.hxx +77 -0
  188. data/ext/couchbase/couchbase/search_row.hxx +104 -0
  189. data/ext/couchbase/couchbase/search_row_location.hxx +55 -0
  190. data/ext/couchbase/couchbase/search_row_locations.hxx +86 -0
  191. data/ext/couchbase/couchbase/search_scan_consistency.hxx +34 -0
  192. data/ext/couchbase/couchbase/search_sort.hxx +58 -0
  193. data/ext/couchbase/couchbase/search_sort_field.hxx +117 -0
  194. data/ext/couchbase/couchbase/search_sort_field_missing.hxx +26 -0
  195. data/ext/couchbase/couchbase/search_sort_field_mode.hxx +27 -0
  196. data/ext/couchbase/couchbase/search_sort_field_type.hxx +28 -0
  197. data/ext/couchbase/couchbase/search_sort_id.hxx +60 -0
  198. data/ext/couchbase/couchbase/search_sort_score.hxx +60 -0
  199. data/ext/couchbase/couchbase/search_term_range.hxx +51 -0
  200. data/ext/couchbase/couchbase/security_options.hxx +3 -0
  201. data/ext/couchbase/couchbase/term_facet.hxx +48 -0
  202. data/ext/couchbase/couchbase/term_facet_result.hxx +55 -0
  203. data/ext/couchbase/couchbase/term_query.hxx +151 -0
  204. data/ext/couchbase/couchbase/term_range_query.hxx +142 -0
  205. data/ext/couchbase/couchbase/tracing/request_span.hxx +63 -0
  206. data/ext/couchbase/couchbase/tracing/request_tracer.hxx +2 -40
  207. data/ext/couchbase/couchbase/transactions/async_attempt_context.hxx +83 -4
  208. data/ext/couchbase/couchbase/transactions/attempt_context.hxx +68 -1
  209. data/ext/couchbase/couchbase/transactions/transaction_get_result.hxx +2 -0
  210. data/ext/couchbase/couchbase/transactions/transaction_keyspace.hxx +11 -1
  211. data/ext/couchbase/couchbase/transactions/transaction_options.hxx +79 -8
  212. data/ext/couchbase/couchbase/transactions/transaction_query_options.hxx +128 -15
  213. data/ext/couchbase/couchbase/transactions/transaction_query_result.hxx +4 -0
  214. data/ext/couchbase/couchbase/transactions/transaction_result.hxx +1 -1
  215. data/ext/couchbase/couchbase/transactions/transactions_cleanup_config.hxx +5 -3
  216. data/ext/couchbase/couchbase/transactions/transactions_config.hxx +9 -5
  217. data/ext/couchbase/couchbase/transactions/transactions_query_config.hxx +6 -3
  218. data/ext/couchbase/couchbase/transactions.hxx +34 -1
  219. data/ext/couchbase/couchbase/wildcard_query.hxx +83 -0
  220. data/ext/couchbase/test/CMakeLists.txt +8 -7
  221. data/ext/couchbase/test/benchmark_helper_integration.hxx +2 -2
  222. data/ext/couchbase/test/test_helper.hxx +6 -6
  223. data/ext/couchbase/test/test_integration_analytics.cxx +314 -16
  224. data/ext/couchbase/test/test_integration_collections.cxx +7 -3
  225. data/ext/couchbase/test/test_integration_connect.cxx +7 -3
  226. data/ext/couchbase/test/test_integration_crud.cxx +19 -2
  227. data/ext/couchbase/test/test_integration_diagnostics.cxx +11 -5
  228. data/ext/couchbase/test/test_integration_durability.cxx +12 -7
  229. data/ext/couchbase/test/test_integration_examples.cxx +324 -11
  230. data/ext/couchbase/test/test_integration_management.cxx +162 -94
  231. data/ext/couchbase/test/test_integration_query.cxx +68 -10
  232. data/ext/couchbase/test/test_integration_range_scan.cxx +12 -12
  233. data/ext/couchbase/test/test_integration_read_replica.cxx +48 -11
  234. data/ext/couchbase/test/test_integration_search.cxx +621 -0
  235. data/ext/couchbase/test/test_integration_subdoc.cxx +62 -11
  236. data/ext/couchbase/test/test_integration_tracer.cxx +5 -0
  237. data/ext/couchbase/test/test_integration_transcoders.cxx +13 -5
  238. data/ext/couchbase/test/{test_transaction_transaction_context.cxx → test_transaction_context.cxx} +1 -1
  239. data/ext/couchbase/test/test_transaction_examples.cxx +195 -0
  240. data/ext/couchbase/test/{test_transaction_transaction_simple.cxx → test_transaction_simple.cxx} +90 -5
  241. data/ext/couchbase/test/{test_transaction_transaction_simple_async.cxx → test_transaction_simple_async.cxx} +19 -21
  242. data/ext/couchbase/test/test_unit_config_profiles.cxx +13 -13
  243. data/ext/couchbase/test/test_unit_connection_string.cxx +35 -0
  244. data/ext/couchbase/test/test_unit_json_transcoder.cxx +4 -0
  245. data/ext/couchbase/test/test_unit_search.cxx +427 -0
  246. data/ext/couchbase/test/test_unit_transaction_utils.cxx +10 -1
  247. data/ext/couchbase/test/test_unit_utils.cxx +8 -4
  248. data/ext/couchbase/third_party/snappy/CMakeLists.txt +150 -27
  249. data/ext/couchbase/third_party/snappy/cmake/config.h.in +28 -24
  250. data/ext/couchbase/third_party/snappy/snappy-internal.h +189 -25
  251. data/ext/couchbase/third_party/snappy/snappy-sinksource.cc +26 -9
  252. data/ext/couchbase/third_party/snappy/snappy-sinksource.h +11 -11
  253. data/ext/couchbase/third_party/snappy/snappy-stubs-internal.cc +1 -1
  254. data/ext/couchbase/third_party/snappy/snappy-stubs-internal.h +227 -308
  255. data/ext/couchbase/third_party/snappy/snappy-stubs-public.h.in +0 -11
  256. data/ext/couchbase/third_party/snappy/snappy.cc +1176 -410
  257. data/ext/couchbase/third_party/snappy/snappy.h +19 -4
  258. data/ext/couchbase.cxx +85 -22
  259. data/ext/revisions.rb +3 -3
  260. data/lib/couchbase/authenticator.rb +0 -1
  261. data/lib/couchbase/cluster.rb +13 -13
  262. data/lib/couchbase/cluster_registry.rb +7 -2
  263. data/lib/couchbase/config_profiles.rb +1 -1
  264. data/lib/couchbase/configuration.rb +3 -4
  265. data/lib/couchbase/json_transcoder.rb +12 -5
  266. data/lib/couchbase/management/collection_query_index_manager.rb +54 -15
  267. data/lib/couchbase/management/query_index_manager.rb +70 -5
  268. data/lib/couchbase/options.rb +85 -2
  269. data/lib/couchbase/raw_binary_transcoder.rb +37 -0
  270. data/lib/couchbase/raw_json_transcoder.rb +38 -0
  271. data/lib/couchbase/raw_string_transcoder.rb +40 -0
  272. data/lib/couchbase/search_options.rb +163 -240
  273. data/lib/couchbase/transcoder_flags.rb +62 -0
  274. data/lib/couchbase/version.rb +1 -1
  275. metadata +151 -12
  276. data/ext/couchbase/core/CMakeLists.txt +0 -0
  277. /data/ext/couchbase/test/{test_transaction_transaction_public_async_api.cxx → test_transaction_public_async_api.cxx} +0 -0
  278. /data/ext/couchbase/test/{test_transaction_transaction_public_blocking_api.cxx → test_transaction_public_blocking_api.cxx} +0 -0
@@ -17,10 +17,12 @@
17
17
 
18
18
  #include "version.hxx"
19
19
 
20
+ #include "core/mozilla_ca_bundle.hxx"
20
21
  #include "core/transactions/forward_compat.hxx"
21
22
  #include "core/utils/join_strings.hxx"
22
23
  #include "core/utils/json.hxx"
23
24
 
25
+ #include <couchbase/build_config.hxx>
24
26
  #include <couchbase/build_info.hxx>
25
27
  #include <couchbase/build_version.hxx>
26
28
 
@@ -76,7 +78,7 @@ sdk_build_info()
76
78
  info["link_libraries"] = COUCHBASE_CXX_CLIENT_LINK_LIBRARIES;
77
79
  info["link_options"] = COUCHBASE_CXX_CLIENT_LINK_OPTIONS;
78
80
  info["static_stdlib"] =
79
- #if defined(STATIC_STDLIB)
81
+ #if defined(COUCHBASE_CXX_CLIENT_STATIC_STDLIB)
80
82
  "true"
81
83
  #else
82
84
  "false"
@@ -84,7 +86,7 @@ sdk_build_info()
84
86
  ;
85
87
  info["post_linked_openssl"] = COUCHBASE_CXX_CLIENT_POST_LINKED_OPENSSL;
86
88
  info["static_openssl"] =
87
- #if defined(STATIC_OPENSSL)
89
+ #if defined(COUCHBASE_CXX_CLIENT_STATIC_OPENSSL)
88
90
  "true"
89
91
  #else
90
92
  "false"
@@ -112,8 +114,19 @@ sdk_build_info()
112
114
  }
113
115
  }
114
116
  #endif
117
+
118
+ #if defined(COUCHBASE_CXX_CLIENT_EMBED_MOZILLA_CA_BUNDLE)
119
+ info["mozilla_ca_bundle_embedded"] = "true";
120
+ info["mozilla_ca_bundle_sha256"] = COUCHBASE_CXX_CLIENT_MOZILLA_CA_BUNDLE_SHA256;
121
+ info["mozilla_ca_bundle_date"] = COUCHBASE_CXX_CLIENT_MOZILLA_CA_BUNDLE_DATE;
122
+ #else
123
+ info["mozilla_ca_bundle_embedded"] = "false";
124
+ #endif
125
+ info["mozilla_ca_bundle_size"] = std::to_string(default_ca::mozilla_ca_certs().size());
115
126
  info["openssl_default_cert_dir"] = X509_get_default_cert_dir();
116
127
  info["openssl_default_cert_file"] = X509_get_default_cert_file();
128
+ info["openssl_default_cert_dir_env"] = X509_get_default_cert_dir_env();
129
+ info["openssl_default_cert_file_env"] = X509_get_default_cert_file_env();
117
130
  info["openssl_ssl_interface_include_directories"] = OPENSSL_SSL_INTERFACE_INCLUDE_DIRECTORIES;
118
131
  info["openssl_ssl_interface_link_libraries"] = OPENSSL_SSL_INTERFACE_LINK_LIBRARIES;
119
132
  info["openssl_ssl_imported_location"] = OPENSSL_SSL_IMPORTED_LOCATION;
@@ -138,9 +151,10 @@ sdk_build_info_json()
138
151
  {
139
152
  tao::json::value info;
140
153
  for (const auto& [name, value] : sdk_build_info()) {
141
- if (name == "version_major" || name == "version_minor" || name == "version_patch" || name == "version_build") {
154
+ if (name == "version_major" || name == "version_minor" || name == "version_patch" || name == "version_build" ||
155
+ name == "mozilla_ca_bundle_size") {
142
156
  info[name] = std::stoi(value);
143
- } else if (name == "snapshot" || name == "static_stdlib" || name == "static_openssl") {
157
+ } else if (name == "snapshot" || name == "static_stdlib" || name == "static_openssl" || name == "mozilla_ca_bundle_embedded") {
144
158
  info[name] = value == "true";
145
159
  } else {
146
160
  info[name] = value;
@@ -0,0 +1,39 @@
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 <array>
21
+ #include <gsl/span>
22
+ #include <string_view>
23
+
24
+ namespace couchbase::core::default_ca
25
+ {
26
+ struct certificate {
27
+ std::string_view authority;
28
+ std::string_view body;
29
+ };
30
+
31
+ auto
32
+ mozilla_ca_certs() -> gsl::span<const certificate>;
33
+
34
+ auto
35
+ mozilla_ca_certs_date() -> std::string_view;
36
+
37
+ auto
38
+ mozilla_ca_certs_sha256() -> std::string_view;
39
+ } // namespace couchbase::core::default_ca
@@ -16,6 +16,7 @@
16
16
  */
17
17
 
18
18
  #include "document_analytics.hxx"
19
+ #include "core/cluster_options.hxx"
19
20
  #include "core/logger/logger.hxx"
20
21
  #include "core/utils/duration_parser.hxx"
21
22
  #include "core/utils/json.hxx"
@@ -24,6 +24,7 @@
24
24
  #include "core/io/http_traits.hxx"
25
25
  #include "core/json_string.hxx"
26
26
  #include "core/platform/uuid.h"
27
+ #include "core/public_fwd.hxx"
27
28
  #include "core/timeout_defaults.hxx"
28
29
 
29
30
  namespace couchbase::core::operations
@@ -25,8 +25,8 @@
25
25
  #include "core/operations/operation_traits.hxx"
26
26
  #include "core/protocol/client_request.hxx"
27
27
  #include "core/protocol/cmd_append.hxx"
28
+ #include "core/public_fwd.hxx"
28
29
  #include "core/timeout_defaults.hxx"
29
- #include "couchbase/tracing/request_tracer.hxx"
30
30
 
31
31
  #include <couchbase/durability_level.hxx>
32
32
 
@@ -25,8 +25,8 @@
25
25
  #include "core/operations/operation_traits.hxx"
26
26
  #include "core/protocol/client_request.hxx"
27
27
  #include "core/protocol/cmd_decrement.hxx"
28
+ #include "core/public_fwd.hxx"
28
29
  #include "core/timeout_defaults.hxx"
29
- #include "couchbase/tracing/request_tracer.hxx"
30
30
 
31
31
  #include <couchbase/durability_level.hxx>
32
32
 
@@ -23,8 +23,8 @@
23
23
  #include "core/io/retry_context.hxx"
24
24
  #include "core/protocol/client_request.hxx"
25
25
  #include "core/protocol/cmd_get_meta.hxx"
26
+ #include "core/public_fwd.hxx"
26
27
  #include "core/timeout_defaults.hxx"
27
- #include "couchbase/tracing/request_tracer.hxx"
28
28
 
29
29
  namespace couchbase::core::operations
30
30
  {
@@ -23,8 +23,8 @@
23
23
  #include "core/io/retry_context.hxx"
24
24
  #include "core/protocol/client_request.hxx"
25
25
  #include "core/protocol/cmd_get.hxx"
26
+ #include "core/public_fwd.hxx"
26
27
  #include "core/timeout_defaults.hxx"
27
- #include "couchbase/tracing/request_tracer.hxx"
28
28
 
29
29
  namespace couchbase::core::operations
30
30
  {
@@ -23,8 +23,8 @@
23
23
  #include "core/io/retry_context.hxx"
24
24
  #include "core/protocol/client_request.hxx"
25
25
  #include "core/protocol/cmd_get_and_lock.hxx"
26
+ #include "core/public_fwd.hxx"
26
27
  #include "core/timeout_defaults.hxx"
27
- #include "couchbase/tracing/request_tracer.hxx"
28
28
 
29
29
  namespace couchbase::core::operations
30
30
  {
@@ -24,8 +24,8 @@
24
24
  #include "core/io/retry_context.hxx"
25
25
  #include "core/protocol/client_request.hxx"
26
26
  #include "core/protocol/cmd_get_and_touch.hxx"
27
+ #include "core/public_fwd.hxx"
27
28
  #include "core/timeout_defaults.hxx"
28
- #include "couchbase/tracing/request_tracer.hxx"
29
29
 
30
30
  namespace couchbase::core::operations
31
31
  {
@@ -23,8 +23,8 @@
23
23
  #include "core/io/retry_context.hxx"
24
24
  #include "core/protocol/client_request.hxx"
25
25
  #include "core/protocol/cmd_lookup_in.hxx"
26
+ #include "core/public_fwd.hxx"
26
27
  #include "core/timeout_defaults.hxx"
27
- #include "couchbase/tracing/request_tracer.hxx"
28
28
 
29
29
  namespace couchbase::core::operations
30
30
  {
@@ -25,8 +25,8 @@
25
25
  #include "core/operations/operation_traits.hxx"
26
26
  #include "core/protocol/client_request.hxx"
27
27
  #include "core/protocol/cmd_increment.hxx"
28
+ #include "core/public_fwd.hxx"
28
29
  #include "core/timeout_defaults.hxx"
29
- #include "couchbase/tracing/request_tracer.hxx"
30
30
 
31
31
  #include <couchbase/durability_level.hxx>
32
32
 
@@ -25,8 +25,8 @@
25
25
  #include "core/operations/operation_traits.hxx"
26
26
  #include "core/protocol/client_request.hxx"
27
27
  #include "core/protocol/cmd_insert.hxx"
28
+ #include "core/public_fwd.hxx"
28
29
  #include "core/timeout_defaults.hxx"
29
- #include "couchbase/tracing/request_tracer.hxx"
30
30
 
31
31
  #include <couchbase/durability_level.hxx>
32
32
 
@@ -24,8 +24,8 @@
24
24
  #include "core/io/retry_context.hxx"
25
25
  #include "core/protocol/client_request.hxx"
26
26
  #include "core/protocol/cmd_lookup_in.hxx"
27
+ #include "core/public_fwd.hxx"
27
28
  #include "core/timeout_defaults.hxx"
28
- #include "couchbase/tracing/request_tracer.hxx"
29
29
 
30
30
  #include <couchbase/lookup_in_result.hxx>
31
31
 
@@ -26,8 +26,8 @@
26
26
  #include "core/operations/operation_traits.hxx"
27
27
  #include "core/protocol/client_request.hxx"
28
28
  #include "core/protocol/cmd_mutate_in.hxx"
29
+ #include "core/public_fwd.hxx"
29
30
  #include "core/timeout_defaults.hxx"
30
- #include "couchbase/tracing/request_tracer.hxx"
31
31
 
32
32
  #include <couchbase/durability_level.hxx>
33
33
  #include <couchbase/mutate_in_result.hxx>
@@ -25,8 +25,8 @@
25
25
  #include "core/operations/operation_traits.hxx"
26
26
  #include "core/protocol/client_request.hxx"
27
27
  #include "core/protocol/cmd_prepend.hxx"
28
+ #include "core/public_fwd.hxx"
28
29
  #include "core/timeout_defaults.hxx"
29
- #include "couchbase/tracing/request_tracer.hxx"
30
30
 
31
31
  #include <couchbase/durability_level.hxx>
32
32
 
@@ -16,6 +16,8 @@
16
16
  */
17
17
 
18
18
  #include "document_query.hxx"
19
+
20
+ #include "core/cluster_options.hxx"
19
21
  #include "core/logger/logger.hxx"
20
22
  #include "core/operations/management/error_utils.hxx"
21
23
  #include "core/utils/duration_parser.hxx"
@@ -23,6 +23,7 @@
23
23
  #include "core/io/http_traits.hxx"
24
24
  #include "core/json_string.hxx"
25
25
  #include "core/platform/uuid.h"
26
+ #include "core/public_fwd.hxx"
26
27
  #include "core/timeout_defaults.hxx"
27
28
 
28
29
  #include "couchbase/query_profile.hxx"
@@ -30,6 +31,11 @@
30
31
 
31
32
  #include <couchbase/mutation_token.hxx>
32
33
 
34
+ namespace couchbase::tracing
35
+ {
36
+ class request_span;
37
+ }
38
+
33
39
  namespace couchbase::core::operations
34
40
  {
35
41
  struct query_response {
@@ -25,8 +25,8 @@
25
25
  #include "core/operations/operation_traits.hxx"
26
26
  #include "core/protocol/client_request.hxx"
27
27
  #include "core/protocol/cmd_remove.hxx"
28
+ #include "core/public_fwd.hxx"
28
29
  #include "core/timeout_defaults.hxx"
29
- #include "couchbase/tracing/request_tracer.hxx"
30
30
 
31
31
  #include <couchbase/durability_level.hxx>
32
32
 
@@ -25,8 +25,8 @@
25
25
  #include "core/operations/operation_traits.hxx"
26
26
  #include "core/protocol/client_request.hxx"
27
27
  #include "core/protocol/cmd_replace.hxx"
28
+ #include "core/public_fwd.hxx"
28
29
  #include "core/timeout_defaults.hxx"
29
- #include "couchbase/tracing/request_tracer.hxx"
30
30
 
31
31
  #include <couchbase/durability_level.hxx>
32
32
 
@@ -17,6 +17,7 @@
17
17
 
18
18
  #include "document_search.hxx"
19
19
 
20
+ #include "core/cluster_options.hxx"
20
21
  #include "core/logger/logger.hxx"
21
22
  #include "core/utils/json.hxx"
22
23
 
@@ -31,9 +32,11 @@ search_request::encode_to(search_request::encoded_request_type& encoded, http_co
31
32
  {
32
33
  auto body = tao::json::value{
33
34
  { "query", utils::json::parse(query) },
34
- { "explain", explain },
35
35
  { "ctl", { { "timeout", encoded.timeout.count() } } },
36
36
  };
37
+ if (explain) {
38
+ body["explain"] = *explain;
39
+ }
37
40
  if (limit) {
38
41
  body["size"] = *limit;
39
42
  }
@@ -23,6 +23,7 @@
23
23
  #include "core/io/http_traits.hxx"
24
24
  #include "core/json_string.hxx"
25
25
  #include "core/platform/uuid.h"
26
+ #include "core/public_fwd.hxx"
26
27
  #include "core/search_highlight_style.hxx"
27
28
  #include "core/search_scan_consistency.hxx"
28
29
  #include "core/timeout_defaults.hxx"
@@ -120,7 +121,7 @@ struct search_request {
120
121
 
121
122
  std::optional<std::uint32_t> limit{};
122
123
  std::optional<std::uint32_t> skip{};
123
- bool explain{ false };
124
+ std::optional<bool> explain{ false };
124
125
  bool disable_scoring{ false };
125
126
  /**
126
127
  * UNCOMMITTED: If set to true, will include the vector of search_location in rows.
@@ -23,8 +23,8 @@
23
23
  #include "core/io/retry_context.hxx"
24
24
  #include "core/protocol/client_request.hxx"
25
25
  #include "core/protocol/cmd_touch.hxx"
26
+ #include "core/public_fwd.hxx"
26
27
  #include "core/timeout_defaults.hxx"
27
- #include "couchbase/tracing/request_tracer.hxx"
28
28
 
29
29
  namespace couchbase::core::operations
30
30
  {
@@ -23,8 +23,8 @@
23
23
  #include "core/io/retry_context.hxx"
24
24
  #include "core/protocol/client_request.hxx"
25
25
  #include "core/protocol/cmd_unlock.hxx"
26
+ #include "core/public_fwd.hxx"
26
27
  #include "core/timeout_defaults.hxx"
27
- #include "couchbase/tracing/request_tracer.hxx"
28
28
 
29
29
  namespace couchbase::core::operations
30
30
  {
@@ -25,8 +25,8 @@
25
25
  #include "core/operations/operation_traits.hxx"
26
26
  #include "core/protocol/client_request.hxx"
27
27
  #include "core/protocol/cmd_upsert.hxx"
28
+ #include "core/public_fwd.hxx"
28
29
  #include "core/timeout_defaults.hxx"
29
- #include "couchbase/tracing/request_tracer.hxx"
30
30
 
31
31
  #include <couchbase/durability_level.hxx>
32
32
 
@@ -23,6 +23,7 @@
23
23
  #include "core/io/http_message.hxx"
24
24
  #include "core/io/http_traits.hxx"
25
25
  #include "core/platform/uuid.h"
26
+ #include "core/public_fwd.hxx"
26
27
  #include "core/timeout_defaults.hxx"
27
28
  #include "core/view_on_error.hxx"
28
29
  #include "core/view_scan_consistency.hxx"
@@ -29,6 +29,8 @@
29
29
  #include <cstring>
30
30
  #include <gsl/util>
31
31
 
32
+ #include <iostream>
33
+
32
34
  namespace couchbase::core::protocol
33
35
  {
34
36
  std::pair<bool, std::uint32_t>
@@ -110,10 +112,17 @@ class client_request
110
112
  private:
111
113
  [[nodiscard]] std::vector<std::byte> generate_payload(bool try_to_compress)
112
114
  {
113
- std::vector<std::byte> payload(header_size + body_.size());
115
+ // SA: for some reason GCC 8.5.0 on CentOS 8 sees here null-pointer dereference
116
+ #if defined(__GNUC__) && __GNUC__ == 8
117
+ #pragma GCC diagnostic push
118
+ #pragma GCC diagnostic ignored "-Wnull-dereference"
119
+ #endif
120
+ std::vector<std::byte> payload(header_size + body_.size(), std::byte{});
114
121
  payload[0] = static_cast<std::byte>(magic_);
115
122
  payload[1] = static_cast<std::byte>(opcode_);
116
-
123
+ #if defined(__GNUC__) && __GNUC__ == 8
124
+ #pragma GCC diagnostic pop
125
+ #endif
117
126
  const auto& framing_extras = body_.framing_extras();
118
127
 
119
128
  std::uint16_t key_size = gsl::narrow_cast<std::uint16_t>(body_.key().size());
@@ -0,0 +1,21 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2022-Present Couchbase, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
6
+ * except in compliance with the License. You may obtain a copy of the License at
7
+ *
8
+ * https://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software distributed under
11
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
12
+ * ANY KIND, either express or implied. See the License for the specific language governing
13
+ * permissions and limitations under the License.
14
+ */
15
+
16
+ #pragma once
17
+
18
+ namespace couchbase::tracing
19
+ {
20
+ class request_span;
21
+ } // namespace couchbase::tracing
@@ -0,0 +1,26 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2020-2021 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
+ namespace couchbase::core
21
+ {
22
+ enum class tls_verify_mode {
23
+ none,
24
+ peer,
25
+ };
26
+ } // namespace couchbase::core
@@ -20,6 +20,8 @@
20
20
  #include "core/logger/logger.hxx"
21
21
  #include "core/service_type_fmt.hxx"
22
22
 
23
+ #include <gsl/narrow>
24
+
23
25
  #include <algorithm>
24
26
  #include <stdexcept>
25
27
 
@@ -162,9 +164,20 @@ configuration::node::endpoint(const std::string& network, service_type type, boo
162
164
  }
163
165
 
164
166
  bool
165
- configuration::has_node_with_hostname(const std::string& hostname) const
167
+ configuration::has_node(const std::string& network, service_type type, bool is_tls, const std::string& hostname, const std::string& port)
168
+ const
166
169
  {
167
- return std::any_of(nodes.begin(), nodes.end(), [&hostname](const auto& n) { return n.hostname == hostname; });
170
+ std::uint16_t port_number{ 0 };
171
+ try {
172
+ port_number = gsl::narrow_cast<std::uint16_t>(std::stoul(port, nullptr, 10));
173
+ } catch (const std::invalid_argument&) {
174
+ return false;
175
+ } catch (const std::out_of_range&) {
176
+ return false;
177
+ }
178
+ return std::any_of(nodes.begin(), nodes.end(), [&](const auto& n) {
179
+ return n.hostname_for(network) == hostname && n.port_or(network, type, is_tls, 0) == port_number;
180
+ });
168
181
  }
169
182
 
170
183
  std::string
@@ -120,7 +120,11 @@ struct configuration {
120
120
  }
121
121
 
122
122
  [[nodiscard]] std::size_t index_for_this_node() const;
123
- [[nodiscard]] bool has_node_with_hostname(const std::string& hostname) const;
123
+ [[nodiscard]] bool has_node(const std::string& network,
124
+ service_type type,
125
+ bool is_tls,
126
+ const std::string& hostname,
127
+ const std::string& port) const;
124
128
 
125
129
  template<typename Key>
126
130
  std::pair<std::uint16_t, std::optional<std::size_t>> map_key(const Key& key, std::size_t index)
@@ -153,7 +153,7 @@ class active_transaction_record
153
153
  if (const auto* compat = val.find(ATR_FIELD_FORWARD_COMPAT); compat != nullptr) {
154
154
  forward_compat = *compat;
155
155
  }
156
-
156
+ std::optional<uint32_t> expires_after_msec = std::max(val.optional<int32_t>(ATR_FIELD_EXPIRES_AFTER_MSECS).value_or(0), 0);
157
157
  entries.emplace_back(resp.ctx.bucket(),
158
158
  resp.ctx.id(),
159
159
  key,
@@ -163,7 +163,7 @@ class active_transaction_record
163
163
  parse_mutation_cas(val.optional<std::string>(ATR_FIELD_TIMESTAMP_COMPLETE).value_or("")),
164
164
  parse_mutation_cas(val.optional<std::string>(ATR_FIELD_TIMESTAMP_ROLLBACK_START).value_or("")),
165
165
  parse_mutation_cas(val.optional<std::string>(ATR_FIELD_TIMESTAMP_ROLLBACK_COMPLETE).value_or("")),
166
- val.optional<std::uint32_t>(ATR_FIELD_EXPIRES_AFTER_MSECS),
166
+ expires_after_msec,
167
167
  process_document_ids(val, ATR_FIELD_DOCS_INSERTED),
168
168
  process_document_ids(val, ATR_FIELD_DOCS_REPLACED),
169
169
  process_document_ids(val, ATR_FIELD_DOCS_REMOVED),
@@ -1147,6 +1147,9 @@ attempt_context_impl::get_with_query(const core::document_id& id, bool optional,
1147
1147
  // make a transaction_get_result from the row...
1148
1148
  try {
1149
1149
  if (resp.rows.empty()) {
1150
+ if (optional) {
1151
+ return op_completed_with_callback(std::move(cb), std::optional<transaction_get_result>());
1152
+ }
1150
1153
  return op_completed_with_error(
1151
1154
  std::move(cb), transaction_operation_failed(FAIL_DOC_NOT_FOUND, "document not found"));
1152
1155
  }
@@ -456,7 +456,7 @@ class attempt_context_impl
456
456
 
457
457
  void state(attempt_state s)
458
458
  {
459
- overall_.current_attempt().state = s;
459
+ overall_.current_attempt_state(s);
460
460
  }
461
461
 
462
462
  [[nodiscard]] const std::string atr_id()
@@ -0,0 +1,93 @@
1
+ /*
2
+ * Copyright 2021-Present Couchbase, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ #include "attempt_context_testing_hooks.hxx"
18
+
19
+ namespace couchbase::core::transactions
20
+ {
21
+ namespace
22
+ {
23
+ inline std::optional<error_class>
24
+ noop_1(attempt_context*)
25
+ {
26
+ return {};
27
+ }
28
+
29
+ inline std::optional<error_class>
30
+ noop_2(attempt_context*, const std::string&)
31
+ {
32
+ return {};
33
+ }
34
+
35
+ inline std::optional<const std::string>
36
+ noop_3(attempt_context*)
37
+ {
38
+ return {};
39
+ }
40
+
41
+ inline bool
42
+ noop_4(attempt_context*, const std::string&, std::optional<const std::string>)
43
+ {
44
+ return false;
45
+ }
46
+ } // namespace
47
+
48
+ attempt_context_testing_hooks::attempt_context_testing_hooks()
49
+ : before_atr_commit{ noop_1 }
50
+ , before_atr_commit_ambiguity_resolution{ noop_1 }
51
+ , after_atr_commit{ noop_1 }
52
+ , before_doc_committed{ noop_2 }
53
+ , before_removing_doc_during_staged_insert{ noop_2 }
54
+ , before_rollback_delete_inserted{ noop_2 }
55
+ , after_doc_committed_before_saving_cas{ noop_2 }
56
+ , after_doc_committed{ noop_2 }
57
+ , before_staged_insert{ noop_2 }
58
+ , before_staged_remove{ noop_2 }
59
+ , before_staged_replace{ noop_2 }
60
+ , before_doc_removed{ noop_2 }
61
+ , before_doc_rolled_back{ noop_2 }
62
+ , after_doc_removed_pre_retry{ noop_2 }
63
+ , after_doc_removed_post_retry{ noop_2 }
64
+ , after_get_complete{ noop_2 }
65
+ , after_staged_replace_complete_before_cas_saved{ noop_2 }
66
+ , after_staged_replace_complete{ noop_2 }
67
+ , after_staged_remove_complete{ noop_2 }
68
+ , after_staged_insert_complete{ noop_2 }
69
+ , after_rollback_replace_or_remove{ noop_2 }
70
+ , after_rollback_delete_inserted{ noop_2 }
71
+ , before_check_atr_entry_for_blocking_doc{ noop_2 }
72
+ , before_doc_get{ noop_2 }
73
+ , before_get_doc_in_exists_during_staged_insert{ noop_2 }
74
+ , before_query{ noop_2 }
75
+ , after_query{ noop_2 }
76
+ , before_remove_staged_insert{ noop_2 }
77
+ , after_remove_staged_insert{ noop_2 }
78
+ , after_docs_committed{ noop_1 }
79
+ , after_docs_removed{ noop_1 }
80
+ , after_atr_pending{ noop_1 }
81
+ , before_atr_pending{ noop_1 }
82
+ , before_atr_complete{ noop_1 }
83
+ , before_atr_rolled_back{ noop_1 }
84
+ , after_atr_complete{ noop_1 }
85
+ , before_get_atr_for_abort{ noop_1 }
86
+ , before_atr_aborted{ noop_1 }
87
+ , after_atr_aborted{ noop_1 }
88
+ , after_atr_rolled_back{ noop_1 }
89
+ , random_atr_id_for_vbucket{ noop_3 }
90
+ , has_expired_client_side{ noop_4 }
91
+ {
92
+ }
93
+ } // namespace couchbase::core::transactions