couchbase 3.7.0 → 3.8.0
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.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/ext/CMakeLists.txt +4 -1
- data/ext/cache/extconf_include.rb +4 -3
- data/ext/cache/mozilla-ca-bundle.crt +66 -93
- data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
- data/ext/couchbase/CMakeLists.txt +24 -11
- data/ext/couchbase/cmake/APKBUILD.in +17 -1
- data/ext/couchbase/cmake/Bundler.cmake +9 -1
- data/ext/couchbase/cmake/Cache.cmake +48 -19
- data/ext/couchbase/cmake/CompilerOptions.cmake +3 -1
- data/ext/couchbase/cmake/OpenSSL.cmake +10 -2
- data/ext/couchbase/cmake/Packaging.cmake +48 -8
- data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +43 -1
- data/ext/couchbase/cmake/build_config.hxx.in +2 -0
- data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +18 -0
- data/ext/couchbase/cmake/tarball_glob.txt +10 -0
- data/ext/couchbase/core/app_telemetry_meter.cxx +1 -0
- data/ext/couchbase/core/app_telemetry_reporter.cxx +45 -43
- data/ext/couchbase/core/app_telemetry_reporter.hxx +4 -3
- data/ext/couchbase/core/bucket.cxx +128 -13
- data/ext/couchbase/core/bucket.hxx +12 -2
- data/ext/couchbase/core/cluster.cxx +304 -152
- data/ext/couchbase/core/cluster.hxx +32 -0
- data/ext/couchbase/core/cluster_credentials.cxx +25 -0
- data/ext/couchbase/core/cluster_credentials.hxx +5 -0
- data/ext/couchbase/core/cluster_label_listener.cxx +72 -0
- data/ext/couchbase/core/cluster_label_listener.hxx +46 -0
- data/ext/couchbase/core/cluster_options.hxx +4 -0
- data/ext/couchbase/core/deprecation_utils.hxx +26 -0
- data/ext/couchbase/core/error.hxx +27 -0
- data/ext/couchbase/core/free_form_http_request.hxx +0 -2
- data/ext/couchbase/core/http_component.cxx +12 -48
- data/ext/couchbase/core/impl/analytics.cxx +3 -2
- data/ext/couchbase/core/impl/analytics.hxx +2 -1
- data/ext/couchbase/core/impl/analytics_index_manager.cxx +249 -137
- data/ext/couchbase/core/impl/binary_collection.cxx +134 -58
- data/ext/couchbase/core/impl/bucket_manager.cxx +87 -35
- data/ext/couchbase/core/impl/collection.cxx +560 -245
- data/ext/couchbase/core/impl/collection_manager.cxx +89 -49
- data/ext/couchbase/core/impl/dns_srv_tracker.cxx +4 -4
- data/ext/couchbase/core/impl/error.cxx +20 -13
- data/ext/couchbase/core/impl/error.hxx +15 -10
- data/ext/couchbase/core/impl/get_all_replicas.hxx +1 -1
- data/ext/couchbase/core/impl/get_any_replica.hxx +2 -1
- data/ext/couchbase/core/impl/get_replica.hxx +2 -0
- data/ext/couchbase/core/impl/lookup_in_replica.hxx +1 -1
- data/ext/couchbase/core/impl/observability_recorder.cxx +161 -0
- data/ext/couchbase/core/impl/observability_recorder.hxx +77 -0
- data/ext/couchbase/core/impl/observe_seqno.hxx +2 -0
- data/ext/couchbase/core/impl/public_bucket.cxx +31 -7
- data/ext/couchbase/core/impl/public_cluster.cxx +107 -19
- data/ext/couchbase/core/impl/query.cxx +6 -3
- data/ext/couchbase/core/impl/query.hxx +3 -1
- data/ext/couchbase/core/impl/query_index_manager.cxx +267 -102
- data/ext/couchbase/core/impl/scope.cxx +53 -11
- data/ext/couchbase/core/impl/search.cxx +8 -4
- data/ext/couchbase/core/impl/search.hxx +6 -2
- data/ext/couchbase/core/impl/search_index_manager.cxx +131 -41
- data/ext/couchbase/core/impl/with_cancellation.hxx +75 -0
- data/ext/couchbase/core/io/config_tracker.cxx +9 -9
- data/ext/couchbase/core/io/config_tracker.hxx +2 -1
- data/ext/couchbase/core/io/http_command.hxx +98 -49
- data/ext/couchbase/core/io/http_context.hxx +2 -0
- data/ext/couchbase/core/io/http_session.cxx +23 -10
- data/ext/couchbase/core/io/http_session.hxx +17 -9
- data/ext/couchbase/core/io/http_session_manager.hxx +163 -228
- data/ext/couchbase/core/io/http_traits.hxx +0 -7
- data/ext/couchbase/core/io/mcbp_command.hxx +123 -44
- data/ext/couchbase/core/io/mcbp_session.cxx +251 -26
- data/ext/couchbase/core/io/mcbp_session.hxx +9 -1
- data/ext/couchbase/core/io/mcbp_traits.hxx +0 -8
- data/ext/couchbase/core/io/streams.cxx +3 -3
- data/ext/couchbase/core/io/streams.hxx +3 -2
- data/ext/couchbase/core/meta/features.hxx +15 -0
- data/ext/couchbase/core/meta/version.cxx +13 -0
- data/ext/couchbase/core/meta/version.hxx +3 -0
- data/ext/couchbase/core/metrics/constants.hxx +23 -0
- data/ext/couchbase/core/metrics/logging_meter.cxx +5 -5
- data/ext/couchbase/core/metrics/meter_wrapper.cxx +65 -63
- data/ext/couchbase/core/metrics/meter_wrapper.hxx +12 -10
- data/ext/couchbase/core/operations/document_analytics.hxx +0 -5
- data/ext/couchbase/core/operations/document_append.hxx +0 -4
- data/ext/couchbase/core/operations/document_decrement.hxx +0 -5
- data/ext/couchbase/core/operations/document_exists.hxx +0 -7
- data/ext/couchbase/core/operations/document_get.hxx +0 -7
- data/ext/couchbase/core/operations/document_get_all_replicas.hxx +77 -27
- data/ext/couchbase/core/operations/document_get_and_lock.hxx +0 -9
- data/ext/couchbase/core/operations/document_get_and_touch.hxx +0 -9
- data/ext/couchbase/core/operations/document_get_any_replica.hxx +83 -2
- data/ext/couchbase/core/operations/document_get_projected.hxx +0 -9
- data/ext/couchbase/core/operations/document_increment.hxx +0 -5
- data/ext/couchbase/core/operations/document_insert.hxx +0 -4
- data/ext/couchbase/core/operations/document_lookup_in.hxx +0 -9
- data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +46 -4
- data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +121 -43
- data/ext/couchbase/core/operations/document_mutate_in.hxx +0 -5
- data/ext/couchbase/core/operations/document_prepend.hxx +0 -4
- data/ext/couchbase/core/operations/document_query.hxx +0 -4
- data/ext/couchbase/core/operations/document_remove.hxx +0 -4
- data/ext/couchbase/core/operations/document_replace.hxx +0 -4
- data/ext/couchbase/core/operations/document_search.hxx +0 -7
- data/ext/couchbase/core/operations/document_touch.hxx +0 -7
- data/ext/couchbase/core/operations/document_unlock.hxx +0 -6
- data/ext/couchbase/core/operations/document_upsert.hxx +0 -4
- data/ext/couchbase/core/operations/document_view.cxx +2 -0
- data/ext/couchbase/core/operations/document_view.hxx +10 -13
- data/ext/couchbase/core/operations/http_noop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_describe.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_flush.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_update.hxx +2 -0
- data/ext/couchbase/core/operations/management/change_password.hxx +2 -0
- data/ext/couchbase/core/operations/management/cluster_describe.hxx +2 -0
- data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_update.hxx +2 -0
- data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/error_utils.cxx +4 -1
- data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_status.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/freeform.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_build.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +68 -30
- data/ext/couchbase/core/operations/management/query_index_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_get_all.hxx +4 -3
- data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +2 -1
- data/ext/couchbase/core/operations/management/role_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_get_stats.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_query.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/operation_traits.hxx +6 -0
- data/ext/couchbase/core/operations.hxx +0 -1
- data/ext/couchbase/core/operations_fwd.hxx +8 -0
- data/ext/couchbase/core/origin.cxx +67 -12
- data/ext/couchbase/core/origin.hxx +13 -8
- data/ext/couchbase/core/orphan_reporter.cxx +164 -0
- data/ext/couchbase/core/orphan_reporter.hxx +65 -0
- data/ext/couchbase/core/sasl/CMakeLists.txt +1 -0
- data/ext/couchbase/core/sasl/client.cc +6 -0
- data/ext/couchbase/core/sasl/mechanism.cc +2 -1
- data/ext/couchbase/core/sasl/mechanism.h +2 -1
- data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.cc +41 -0
- data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.h +47 -0
- data/ext/couchbase/core/tls_context_provider.cxx +44 -0
- data/ext/couchbase/core/tls_context_provider.hxx +44 -0
- data/ext/couchbase/core/tracing/attribute_helpers.hxx +45 -0
- data/ext/couchbase/core/tracing/constants.hxx +148 -68
- data/ext/couchbase/core/tracing/threshold_logging_options.hxx +0 -3
- data/ext/couchbase/core/tracing/threshold_logging_tracer.cxx +122 -170
- data/ext/couchbase/core/tracing/tracer_wrapper.cxx +17 -24
- data/ext/couchbase/core/tracing/tracer_wrapper.hxx +8 -10
- data/ext/couchbase/core/tracing/wrapper_sdk_tracer.cxx +114 -0
- data/ext/couchbase/core/tracing/wrapper_sdk_tracer.hxx +85 -0
- data/ext/couchbase/core/transactions/attempt_context_impl.cxx +16 -14
- data/ext/couchbase/core/transactions/attempt_context_impl.hxx +4 -4
- data/ext/couchbase/core/transactions/transactions.cxx +1 -1
- data/ext/couchbase/core/transactions/transactions_cleanup.cxx +1 -2
- data/ext/couchbase/core/utils/byteswap.hxx +12 -0
- data/ext/couchbase/core/utils/concurrent_fixed_priority_queue.hxx +102 -0
- data/ext/couchbase/core/utils/connection_string.cxx +2 -0
- data/ext/couchbase/couchbase/certificate_authenticator.hxx +1 -0
- data/ext/couchbase/couchbase/cluster.hxx +47 -0
- data/ext/couchbase/couchbase/cluster_options.hxx +16 -0
- data/ext/couchbase/couchbase/collection.hxx +60 -15
- data/ext/couchbase/couchbase/error_codes.hxx +48 -48
- data/ext/couchbase/couchbase/jwt_authenticator.hxx +52 -0
- data/ext/couchbase/couchbase/metrics/meter.hxx +2 -1
- data/ext/couchbase/couchbase/metrics/otel_meter.hxx +75 -80
- data/ext/couchbase/couchbase/network_options.hxx +19 -0
- data/ext/couchbase/couchbase/password_authenticator.hxx +1 -0
- data/ext/couchbase/couchbase/tracing/otel_tracer.hxx +15 -17
- data/ext/couchbase/couchbase/tracing/request_span.hxx +2 -2
- data/ext/couchbase.cxx +4 -0
- data/ext/extconf.rb +1 -0
- data/ext/rcb_analytics.cxx +157 -47
- data/ext/rcb_backend.cxx +118 -71
- data/ext/rcb_buckets.cxx +39 -16
- data/ext/rcb_collections.cxx +36 -12
- data/ext/rcb_crud.cxx +587 -294
- data/ext/rcb_hdr_histogram.cxx +219 -0
- data/ext/rcb_hdr_histogram.hxx +28 -0
- data/ext/rcb_multi.cxx +142 -59
- data/ext/rcb_observability.cxx +132 -0
- data/ext/rcb_observability.hxx +49 -0
- data/ext/rcb_query.cxx +77 -27
- data/ext/rcb_search.cxx +92 -31
- data/ext/rcb_users.cxx +69 -26
- data/ext/rcb_utils.cxx +91 -0
- data/ext/rcb_utils.hxx +141 -168
- data/ext/rcb_views.cxx +36 -12
- data/lib/active_support/cache/couchbase_store.rb +6 -6
- data/lib/couchbase/authenticator.rb +14 -0
- data/lib/couchbase/binary_collection.rb +37 -22
- data/lib/couchbase/bucket.rb +46 -31
- data/lib/couchbase/cluster.rb +146 -61
- data/lib/couchbase/collection.rb +257 -186
- data/lib/couchbase/datastructures/couchbase_list.rb +81 -50
- data/lib/couchbase/datastructures/couchbase_map.rb +86 -50
- data/lib/couchbase/datastructures/couchbase_queue.rb +64 -38
- data/lib/couchbase/datastructures/couchbase_set.rb +57 -41
- data/lib/couchbase/deprecations.rb +1 -1
- data/lib/couchbase/diagnostics.rb +8 -8
- data/lib/couchbase/errors.rb +6 -0
- data/lib/couchbase/management/analytics_index_manager.rb +90 -59
- data/lib/couchbase/management/bucket_manager.rb +73 -45
- data/lib/couchbase/management/collection_manager.rb +86 -43
- data/lib/couchbase/management/collection_query_index_manager.rb +56 -33
- data/lib/couchbase/management/query_index_manager.rb +88 -36
- data/lib/couchbase/management/scope_search_index_manager.rb +119 -52
- data/lib/couchbase/management/search_index_manager.rb +401 -178
- data/lib/couchbase/management/user_manager.rb +343 -174
- data/lib/couchbase/management/view_index_manager.rb +166 -73
- data/lib/couchbase/metrics/logging_meter.rb +108 -0
- data/lib/couchbase/metrics/logging_value_recorder.rb +50 -0
- data/lib/couchbase/metrics/meter.rb +27 -0
- data/lib/couchbase/metrics/noop_meter.rb +30 -0
- data/lib/couchbase/metrics/noop_value_recorder.rb +27 -0
- data/lib/couchbase/metrics/value_recorder.rb +25 -0
- data/lib/couchbase/options.rb +69 -3
- data/lib/couchbase/protostellar/cluster.rb +3 -0
- data/lib/couchbase/scope.rb +62 -48
- data/lib/couchbase/search_options.rb +18 -18
- data/lib/couchbase/tracing/noop_span.rb +29 -0
- data/lib/couchbase/tracing/noop_tracer.rb +29 -0
- data/lib/couchbase/tracing/request_span.rb +34 -0
- data/lib/couchbase/tracing/request_tracer.rb +28 -0
- data/lib/couchbase/tracing/threshold_logging_span.rb +112 -0
- data/lib/couchbase/tracing/threshold_logging_tracer.rb +231 -0
- data/lib/couchbase/utils/hdr_histogram.rb +55 -0
- data/lib/couchbase/utils/observability.rb +257 -0
- data/lib/couchbase/utils/observability_constants.rb +200 -0
- data/lib/couchbase/utils/stdlib_logger_adapter.rb +1 -3
- data/lib/couchbase/version.rb +1 -1
- data/lib/couchbase.rb +2 -2
- metadata +58 -6
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
|
|
18
18
|
#pragma once
|
|
19
19
|
|
|
20
|
+
#include "deprecation_utils.hxx"
|
|
20
21
|
#include "diagnostics.hxx"
|
|
22
|
+
#include "error.hxx"
|
|
21
23
|
#include "operations_fwd.hxx"
|
|
22
24
|
#include "origin.hxx"
|
|
23
25
|
#include "topology/configuration.hxx"
|
|
@@ -37,6 +39,17 @@ namespace couchbase::core
|
|
|
37
39
|
{
|
|
38
40
|
class crud_component;
|
|
39
41
|
class cluster_impl;
|
|
42
|
+
class cluster_label_listener;
|
|
43
|
+
|
|
44
|
+
namespace tracing
|
|
45
|
+
{
|
|
46
|
+
class tracer_wrapper;
|
|
47
|
+
} // namespace tracing
|
|
48
|
+
|
|
49
|
+
namespace metrics
|
|
50
|
+
{
|
|
51
|
+
class meter_wrapper;
|
|
52
|
+
} // namespace metrics
|
|
40
53
|
|
|
41
54
|
namespace mcbp
|
|
42
55
|
{
|
|
@@ -80,6 +93,8 @@ public:
|
|
|
80
93
|
utils::movable_function<void(std::error_code, std::shared_ptr<topology::configuration>)>&&
|
|
81
94
|
handler) const;
|
|
82
95
|
|
|
96
|
+
[[nodiscard]] auto update_credentials(const core::cluster_credentials& auth) const -> core::error;
|
|
97
|
+
|
|
83
98
|
void execute(o::analytics_request request, mf<void(o::analytics_response)>&& handler) const;
|
|
84
99
|
void execute(o::append_request request, mf<void(o::append_response)>&& handler) const;
|
|
85
100
|
void execute(o::decrement_request request, mf<void(o::decrement_response)>&& handler) const;
|
|
@@ -129,6 +144,10 @@ public:
|
|
|
129
144
|
void execute(o::replace_request_with_legacy_durability request,
|
|
130
145
|
mf<void(o::replace_response)>&& handler) const;
|
|
131
146
|
|
|
147
|
+
COUCHBASE_DEPRECATED(
|
|
148
|
+
"1.3.0",
|
|
149
|
+
"Views are deprecated in Couchbase Server 7.0+. Instead of views, use the Query "
|
|
150
|
+
"Service (SQL++).")
|
|
132
151
|
void execute(o::document_view_request request,
|
|
133
152
|
mf<void(o::document_view_response)>&& handler) const;
|
|
134
153
|
void execute(o::http_noop_request request, mf<void(o::http_noop_response)>&& handler) const;
|
|
@@ -273,6 +292,14 @@ public:
|
|
|
273
292
|
void execute(impl::observe_seqno_request request,
|
|
274
293
|
mf<void(impl::observe_seqno_response)>&& handler) const;
|
|
275
294
|
|
|
295
|
+
void execute(o::get_replica_request_with_cancellation request,
|
|
296
|
+
mf<void(impl::get_replica_response)>&& handler) const;
|
|
297
|
+
void execute(o::get_request_with_cancellation request, mf<void(o::get_response)>&& handler) const;
|
|
298
|
+
void execute(o::lookup_in_request_with_cancellation request,
|
|
299
|
+
mf<void(o::lookup_in_response)>&& handler) const;
|
|
300
|
+
void execute(o::lookup_in_replica_request_with_cancellation request,
|
|
301
|
+
mf<void(impl::lookup_in_replica_response)>&& handler) const;
|
|
302
|
+
|
|
276
303
|
void execute(
|
|
277
304
|
om::analytics_link_replace_request<management::analytics::azure_blob_external_link> request,
|
|
278
305
|
mf<void(om::analytics_link_replace_response)>&& handler) const;
|
|
@@ -312,6 +339,11 @@ public:
|
|
|
312
339
|
|
|
313
340
|
[[nodiscard]] auto to_string() const -> std::string;
|
|
314
341
|
|
|
342
|
+
[[nodiscard]] auto tracer() const -> const std::shared_ptr<tracing::tracer_wrapper>&;
|
|
343
|
+
[[nodiscard]] auto meter() const -> const std::shared_ptr<metrics::meter_wrapper>&;
|
|
344
|
+
[[nodiscard]] auto cluster_label_listener() const
|
|
345
|
+
-> const std::shared_ptr<cluster_label_listener>&;
|
|
346
|
+
|
|
315
347
|
private:
|
|
316
348
|
std::shared_ptr<cluster_impl> impl_;
|
|
317
349
|
};
|
|
@@ -24,4 +24,29 @@ cluster_credentials::uses_certificate() const -> bool
|
|
|
24
24
|
{
|
|
25
25
|
return !certificate_path.empty();
|
|
26
26
|
}
|
|
27
|
+
|
|
28
|
+
auto
|
|
29
|
+
cluster_credentials::requires_tls() const -> bool
|
|
30
|
+
{
|
|
31
|
+
return uses_certificate() || uses_jwt();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
auto
|
|
35
|
+
cluster_credentials::uses_jwt() const -> bool
|
|
36
|
+
{
|
|
37
|
+
return !jwt_token.empty();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
auto
|
|
41
|
+
cluster_credentials::uses_password() const -> bool
|
|
42
|
+
{
|
|
43
|
+
return !username.empty() && !password.empty();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
auto
|
|
47
|
+
cluster_credentials::is_same_type(const cluster_credentials& other) const -> bool
|
|
48
|
+
{
|
|
49
|
+
return uses_certificate() == other.uses_certificate() && uses_jwt() == other.uses_jwt() &&
|
|
50
|
+
uses_password() == other.uses_password();
|
|
51
|
+
}
|
|
27
52
|
} // namespace couchbase::core
|
|
@@ -28,9 +28,14 @@ struct cluster_credentials {
|
|
|
28
28
|
std::string password{};
|
|
29
29
|
std::string certificate_path{};
|
|
30
30
|
std::string key_path{};
|
|
31
|
+
std::string jwt_token{};
|
|
31
32
|
std::optional<std::vector<std::string>> allowed_sasl_mechanisms{};
|
|
32
33
|
|
|
33
34
|
[[nodiscard]] auto uses_certificate() const -> bool;
|
|
35
|
+
[[nodiscard]] auto requires_tls() const -> bool;
|
|
36
|
+
[[nodiscard]] auto uses_jwt() const -> bool;
|
|
37
|
+
[[nodiscard]] auto uses_password() const -> bool;
|
|
38
|
+
[[nodiscard]] auto is_same_type(const cluster_credentials& other) const -> bool;
|
|
34
39
|
};
|
|
35
40
|
|
|
36
41
|
} // namespace couchbase::core
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2025-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
|
+
#include "cluster_label_listener.hxx"
|
|
19
|
+
|
|
20
|
+
#include <mutex>
|
|
21
|
+
#include <shared_mutex>
|
|
22
|
+
|
|
23
|
+
namespace couchbase::core
|
|
24
|
+
{
|
|
25
|
+
class cluster_label_listener_impl
|
|
26
|
+
{
|
|
27
|
+
public:
|
|
28
|
+
cluster_label_listener_impl() = default;
|
|
29
|
+
|
|
30
|
+
void update_config(topology::configuration config)
|
|
31
|
+
{
|
|
32
|
+
const std::scoped_lock lock(mutex_);
|
|
33
|
+
if (config.cluster_name.has_value() && (cluster_name_ != config.cluster_name)) {
|
|
34
|
+
cluster_name_ = std::move(config.cluster_name);
|
|
35
|
+
}
|
|
36
|
+
if (config.cluster_uuid.has_value() && (cluster_uuid_ != config.cluster_uuid)) {
|
|
37
|
+
cluster_uuid_ = std::move(config.cluster_uuid);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
auto cluster_labels() -> cluster_label_listener::labels
|
|
42
|
+
{
|
|
43
|
+
const std::shared_lock lock(mutex_);
|
|
44
|
+
return cluster_label_listener::labels{
|
|
45
|
+
cluster_name_,
|
|
46
|
+
cluster_uuid_,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private:
|
|
51
|
+
std::shared_mutex mutex_{};
|
|
52
|
+
std::optional<std::string> cluster_name_{};
|
|
53
|
+
std::optional<std::string> cluster_uuid_{};
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
cluster_label_listener::cluster_label_listener()
|
|
57
|
+
: impl_{ std::make_shared<cluster_label_listener_impl>() }
|
|
58
|
+
{
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
void
|
|
62
|
+
cluster_label_listener::update_config(topology::configuration config)
|
|
63
|
+
{
|
|
64
|
+
impl_->update_config(std::move(config));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
auto
|
|
68
|
+
cluster_label_listener::cluster_labels() const -> labels
|
|
69
|
+
{
|
|
70
|
+
return impl_->cluster_labels();
|
|
71
|
+
}
|
|
72
|
+
} // namespace couchbase::core
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2025-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 "config_listener.hxx"
|
|
21
|
+
|
|
22
|
+
#include <memory>
|
|
23
|
+
#include <optional>
|
|
24
|
+
#include <string>
|
|
25
|
+
|
|
26
|
+
namespace couchbase::core
|
|
27
|
+
{
|
|
28
|
+
class cluster_label_listener_impl;
|
|
29
|
+
|
|
30
|
+
class cluster_label_listener : public config_listener
|
|
31
|
+
{
|
|
32
|
+
public:
|
|
33
|
+
cluster_label_listener();
|
|
34
|
+
void update_config(topology::configuration config) override;
|
|
35
|
+
|
|
36
|
+
struct labels {
|
|
37
|
+
std::optional<std::string> cluster_name;
|
|
38
|
+
std::optional<std::string> cluster_uuid;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
[[nodiscard]] auto cluster_labels() const -> labels;
|
|
42
|
+
|
|
43
|
+
private:
|
|
44
|
+
std::shared_ptr<cluster_label_listener_impl> impl_;
|
|
45
|
+
};
|
|
46
|
+
} // namespace couchbase::core
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include "core/io/dns_config.hxx"
|
|
22
22
|
#include "core/io/ip_protocol.hxx"
|
|
23
23
|
#include "core/metrics/logging_meter_options.hxx"
|
|
24
|
+
#include "core/orphan_reporter.hxx"
|
|
24
25
|
#include "core/tracing/threshold_logging_options.hxx"
|
|
25
26
|
#include "service_type.hxx"
|
|
26
27
|
#include "timeout_defaults.hxx"
|
|
@@ -72,9 +73,11 @@ public:
|
|
|
72
73
|
bool enable_compression{ true };
|
|
73
74
|
bool enable_tracing{ true };
|
|
74
75
|
bool enable_metrics{ true };
|
|
76
|
+
bool enable_orphan_reporting{ true };
|
|
75
77
|
std::string network{ "auto" };
|
|
76
78
|
tracing::threshold_logging_options tracing_options{};
|
|
77
79
|
metrics::logging_meter_options metrics_options{};
|
|
80
|
+
orphan_reporter_options orphan_options{};
|
|
78
81
|
tls_verify_mode tls_verify{ tls_verify_mode::peer };
|
|
79
82
|
std::shared_ptr<couchbase::tracing::request_tracer> tracer{ nullptr };
|
|
80
83
|
std::shared_ptr<couchbase::metrics::meter> meter{ nullptr };
|
|
@@ -110,6 +113,7 @@ public:
|
|
|
110
113
|
};
|
|
111
114
|
bool preserve_bootstrap_nodes_order{ false };
|
|
112
115
|
bool allow_enterprise_analytics{ false };
|
|
116
|
+
bool enable_lazy_connections{ false };
|
|
113
117
|
};
|
|
114
118
|
|
|
115
119
|
} // namespace couchbase::core
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
#ifndef COUCHBASE_DEPRECATED
|
|
21
|
+
#ifdef COUCHBASE_CXX_CLIENT_IGNORE_CORE_DEPRECATIONS
|
|
22
|
+
#define COUCHBASE_DEPRECATED(version, msg)
|
|
23
|
+
#else
|
|
24
|
+
#define COUCHBASE_DEPRECATED(version, msg) [[deprecated("Since SDK " version ". " msg)]]
|
|
25
|
+
#endif
|
|
26
|
+
#endif
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
#include <string>
|
|
19
|
+
#include <system_error>
|
|
20
|
+
|
|
21
|
+
namespace couchbase::core
|
|
22
|
+
{
|
|
23
|
+
struct error {
|
|
24
|
+
std::error_code ec;
|
|
25
|
+
std::string message;
|
|
26
|
+
};
|
|
27
|
+
} // namespace couchbase::core
|
|
@@ -444,23 +444,11 @@ public:
|
|
|
444
444
|
}
|
|
445
445
|
session_manager = std::move(sm);
|
|
446
446
|
}
|
|
447
|
-
|
|
448
|
-
cluster_credentials credentials;
|
|
449
|
-
if (request.username.empty() && request.password.empty()) {
|
|
450
|
-
auto [ec, origin] = shim_.cluster.origin();
|
|
451
|
-
if (ec) {
|
|
452
|
-
return tl::unexpected(ec);
|
|
453
|
-
}
|
|
454
|
-
credentials = origin.credentials();
|
|
455
|
-
} else {
|
|
456
|
-
credentials = cluster_credentials{ request.username, request.password };
|
|
457
|
-
}
|
|
458
|
-
|
|
459
447
|
#ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
|
|
460
448
|
auto op =
|
|
461
449
|
std::make_shared<pending_http_operation>(io_, request, session_manager->dispatch_timeout());
|
|
462
450
|
if (!session_manager->is_configured()) {
|
|
463
|
-
auto err = defer_command(op, session_manager,
|
|
451
|
+
auto err = defer_command(op, session_manager, std::move(callback));
|
|
464
452
|
if (!std::holds_alternative<std::monostate>(err)) {
|
|
465
453
|
return tl::unexpected{ err };
|
|
466
454
|
}
|
|
@@ -470,7 +458,7 @@ public:
|
|
|
470
458
|
auto op = std::make_shared<pending_http_operation>(io_, request);
|
|
471
459
|
#endif
|
|
472
460
|
|
|
473
|
-
send_http_operation(op, session_manager,
|
|
461
|
+
send_http_operation(op, session_manager, std::move(callback));
|
|
474
462
|
return op;
|
|
475
463
|
}
|
|
476
464
|
|
|
@@ -487,22 +475,11 @@ public:
|
|
|
487
475
|
session_manager = std::move(sm);
|
|
488
476
|
}
|
|
489
477
|
|
|
490
|
-
cluster_credentials credentials;
|
|
491
|
-
if (request.username.empty() && request.password.empty()) {
|
|
492
|
-
auto [ec, origin] = shim_.cluster.origin();
|
|
493
|
-
if (ec) {
|
|
494
|
-
return tl::unexpected(ec);
|
|
495
|
-
}
|
|
496
|
-
credentials = origin.credentials();
|
|
497
|
-
} else {
|
|
498
|
-
credentials = cluster_credentials{ request.username, request.password };
|
|
499
|
-
}
|
|
500
|
-
|
|
501
478
|
#ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
|
|
502
479
|
auto op = std::make_shared<pending_buffered_http_operation>(
|
|
503
480
|
io_, request, session_manager->dispatch_timeout());
|
|
504
481
|
if (!session_manager->is_configured()) {
|
|
505
|
-
auto err = defer_command(op, session_manager,
|
|
482
|
+
auto err = defer_command(op, session_manager, std::move(callback));
|
|
506
483
|
if (!std::holds_alternative<std::monostate>(err)) {
|
|
507
484
|
auto ec = std::holds_alternative<impl::bootstrap_error>(err)
|
|
508
485
|
? std::get<impl::bootstrap_error>(err).ec
|
|
@@ -515,14 +492,13 @@ public:
|
|
|
515
492
|
auto op = std::make_shared<pending_buffered_http_operation>(io_, request);
|
|
516
493
|
#endif
|
|
517
494
|
|
|
518
|
-
send_http_operation(op, session_manager,
|
|
495
|
+
send_http_operation(op, session_manager, std::move(callback));
|
|
519
496
|
return op;
|
|
520
497
|
}
|
|
521
498
|
|
|
522
499
|
private:
|
|
523
500
|
void send_http_operation(const std::shared_ptr<pending_http_operation>& op,
|
|
524
501
|
const std::shared_ptr<io::http_session_manager>& session_manager,
|
|
525
|
-
const couchbase::core::cluster_credentials& credentials,
|
|
526
502
|
free_form_http_request_callback&& callback)
|
|
527
503
|
{
|
|
528
504
|
#ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
|
|
@@ -541,11 +517,8 @@ private:
|
|
|
541
517
|
#endif
|
|
542
518
|
std::shared_ptr<io::http_session> session;
|
|
543
519
|
{
|
|
544
|
-
auto [check_out_ec, s] =
|
|
545
|
-
|
|
546
|
-
credentials,
|
|
547
|
-
op->request().endpoint,
|
|
548
|
-
op->request().internal.undesired_endpoint);
|
|
520
|
+
auto [check_out_ec, s] = session_manager->check_out(
|
|
521
|
+
op->request().service, op->request().endpoint, op->request().internal.undesired_endpoint);
|
|
549
522
|
if (check_out_ec) {
|
|
550
523
|
return op->invoke_response_handler(check_out_ec, {});
|
|
551
524
|
}
|
|
@@ -576,16 +549,12 @@ private:
|
|
|
576
549
|
|
|
577
550
|
void send_http_operation(const std::shared_ptr<pending_buffered_http_operation>& op,
|
|
578
551
|
const std::shared_ptr<io::http_session_manager>& session_manager,
|
|
579
|
-
const couchbase::core::cluster_credentials& credentials,
|
|
580
552
|
buffered_free_form_http_request_callback&& callback)
|
|
581
553
|
{
|
|
582
554
|
std::shared_ptr<io::http_session> session;
|
|
583
555
|
{
|
|
584
|
-
auto [check_out_ec, s] =
|
|
585
|
-
|
|
586
|
-
credentials,
|
|
587
|
-
op->request().endpoint,
|
|
588
|
-
op->request().internal.undesired_endpoint);
|
|
556
|
+
auto [check_out_ec, s] = session_manager->check_out(
|
|
557
|
+
op->request().service, op->request().endpoint, op->request().internal.undesired_endpoint);
|
|
589
558
|
if (check_out_ec) {
|
|
590
559
|
return op->invoke_response_handler(check_out_ec, {});
|
|
591
560
|
}
|
|
@@ -621,7 +590,6 @@ private:
|
|
|
621
590
|
template<typename Callback, typename PendingHttpOp>
|
|
622
591
|
auto defer_command(std::shared_ptr<PendingHttpOp> pending_op,
|
|
623
592
|
const std::shared_ptr<io::http_session_manager>& session_manager,
|
|
624
|
-
const couchbase::core::cluster_credentials& credentials,
|
|
625
593
|
Callback&& callback) -> error_union
|
|
626
594
|
{
|
|
627
595
|
if (auto last_error = session_manager->last_bootstrap_error(); last_error.has_value()) {
|
|
@@ -634,23 +602,20 @@ private:
|
|
|
634
602
|
session_manager->add_to_deferred_queue([this,
|
|
635
603
|
callback = std::forward<Callback>(callback),
|
|
636
604
|
op = std::move(pending_op),
|
|
637
|
-
session_manager
|
|
638
|
-
credentials](error_union err) mutable {
|
|
605
|
+
session_manager](error_union err) mutable {
|
|
639
606
|
if (!std::holds_alternative<std::monostate>(err)) {
|
|
640
607
|
// The deferred operation was cancelled - currently this can happen due to closing the
|
|
641
608
|
// cluster
|
|
642
609
|
return callback({}, err);
|
|
643
610
|
}
|
|
644
611
|
|
|
645
|
-
return send_http_operation(
|
|
646
|
-
op, session_manager, credentials, std::forward<Callback>(callback));
|
|
612
|
+
return send_http_operation(op, session_manager, std::forward<Callback>(callback));
|
|
647
613
|
});
|
|
648
614
|
return std::monostate{};
|
|
649
615
|
}
|
|
650
616
|
|
|
651
617
|
auto defer_command(std::shared_ptr<pending_buffered_http_operation> pending_op,
|
|
652
618
|
const std::shared_ptr<io::http_session_manager>& session_manager,
|
|
653
|
-
const couchbase::core::cluster_credentials& credentials,
|
|
654
619
|
buffered_free_form_http_request_callback&& callback) -> error_union
|
|
655
620
|
{
|
|
656
621
|
if (auto last_error = session_manager->last_bootstrap_error(); last_error.has_value()) {
|
|
@@ -663,8 +628,7 @@ private:
|
|
|
663
628
|
session_manager->add_to_deferred_queue([this,
|
|
664
629
|
callback = std::move(callback),
|
|
665
630
|
op = std::move(pending_op),
|
|
666
|
-
session_manager
|
|
667
|
-
credentials](error_union err) mutable {
|
|
631
|
+
session_manager](error_union err) mutable {
|
|
668
632
|
if (!std::holds_alternative<std::monostate>(err)) {
|
|
669
633
|
auto ec = std::holds_alternative<impl::bootstrap_error>(err)
|
|
670
634
|
? std::get<impl::bootstrap_error>(err).ec
|
|
@@ -674,7 +638,7 @@ private:
|
|
|
674
638
|
return callback({}, ec);
|
|
675
639
|
}
|
|
676
640
|
|
|
677
|
-
return send_http_operation(op, session_manager,
|
|
641
|
+
return send_http_operation(op, session_manager, std::move(callback));
|
|
678
642
|
});
|
|
679
643
|
return std::monostate{};
|
|
680
644
|
}
|
|
@@ -149,7 +149,8 @@ auto
|
|
|
149
149
|
build_analytics_request(std::string statement,
|
|
150
150
|
analytics_options::built options,
|
|
151
151
|
std::optional<std::string> bucket_name,
|
|
152
|
-
std::optional<std::string> scope_name
|
|
152
|
+
std::optional<std::string> scope_name,
|
|
153
|
+
std::shared_ptr<couchbase::tracing::request_span> op_span)
|
|
153
154
|
-> core::operations::analytics_request
|
|
154
155
|
{
|
|
155
156
|
core::operations::analytics_request request{
|
|
@@ -167,7 +168,7 @@ build_analytics_request(std::string statement,
|
|
|
167
168
|
std::move(options.client_context_id),
|
|
168
169
|
options.timeout,
|
|
169
170
|
};
|
|
170
|
-
request.parent_span =
|
|
171
|
+
request.parent_span = std::move(op_span);
|
|
171
172
|
if (!options.raw.empty()) {
|
|
172
173
|
for (auto& [name, value] : options.raw) {
|
|
173
174
|
request.raw[name] = std::move(value);
|
|
@@ -33,6 +33,7 @@ auto
|
|
|
33
33
|
build_analytics_request(std::string statement,
|
|
34
34
|
analytics_options::built options,
|
|
35
35
|
std::optional<std::string> bucket_name,
|
|
36
|
-
std::optional<std::string> scope_name
|
|
36
|
+
std::optional<std::string> scope_name,
|
|
37
|
+
std::shared_ptr<couchbase::tracing::request_span> op_span)
|
|
37
38
|
-> core::operations::analytics_request;
|
|
38
39
|
} // namespace couchbase::core::impl
|