couchbase 3.4.2 → 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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/ext/couchbase/CMakeLists.txt +57 -7
- data/ext/couchbase/cmake/Documentation.cmake +0 -1
- data/ext/couchbase/cmake/OpenSSL.cmake +98 -3
- data/ext/couchbase/cmake/Testing.cmake +12 -4
- data/ext/couchbase/cmake/build_config.hxx.in +3 -0
- data/ext/couchbase/core/bucket.cxx +3 -2
- data/ext/couchbase/core/bucket.hxx +9 -0
- data/ext/couchbase/core/cluster.hxx +17 -0
- data/ext/couchbase/core/cluster_options.cxx +2 -2
- data/ext/couchbase/core/cluster_options.hxx +4 -6
- data/ext/couchbase/core/cluster_options_fwd.hxx +26 -0
- data/ext/couchbase/core/config_profile.hxx +1 -54
- data/ext/couchbase/core/config_profiles.cxx +79 -0
- data/ext/couchbase/core/config_profiles.hxx +56 -0
- data/ext/couchbase/core/error_context/search.hxx +1 -1
- data/ext/couchbase/core/impl/analytics.cxx +1 -0
- data/ext/couchbase/core/impl/boolean_field_query.cxx +40 -0
- data/ext/couchbase/core/impl/boolean_query.cxx +62 -0
- data/ext/couchbase/core/impl/cluster.cxx +2 -0
- data/ext/couchbase/core/impl/conjunction_query.cxx +51 -0
- data/ext/couchbase/core/impl/date_range.cxx +89 -0
- data/ext/couchbase/core/impl/date_range_facet.cxx +54 -0
- data/ext/couchbase/core/impl/date_range_facet_result.cxx +64 -0
- data/ext/couchbase/core/impl/date_range_query.cxx +125 -0
- data/ext/couchbase/core/impl/disjunction_query.cxx +51 -0
- data/ext/couchbase/core/impl/encoded_search_facet.hxx +29 -0
- data/ext/couchbase/core/impl/encoded_search_query.hxx +29 -0
- data/ext/couchbase/core/impl/encoded_search_sort.hxx +29 -0
- data/ext/couchbase/core/impl/geo_bounding_box_query.cxx +46 -0
- data/ext/couchbase/core/impl/geo_distance_query.cxx +43 -0
- data/ext/couchbase/core/impl/geo_polygon_query.cxx +46 -0
- data/ext/couchbase/core/impl/internal_date_range_facet_result.cxx +80 -0
- data/ext/couchbase/core/impl/internal_date_range_facet_result.hxx +48 -0
- data/ext/couchbase/core/impl/internal_numeric_range_facet_result.cxx +80 -0
- data/ext/couchbase/core/impl/internal_numeric_range_facet_result.hxx +48 -0
- data/ext/couchbase/core/impl/internal_search_error_context.cxx +141 -0
- data/ext/couchbase/core/impl/internal_search_error_context.hxx +61 -0
- data/ext/couchbase/core/impl/internal_search_meta_data.cxx +60 -0
- data/ext/couchbase/core/impl/internal_search_meta_data.hxx +41 -0
- data/ext/couchbase/core/impl/internal_search_result.cxx +84 -0
- data/ext/couchbase/core/impl/internal_search_result.hxx +43 -0
- data/ext/couchbase/core/impl/internal_search_row.cxx +82 -0
- data/ext/couchbase/core/impl/internal_search_row.hxx +56 -0
- data/ext/couchbase/core/impl/internal_search_row_location.hxx +32 -0
- data/ext/couchbase/core/impl/internal_search_row_locations.cxx +137 -0
- data/ext/couchbase/core/impl/internal_search_row_locations.hxx +45 -0
- data/ext/couchbase/core/impl/internal_term_facet_result.cxx +80 -0
- data/ext/couchbase/core/impl/internal_term_facet_result.hxx +48 -0
- data/ext/couchbase/core/impl/match_all_query.cxx +35 -0
- data/ext/couchbase/core/impl/match_none_query.cxx +35 -0
- data/ext/couchbase/core/impl/match_phrase_query.cxx +43 -0
- data/ext/couchbase/core/impl/match_query.cxx +59 -0
- data/ext/couchbase/core/impl/numeric_range.cxx +49 -0
- data/ext/couchbase/core/impl/numeric_range_facet.cxx +54 -0
- data/ext/couchbase/core/impl/numeric_range_facet_result.cxx +64 -0
- data/ext/couchbase/core/impl/numeric_range_query.cxx +56 -0
- data/ext/couchbase/core/impl/phrase_query.cxx +42 -0
- data/ext/couchbase/core/impl/prefix_query.cxx +40 -0
- data/ext/couchbase/core/impl/query_string_query.cxx +37 -0
- data/ext/couchbase/core/impl/regexp_query.cxx +40 -0
- data/ext/couchbase/core/impl/search.cxx +191 -0
- data/ext/couchbase/core/impl/search_error_context.cxx +147 -0
- data/ext/couchbase/core/impl/search_meta_data.cxx +46 -0
- data/ext/couchbase/core/impl/search_result.cxx +66 -0
- data/ext/couchbase/core/impl/search_row.cxx +74 -0
- data/ext/couchbase/core/impl/search_row_location.cxx +64 -0
- data/ext/couchbase/core/impl/search_row_locations.cxx +66 -0
- data/ext/couchbase/core/impl/search_sort_field.cxx +104 -0
- data/ext/couchbase/core/impl/search_sort_id.cxx +43 -0
- data/ext/couchbase/core/impl/search_sort_score.cxx +43 -0
- data/ext/couchbase/core/impl/term_facet.cxx +36 -0
- data/ext/couchbase/core/impl/term_facet_result.cxx +64 -0
- data/ext/couchbase/core/impl/term_query.cxx +56 -0
- data/ext/couchbase/core/impl/term_range_query.cxx +57 -0
- data/ext/couchbase/core/impl/wildcard_query.cxx +40 -0
- data/ext/couchbase/core/io/http_context.hxx +1 -1
- data/ext/couchbase/core/io/http_session.hxx +10 -0
- data/ext/couchbase/core/io/http_session_manager.hxx +5 -3
- data/ext/couchbase/core/io/mcbp_session.cxx +28 -1
- data/ext/couchbase/core/io/retry_orchestrator.hxx +3 -2
- data/ext/couchbase/core/json_string.hxx +5 -0
- data/ext/couchbase/core/meta/version.cxx +18 -4
- data/ext/couchbase/core/mozilla_ca_bundle.hxx +39 -0
- data/ext/couchbase/core/operations/document_analytics.cxx +1 -0
- data/ext/couchbase/core/operations/document_analytics.hxx +1 -0
- data/ext/couchbase/core/operations/document_append.hxx +1 -1
- data/ext/couchbase/core/operations/document_decrement.hxx +1 -1
- data/ext/couchbase/core/operations/document_exists.hxx +1 -1
- data/ext/couchbase/core/operations/document_get.hxx +1 -1
- data/ext/couchbase/core/operations/document_get_and_lock.hxx +1 -1
- data/ext/couchbase/core/operations/document_get_and_touch.hxx +1 -1
- data/ext/couchbase/core/operations/document_get_projected.hxx +1 -1
- data/ext/couchbase/core/operations/document_increment.hxx +1 -1
- data/ext/couchbase/core/operations/document_insert.hxx +1 -1
- data/ext/couchbase/core/operations/document_lookup_in.hxx +1 -1
- data/ext/couchbase/core/operations/document_mutate_in.hxx +1 -1
- data/ext/couchbase/core/operations/document_prepend.hxx +1 -1
- data/ext/couchbase/core/operations/document_query.cxx +2 -0
- data/ext/couchbase/core/operations/document_query.hxx +6 -0
- data/ext/couchbase/core/operations/document_remove.hxx +1 -1
- data/ext/couchbase/core/operations/document_replace.hxx +1 -1
- data/ext/couchbase/core/operations/document_search.cxx +4 -1
- data/ext/couchbase/core/operations/document_search.hxx +2 -1
- data/ext/couchbase/core/operations/document_touch.hxx +1 -1
- data/ext/couchbase/core/operations/document_unlock.hxx +1 -1
- data/ext/couchbase/core/operations/document_upsert.hxx +1 -1
- data/ext/couchbase/core/operations/document_view.hxx +1 -0
- data/ext/couchbase/core/protocol/client_request.hxx +11 -2
- data/ext/couchbase/core/public_fwd.hxx +21 -0
- data/ext/couchbase/core/tls_verify_mode.hxx +26 -0
- data/ext/couchbase/core/topology/configuration.cxx +15 -2
- data/ext/couchbase/core/topology/configuration.hxx +5 -1
- data/ext/couchbase/core/transactions/attempt_context_testing_hooks.cxx +93 -0
- data/ext/couchbase/core/transactions/attempt_context_testing_hooks.hxx +48 -75
- data/ext/couchbase/core/transactions/cleanup_testing_hooks.cxx +52 -0
- data/ext/couchbase/core/transactions/cleanup_testing_hooks.hxx +17 -31
- data/ext/couchbase/core/transactions/exceptions.hxx +12 -9
- data/ext/couchbase/core/utils/connection_string.cxx +17 -0
- data/ext/couchbase/core/utils/json.cxx +4 -1
- data/ext/couchbase/couchbase/behavior_options.hxx +10 -1
- data/ext/couchbase/couchbase/boolean_field_query.hxx +77 -0
- data/ext/couchbase/couchbase/boolean_query.hxx +223 -0
- data/ext/couchbase/couchbase/cluster.hxx +42 -1
- data/ext/couchbase/couchbase/conjunction_query.hxx +88 -0
- data/ext/couchbase/couchbase/date_range.hxx +69 -0
- data/ext/couchbase/couchbase/date_range_facet.hxx +56 -0
- data/ext/couchbase/couchbase/date_range_facet_result.hxx +55 -0
- data/ext/couchbase/couchbase/date_range_query.hxx +265 -0
- data/ext/couchbase/couchbase/disjunction_query.hxx +109 -0
- data/ext/couchbase/couchbase/doc_id_query.hxx +111 -0
- data/ext/couchbase/couchbase/error_context.hxx +7 -6
- data/ext/couchbase/couchbase/fmt/analytics_scan_consistency.hxx +52 -0
- data/ext/couchbase/couchbase/fmt/search_scan_consistency.hxx +49 -0
- data/ext/couchbase/couchbase/geo_bounding_box_query.hxx +107 -0
- data/ext/couchbase/couchbase/geo_distance_query.hxx +109 -0
- data/ext/couchbase/couchbase/geo_point.hxx +32 -0
- data/ext/couchbase/couchbase/geo_polygon_query.hxx +85 -0
- data/ext/couchbase/couchbase/highlight_style.hxx +45 -0
- data/ext/couchbase/couchbase/match_all_query.hxx +43 -0
- data/ext/couchbase/couchbase/match_none_query.hxx +43 -0
- data/ext/couchbase/couchbase/match_operator.hxx +45 -0
- data/ext/couchbase/couchbase/match_phrase_query.hxx +108 -0
- data/ext/couchbase/couchbase/match_query.hxx +163 -0
- data/ext/couchbase/couchbase/numeric_range.hxx +58 -0
- data/ext/couchbase/couchbase/numeric_range_facet.hxx +56 -0
- data/ext/couchbase/couchbase/numeric_range_facet_result.hxx +55 -0
- data/ext/couchbase/couchbase/numeric_range_query.hxx +143 -0
- data/ext/couchbase/couchbase/phrase_query.hxx +93 -0
- data/ext/couchbase/couchbase/prefix_query.hxx +82 -0
- data/ext/couchbase/couchbase/query_string_query.hxx +72 -0
- data/ext/couchbase/couchbase/regexp_query.hxx +82 -0
- data/ext/couchbase/couchbase/scope.hxx +40 -0
- data/ext/couchbase/couchbase/search_date_range.hxx +68 -0
- data/ext/couchbase/couchbase/search_error_context.hxx +138 -0
- data/ext/couchbase/couchbase/search_facet.hxx +60 -0
- data/ext/couchbase/couchbase/search_facet_result.hxx +50 -0
- data/ext/couchbase/couchbase/search_meta_data.hxx +85 -0
- data/ext/couchbase/couchbase/search_metrics.hxx +127 -0
- data/ext/couchbase/couchbase/search_numeric_range.hxx +69 -0
- data/ext/couchbase/couchbase/search_options.hxx +509 -0
- data/ext/couchbase/couchbase/search_query.hxx +69 -0
- data/ext/couchbase/couchbase/search_result.hxx +77 -0
- data/ext/couchbase/couchbase/search_row.hxx +104 -0
- data/ext/couchbase/couchbase/search_row_location.hxx +55 -0
- data/ext/couchbase/couchbase/search_row_locations.hxx +86 -0
- data/ext/couchbase/couchbase/search_scan_consistency.hxx +34 -0
- data/ext/couchbase/couchbase/search_sort.hxx +58 -0
- data/ext/couchbase/couchbase/search_sort_field.hxx +117 -0
- data/ext/couchbase/couchbase/search_sort_field_missing.hxx +26 -0
- data/ext/couchbase/couchbase/search_sort_field_mode.hxx +27 -0
- data/ext/couchbase/couchbase/search_sort_field_type.hxx +28 -0
- data/ext/couchbase/couchbase/search_sort_id.hxx +60 -0
- data/ext/couchbase/couchbase/search_sort_score.hxx +60 -0
- data/ext/couchbase/couchbase/search_term_range.hxx +51 -0
- data/ext/couchbase/couchbase/security_options.hxx +3 -0
- data/ext/couchbase/couchbase/term_facet.hxx +48 -0
- data/ext/couchbase/couchbase/term_facet_result.hxx +55 -0
- data/ext/couchbase/couchbase/term_query.hxx +151 -0
- data/ext/couchbase/couchbase/term_range_query.hxx +142 -0
- data/ext/couchbase/couchbase/tracing/request_span.hxx +63 -0
- data/ext/couchbase/couchbase/tracing/request_tracer.hxx +2 -40
- data/ext/couchbase/couchbase/transactions/async_attempt_context.hxx +83 -4
- data/ext/couchbase/couchbase/transactions/attempt_context.hxx +67 -0
- data/ext/couchbase/couchbase/transactions/transaction_get_result.hxx +2 -0
- data/ext/couchbase/couchbase/transactions/transaction_keyspace.hxx +11 -1
- data/ext/couchbase/couchbase/transactions/transaction_options.hxx +79 -8
- data/ext/couchbase/couchbase/transactions/transaction_query_options.hxx +128 -15
- data/ext/couchbase/couchbase/transactions/transaction_query_result.hxx +4 -0
- data/ext/couchbase/couchbase/transactions/transaction_result.hxx +1 -1
- data/ext/couchbase/couchbase/transactions/transactions_cleanup_config.hxx +5 -3
- data/ext/couchbase/couchbase/transactions/transactions_config.hxx +9 -5
- data/ext/couchbase/couchbase/transactions/transactions_query_config.hxx +6 -3
- data/ext/couchbase/couchbase/transactions.hxx +34 -1
- data/ext/couchbase/couchbase/wildcard_query.hxx +83 -0
- data/ext/couchbase/test/CMakeLists.txt +7 -5
- data/ext/couchbase/test/benchmark_helper_integration.hxx +2 -2
- data/ext/couchbase/test/test_helper.hxx +5 -5
- data/ext/couchbase/test/test_integration_analytics.cxx +28 -6
- data/ext/couchbase/test/test_integration_collections.cxx +7 -3
- data/ext/couchbase/test/test_integration_connect.cxx +7 -3
- data/ext/couchbase/test/test_integration_crud.cxx +13 -3
- data/ext/couchbase/test/test_integration_diagnostics.cxx +11 -5
- data/ext/couchbase/test/test_integration_durability.cxx +12 -7
- data/ext/couchbase/test/test_integration_examples.cxx +283 -11
- data/ext/couchbase/test/test_integration_management.cxx +147 -91
- data/ext/couchbase/test/test_integration_query.cxx +68 -10
- data/ext/couchbase/test/test_integration_range_scan.cxx +12 -12
- data/ext/couchbase/test/test_integration_read_replica.cxx +48 -11
- data/ext/couchbase/test/test_integration_search.cxx +22 -2
- data/ext/couchbase/test/test_integration_subdoc.cxx +62 -11
- data/ext/couchbase/test/test_integration_tracer.cxx +5 -0
- data/ext/couchbase/test/test_integration_transcoders.cxx +13 -5
- data/ext/couchbase/test/{test_transaction_transaction_context.cxx → test_transaction_context.cxx} +1 -1
- data/ext/couchbase/test/test_transaction_examples.cxx +195 -0
- data/ext/couchbase/test/{test_transaction_transaction_simple.cxx → test_transaction_simple.cxx} +17 -5
- data/ext/couchbase/test/{test_transaction_transaction_simple_async.cxx → test_transaction_simple_async.cxx} +19 -21
- data/ext/couchbase/test/test_unit_config_profiles.cxx +1 -1
- data/ext/couchbase/test/test_unit_json_transcoder.cxx +4 -0
- data/ext/couchbase/test/test_unit_search.cxx +427 -0
- data/ext/couchbase/test/test_unit_transaction_utils.cxx +10 -1
- data/ext/couchbase/test/test_unit_utils.cxx +8 -4
- data/ext/couchbase.cxx +58 -16
- data/ext/revisions.rb +3 -3
- data/lib/couchbase/authenticator.rb +0 -1
- data/lib/couchbase/cluster.rb +0 -4
- data/lib/couchbase/config_profiles.rb +1 -1
- data/lib/couchbase/json_transcoder.rb +12 -5
- data/lib/couchbase/management/collection_query_index_manager.rb +54 -15
- data/lib/couchbase/management/query_index_manager.rb +70 -5
- data/lib/couchbase/raw_binary_transcoder.rb +37 -0
- data/lib/couchbase/raw_json_transcoder.rb +38 -0
- data/lib/couchbase/raw_string_transcoder.rb +40 -0
- data/lib/couchbase/search_options.rb +5 -0
- data/lib/couchbase/transcoder_flags.rb +62 -0
- data/lib/couchbase/version.rb +1 -1
- metadata +139 -11
- data/ext/couchbase/core/config_profile.cxx +0 -47
- /data/ext/couchbase/test/{test_transaction_transaction_public_async_api.cxx → test_transaction_public_async_api.cxx} +0 -0
- /data/ext/couchbase/test/{test_transaction_transaction_public_blocking_api.cxx → test_transaction_public_blocking_api.cxx} +0 -0
|
@@ -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
|
|
@@ -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
|
|
|
@@ -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
|
-
|
|
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::
|
|
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
|
-
|
|
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
|
|
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)
|
|
@@ -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
|