couchbase 4.2.1 → 4.2.2
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.
- package/CMakeLists.txt +1 -0
- package/deps/couchbase-cxx-client/.gitmodules +3 -0
- package/deps/couchbase-cxx-client/.idea/misc.xml +1 -0
- package/deps/couchbase-cxx-client/.idea/vcs.xml +1 -0
- package/deps/couchbase-cxx-client/CMakeLists.txt +11 -1
- package/deps/couchbase-cxx-client/README.md +3 -3
- package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +4 -1
- package/deps/couchbase-cxx-client/cmake/VersionInfo.cmake +13 -1
- package/deps/couchbase-cxx-client/cmake/build_version.hxx.in +1 -0
- package/deps/couchbase-cxx-client/core/cluster.hxx +15 -5
- package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +17 -6
- package/deps/couchbase-cxx-client/core/impl/cluster.cxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/collection_query_index_manager.cxx +93 -0
- package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +11 -0
- package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +119 -0
- package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +108 -0
- package/deps/couchbase-cxx-client/core/impl/get.cxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +76 -0
- package/deps/couchbase-cxx-client/core/impl/query.cxx +5 -7
- package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +168 -0
- package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +15 -1
- package/deps/couchbase-cxx-client/core/logger/configuration.hxx +3 -0
- package/deps/couchbase-cxx-client/core/logger/level.hxx +21 -0
- package/deps/couchbase-cxx-client/core/logger/logger.hxx +4 -6
- package/deps/couchbase-cxx-client/core/meta/CMakeLists.txt +4 -2
- package/deps/couchbase-cxx-client/core/meta/features.hxx +31 -0
- package/deps/couchbase-cxx-client/core/meta/version.cxx +67 -5
- package/deps/couchbase-cxx-client/core/meta/version.hxx +12 -1
- package/deps/couchbase-cxx-client/core/metrics/CMakeLists.txt +4 -1
- package/deps/couchbase-cxx-client/core/metrics/logging_meter.cxx +46 -5
- package/deps/couchbase-cxx-client/core/metrics/logging_meter.hxx +10 -26
- package/deps/couchbase-cxx-client/core/operations/document_get_projected.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/document_query.cxx +10 -12
- package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -3
- package/deps/couchbase-cxx-client/core/operations/management/query_index_build.cxx +8 -14
- package/deps/couchbase-cxx-client/core/operations/management/query_index_build.hxx +2 -1
- package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +15 -8
- package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +7 -14
- package/deps/couchbase-cxx-client/core/operations/management/query_index_create.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +11 -16
- package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +8 -12
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +4 -3
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all_deferred.cxx +21 -12
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all_deferred.hxx +3 -2
- package/deps/couchbase-cxx-client/core/origin.hxx +1 -1
- package/deps/couchbase-cxx-client/core/platform/uuid.cc +1 -2
- package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +5 -1
- package/deps/couchbase-cxx-client/core/query_context.hxx +79 -0
- package/deps/couchbase-cxx-client/core/tracing/CMakeLists.txt +3 -1
- package/deps/couchbase-cxx-client/core/tracing/threshold_logging_tracer.cxx +19 -4
- package/deps/couchbase-cxx-client/core/tracing/threshold_logging_tracer.hxx +2 -2
- package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.hxx +10 -4
- package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +52 -63
- package/deps/couchbase-cxx-client/core/transactions/attempt_context.hxx +8 -3
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +163 -126
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +24 -37
- package/deps/couchbase-cxx-client/core/transactions/forward_compat.hxx +4 -4
- package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +51 -13
- package/deps/couchbase-cxx-client/core/transactions/internal/client_record.hxx +26 -1
- package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +21 -0
- package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +40 -18
- package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +5 -0
- package/deps/couchbase-cxx-client/core/transactions/result.hxx +26 -0
- package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +48 -47
- package/deps/couchbase-cxx-client/core/transactions/staged_mutation.hxx +6 -6
- package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +33 -19
- package/deps/couchbase-cxx-client/core/transactions/transaction_get_result.hxx +18 -2
- package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +25 -2
- package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +4 -4
- package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +49 -56
- package/deps/couchbase-cxx-client/core/transactions/waitable_op_list.hxx +7 -7
- package/deps/couchbase-cxx-client/core/transactions.hxx +0 -12
- package/deps/couchbase-cxx-client/core/utils/binary.hxx +1 -1
- package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +55 -0
- package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +12 -45
- package/deps/couchbase-cxx-client/couchbase/cluster.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +6 -7
- package/deps/couchbase-cxx-client/couchbase/collection.hxx +8 -0
- package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +218 -0
- package/deps/couchbase-cxx-client/couchbase/configuration_profiles_registry.hxx +3 -0
- package/deps/couchbase-cxx-client/couchbase/create_primary_query_index_options.hxx +166 -0
- package/deps/couchbase-cxx-client/couchbase/create_query_index_options.hxx +172 -0
- package/deps/couchbase-cxx-client/couchbase/drop_primary_query_index_options.hxx +129 -0
- package/deps/couchbase-cxx-client/couchbase/drop_query_index_options.hxx +116 -0
- package/deps/couchbase-cxx-client/couchbase/fmt/cas.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/fmt/query_scan_consistency.hxx +46 -0
- package/deps/couchbase-cxx-client/couchbase/fmt/query_status.hxx +70 -0
- package/deps/couchbase-cxx-client/couchbase/fmt/tls_verify_mode.hxx +46 -0
- package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +100 -0
- package/deps/couchbase-cxx-client/{core → couchbase}/management/query_index.hxx +2 -2
- package/deps/couchbase-cxx-client/couchbase/metrics/meter.hxx +16 -0
- package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +178 -6
- package/deps/couchbase-cxx-client/couchbase/query_options.hxx +1 -18
- package/deps/couchbase-cxx-client/couchbase/scope.hxx +5 -2
- package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +16 -0
- package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +11 -4
- package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +5 -3
- package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +16 -0
- package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +0 -6
- package/deps/couchbase-cxx-client/couchbase/watch_query_indexes_options.hxx +115 -0
- package/deps/couchbase-cxx-client/examples/minimal.cxx +3 -1
- package/deps/couchbase-cxx-client/test/test_integration_crud.cxx +72 -0
- package/deps/couchbase-cxx-client/test/test_integration_management.cxx +727 -310
- package/deps/couchbase-cxx-client/test/test_integration_query.cxx +4 -8
- package/deps/couchbase-cxx-client/test/test_integration_transcoders.cxx +14 -0
- package/deps/couchbase-cxx-client/test/test_transaction_transaction_public_blocking_api.cxx +34 -19
- package/deps/couchbase-cxx-client/test/test_unit_transaction_logging.cxx +66 -22
- package/deps/couchbase-cxx-client/test/test_unit_utils.cxx +51 -0
- package/deps/couchbase-cxx-client/test/tools/tool_kv_loader.cxx +2 -2
- package/deps/couchbase-cxx-client/test/utils/integration_test_guard.cxx +2 -0
- package/deps/couchbase-cxx-client/test/utils/wait_until.cxx +4 -4
- package/deps/couchbase-cxx-client/third_party/docopt/.travis.yml +103 -0
- package/deps/couchbase-cxx-client/third_party/docopt/CMakeLists.txt +129 -0
- package/deps/couchbase-cxx-client/third_party/docopt/LICENSE-Boost-1.0 +23 -0
- package/deps/couchbase-cxx-client/third_party/docopt/LICENSE-MIT +23 -0
- package/deps/couchbase-cxx-client/third_party/docopt/README.rst +479 -0
- package/deps/couchbase-cxx-client/third_party/docopt/docopt-config.cmake +1 -0
- package/deps/couchbase-cxx-client/third_party/docopt/docopt.cpp +687 -0
- package/deps/couchbase-cxx-client/third_party/docopt/docopt.h +98 -0
- package/deps/couchbase-cxx-client/third_party/docopt/docopt.pc.in +9 -0
- package/deps/couchbase-cxx-client/third_party/docopt/docopt_private.h +676 -0
- package/deps/couchbase-cxx-client/third_party/docopt/docopt_util.h +122 -0
- package/deps/couchbase-cxx-client/third_party/docopt/docopt_value.h +341 -0
- package/deps/couchbase-cxx-client/third_party/docopt/examples/naval_fate.cpp +36 -0
- package/deps/couchbase-cxx-client/third_party/docopt/main.cpp +16 -0
- package/deps/couchbase-cxx-client/third_party/docopt/run_testcase.cpp +40 -0
- package/deps/couchbase-cxx-client/third_party/docopt/run_tests.py +72 -0
- package/deps/couchbase-cxx-client/third_party/docopt/testcases.docopt +957 -0
- package/deps/couchbase-cxx-client/tools/CMakeLists.txt +14 -0
- package/deps/couchbase-cxx-client/tools/cbc.cxx +65 -0
- package/deps/couchbase-cxx-client/tools/command.hxx +31 -0
- package/deps/couchbase-cxx-client/tools/command_registry.cxx +43 -0
- package/deps/couchbase-cxx-client/tools/command_registry.hxx +39 -0
- package/deps/couchbase-cxx-client/tools/get.cxx +267 -0
- package/deps/couchbase-cxx-client/tools/get.hxx +26 -0
- package/deps/couchbase-cxx-client/tools/query.cxx +441 -0
- package/deps/couchbase-cxx-client/tools/query.hxx +26 -0
- package/deps/couchbase-cxx-client/tools/utils.cxx +418 -0
- package/deps/couchbase-cxx-client/tools/utils.hxx +150 -0
- package/deps/couchbase-cxx-client/tools/version.cxx +82 -0
- package/deps/couchbase-cxx-client/tools/version.hxx +26 -0
- package/dist/authenticators.d.ts +2 -2
- package/dist/authenticators.js +1 -2
- package/dist/binding.d.ts +32 -16
- package/dist/cluster.js +14 -7
- package/dist/collection.d.ts +6 -0
- package/dist/collection.js +8 -0
- package/dist/queryexecutor.js +1 -1
- package/dist/queryindexmanager.d.ts +100 -4
- package/dist/queryindexmanager.js +344 -118
- package/dist/transactions.js +0 -2
- package/package.json +1 -1
- package/src/connection.cpp +2 -0
- package/src/connection.hpp +1 -0
- package/src/connection_autogen.cpp +16 -0
- package/src/jstocbpp_autogen.hpp +93 -23
- package/src/jstocbpp_basic.hpp +24 -0
- package/src/jstocbpp_transactions.hpp +0 -8
- package/tools/gen-bindings-js.js +1 -0
- package/tools/gen-bindings-json.py +4 -2
- package/deps/couchbase-cxx-client/core/transactions/logging.cxx +0 -107
package/CMakeLists.txt
CHANGED
|
@@ -17,6 +17,7 @@ include_directories(${CMAKE_JS_INC})
|
|
|
17
17
|
|
|
18
18
|
set(COUCHBASE_CXX_CLIENT_BUILD_TESTS OFF CACHE BOOL "" FORCE)
|
|
19
19
|
set(COUCHBASE_CXX_CLIENT_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
|
20
|
+
set(COUCHBASE_CXX_CLIENT_BUILD_TOOLS OFF CACHE BOOL "" FORCE)
|
|
20
21
|
set(COUCHBASE_CXX_CLIENT_POST_LINKED_OPENSSL ON CACHE BOOL "" FORCE)
|
|
21
22
|
set(COUCHBASE_CXX_CLIENT_STATIC_STDLIB ON CACHE BOOL "" FORCE)
|
|
22
23
|
add_subdirectory(deps/couchbase-cxx-client)
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
5
5
|
<mapping directory="$PROJECT_DIR$/third_party/asio" vcs="Git" />
|
|
6
6
|
<mapping directory="$PROJECT_DIR$/third_party/catch2" vcs="Git" />
|
|
7
|
+
<mapping directory="$PROJECT_DIR$/third_party/docopt" vcs="Git" />
|
|
7
8
|
<mapping directory="$PROJECT_DIR$/third_party/fmt" vcs="Git" />
|
|
8
9
|
<mapping directory="$PROJECT_DIR$/third_party/gsl" vcs="Git" />
|
|
9
10
|
<mapping directory="$PROJECT_DIR$/third_party/hdr_histogram_c" vcs="Git" />
|
|
@@ -259,11 +259,14 @@ set(couchbase_cxx_client_FILES
|
|
|
259
259
|
core/impl/append.cxx
|
|
260
260
|
core/impl/best_effort_retry_strategy.cxx
|
|
261
261
|
core/impl/build_deferred_query_indexes.cxx
|
|
262
|
+
core/impl/collection_query_index_manager.cxx
|
|
262
263
|
core/impl/cluster.cxx
|
|
263
264
|
core/impl/common_error_category.cxx
|
|
264
265
|
core/impl/configuration_profiles_registry.cxx
|
|
266
|
+
core/impl/create_query_index.cxx
|
|
265
267
|
core/impl/decrement.cxx
|
|
266
268
|
core/impl/dns_srv_tracker.cxx
|
|
269
|
+
core/impl/drop_query_index.cxx
|
|
267
270
|
core/impl/exists.cxx
|
|
268
271
|
core/impl/expiry.cxx
|
|
269
272
|
core/impl/fail_fast_retry_strategy.cxx
|
|
@@ -272,6 +275,7 @@ set(couchbase_cxx_client_FILES
|
|
|
272
275
|
core/impl/get_all_replicas.cxx
|
|
273
276
|
core/impl/get_and_lock.cxx
|
|
274
277
|
core/impl/get_and_touch.cxx
|
|
278
|
+
core/impl/get_all_query_indexes.cxx
|
|
275
279
|
core/impl/get_any_replica.cxx
|
|
276
280
|
core/impl/get_replica.cxx
|
|
277
281
|
core/impl/increment.cxx
|
|
@@ -293,6 +297,7 @@ set(couchbase_cxx_client_FILES
|
|
|
293
297
|
core/impl/search_error_category.cxx
|
|
294
298
|
core/impl/streaming_json_lexter_error_category.cxx
|
|
295
299
|
core/impl/unlock.cxx
|
|
300
|
+
core/impl/watch_query_indexes.cxx
|
|
296
301
|
core/impl/subdoc/array_add_unique.cxx
|
|
297
302
|
core/impl/subdoc/array_append.cxx
|
|
298
303
|
core/impl/subdoc/array_insert.cxx
|
|
@@ -325,7 +330,6 @@ set(couchbase_cxx_client_FILES
|
|
|
325
330
|
core/transactions/attempt_context_impl.cxx
|
|
326
331
|
core/transactions/binary.cxx
|
|
327
332
|
core/transactions/exceptions.cxx
|
|
328
|
-
core/transactions/logging.cxx
|
|
329
333
|
core/transactions/result.cxx
|
|
330
334
|
core/transactions/staged_mutation.cxx
|
|
331
335
|
core/transactions/utils.cxx
|
|
@@ -411,3 +415,9 @@ option(COUCHBASE_CXX_CLIENT_BUILD_EXAMPLES "Build example programs" TRUE)
|
|
|
411
415
|
if (COUCHBASE_CXX_CLIENT_BUILD_EXAMPLES)
|
|
412
416
|
add_subdirectory(examples)
|
|
413
417
|
endif ()
|
|
418
|
+
|
|
419
|
+
option(COUCHBASE_CXX_CLIENT_BUILD_TOOLS "Build tools" TRUE)
|
|
420
|
+
if (COUCHBASE_CXX_CLIENT_BUILD_TOOLS)
|
|
421
|
+
add_subdirectory(third_party/docopt)
|
|
422
|
+
add_subdirectory(tools)
|
|
423
|
+
endif ()
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Couchbase C++ Client
|
|
2
2
|
|
|
3
3
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
4
|
-
[](https://github.com/couchbaselabs/couchbase-cxx-client/actions?query=workflow%3Alinters)
|
|
5
|
-
[](https://github.com/couchbaselabs/couchbase-cxx-client/actions?query=workflow%3Asanitizers)
|
|
6
|
-
[](https://github.com/couchbaselabs/couchbase-cxx-client/actions?query=workflow%3Atests)
|
|
4
|
+
[](https://github.com/couchbaselabs/couchbase-cxx-client/actions?query=workflow%3Alinters+branch%3Amain)
|
|
5
|
+
[](https://github.com/couchbaselabs/couchbase-cxx-client/actions?query=workflow%3Asanitizers+branch%3Amain)
|
|
6
|
+
[](https://github.com/couchbaselabs/couchbase-cxx-client/actions?query=workflow%3Atests+branch%3Amain)
|
|
7
7
|
|
|
8
8
|
This repo is under active development and is not yet ready for release as a public SDK.
|
|
9
9
|
|
|
@@ -67,7 +67,6 @@ function(set_project_warnings project_name)
|
|
|
67
67
|
-Wuseless-cast # warn if you perform a cast to the same type
|
|
68
68
|
-Wdeprecated-declarations # warn if [[deprecated]] elements being used
|
|
69
69
|
)
|
|
70
|
-
|
|
71
70
|
set(CLANG_WARNINGS ${COMMON_WARNINGS}
|
|
72
71
|
-Wshadow # warn the user if a variable declaration shadows one from a parent context
|
|
73
72
|
)
|
|
@@ -77,6 +76,10 @@ function(set_project_warnings project_name)
|
|
|
77
76
|
elseif(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
|
|
78
77
|
set(PROJECT_WARNINGS ${CLANG_WARNINGS})
|
|
79
78
|
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
79
|
+
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12.0.0" AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
80
|
+
# One of the occurrences: https://github.com/chriskohlhoff/asio/pull/1176
|
|
81
|
+
set(GCC_WARNINGS ${GCC_WARNINGS} -Wno-error=null-dereference -Wno-error=array-bounds)
|
|
82
|
+
endif()
|
|
80
83
|
set(PROJECT_WARNINGS ${GCC_WARNINGS})
|
|
81
84
|
else()
|
|
82
85
|
message(AUTHOR_WARNING "No compiler warnings set for '${CMAKE_CXX_COMPILER_ID}' compiler.")
|
|
@@ -9,7 +9,19 @@ if(NOT COUCHBASE_CXX_CLIENT_GIT_REVISION)
|
|
|
9
9
|
else()
|
|
10
10
|
set(COUCHBASE_CXX_CLIENT_GIT_REVISION "unknown")
|
|
11
11
|
endif()
|
|
12
|
-
|
|
12
|
+
endif()
|
|
13
|
+
string(SUBSTRING "${COUCHBASE_CXX_CLIENT_GIT_REVISION}" 0 7 COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT)
|
|
14
|
+
|
|
15
|
+
if(NOT COUCHBASE_CXX_CLIENT_GIT_DESCRIBE)
|
|
16
|
+
if(GIT)
|
|
17
|
+
execute_process(
|
|
18
|
+
COMMAND git describe --always --long HEAD
|
|
19
|
+
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
20
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
21
|
+
OUTPUT_VARIABLE COUCHBASE_CXX_CLIENT_GIT_DESCRIBE)
|
|
22
|
+
else()
|
|
23
|
+
set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE "unknown")
|
|
24
|
+
endif()
|
|
13
25
|
endif()
|
|
14
26
|
|
|
15
27
|
string(TIMESTAMP COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP "%Y-%m-%d %H:%M:%S" UTC)
|
|
@@ -30,5 +30,6 @@ constexpr auto COUCHBASE_CXX_CLIENT_VERSION_PATCH = @couchbase_cxx_client_VERSIO
|
|
|
30
30
|
constexpr auto COUCHBASE_CXX_CLIENT_VERSION_BUILD = @couchbase_cxx_client_BUILD_NUMBER@;
|
|
31
31
|
constexpr auto COUCHBASE_CXX_CLIENT_GIT_REVISION = "@COUCHBASE_CXX_CLIENT_GIT_REVISION@";
|
|
32
32
|
constexpr auto COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT = "@COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT@";
|
|
33
|
+
constexpr auto COUCHBASE_CXX_CLIENT_GIT_DESCRIBE = "@COUCHBASE_CXX_CLIENT_GIT_DESCRIBE@";
|
|
33
34
|
#cmakedefine COUCHBASE_CXX_CLIENT_STATIC_STDLIB 1
|
|
34
35
|
#cmakedefine COUCHBASE_CXX_CLIENT_STATIC_OPENSSL 1
|
|
@@ -88,17 +88,18 @@ class cluster : public std::enable_shared_from_this<cluster>
|
|
|
88
88
|
tracer_ = std::make_shared<tracing::noop_tracer>();
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
+
tracer_->start();
|
|
91
92
|
// ignore the metrics options if a meter was passed in.
|
|
92
93
|
if (nullptr != origin_.options().meter) {
|
|
93
94
|
meter_ = origin_.options().meter;
|
|
94
95
|
} else {
|
|
95
|
-
|
|
96
96
|
if (origin_.options().enable_metrics) {
|
|
97
97
|
meter_ = std::make_shared<metrics::logging_meter>(ctx_, origin_.options().metrics_options);
|
|
98
98
|
} else {
|
|
99
99
|
meter_ = std::make_shared<metrics::noop_meter>();
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
+
meter_->start();
|
|
102
103
|
session_manager_->set_tracer(tracer_);
|
|
103
104
|
if (origin_.options().enable_dns_srv) {
|
|
104
105
|
auto [hostname, _] = origin_.next_address();
|
|
@@ -110,7 +111,7 @@ class cluster : public std::enable_shared_from_this<cluster>
|
|
|
110
111
|
[self, hostname = std::move(hostname), handler = std::forward<Handler>(handler)](origin::node_list nodes,
|
|
111
112
|
std::error_code ec) mutable {
|
|
112
113
|
if (ec) {
|
|
113
|
-
return handler(ec);
|
|
114
|
+
return self->close([ec, handler = std::forward<Handler>(handler)]() mutable { handler(ec); });
|
|
114
115
|
}
|
|
115
116
|
if (!nodes.empty()) {
|
|
116
117
|
self->origin_.set_nodes(std::move(nodes));
|
|
@@ -141,7 +142,13 @@ class cluster : public std::enable_shared_from_this<cluster>
|
|
|
141
142
|
self->session_manager_->close();
|
|
142
143
|
handler();
|
|
143
144
|
self->work_.reset();
|
|
145
|
+
if (self->tracer_) {
|
|
146
|
+
self->tracer_->stop();
|
|
147
|
+
}
|
|
144
148
|
self->tracer_.reset();
|
|
149
|
+
if (self->meter_) {
|
|
150
|
+
self->meter_->stop();
|
|
151
|
+
}
|
|
145
152
|
self->meter_.reset();
|
|
146
153
|
}));
|
|
147
154
|
}
|
|
@@ -395,7 +402,7 @@ class cluster : public std::enable_shared_from_this<cluster>
|
|
|
395
402
|
tls_.load_verify_file(origin_.options().trust_certificate, ec);
|
|
396
403
|
if (ec) {
|
|
397
404
|
CB_LOG_ERROR("[{}]: unable to load verify file \"{}\": {}", id_, origin_.options().trust_certificate, ec.message());
|
|
398
|
-
return handler(ec);
|
|
405
|
+
return close([ec, handler = std::forward<Handler>(handler)]() mutable { return handler(ec); });
|
|
399
406
|
}
|
|
400
407
|
}
|
|
401
408
|
#ifdef COUCHBASE_CXX_CLIENT_TLS_KEY_LOG_FILE
|
|
@@ -414,13 +421,13 @@ class cluster : public std::enable_shared_from_this<cluster>
|
|
|
414
421
|
tls_.use_certificate_chain_file(origin_.certificate_path(), ec);
|
|
415
422
|
if (ec) {
|
|
416
423
|
CB_LOG_ERROR("[{}]: unable to load certificate chain \"{}\": {}", id_, origin_.certificate_path(), ec.message());
|
|
417
|
-
return handler(ec);
|
|
424
|
+
return close([ec, handler = std::forward<Handler>(handler)]() mutable { return handler(ec); });
|
|
418
425
|
}
|
|
419
426
|
CB_LOG_DEBUG(R"([{}]: use TLS private key: "{}")", id_, origin_.key_path());
|
|
420
427
|
tls_.use_private_key_file(origin_.key_path(), asio::ssl::context::file_format::pem, ec);
|
|
421
428
|
if (ec) {
|
|
422
429
|
CB_LOG_ERROR("[{}]: unable to load private key \"{}\": {}", id_, origin_.key_path(), ec.message());
|
|
423
|
-
return handler(ec);
|
|
430
|
+
return close([ec, handler = std::forward<Handler>(handler)]() mutable { return handler(ec); });
|
|
424
431
|
}
|
|
425
432
|
}
|
|
426
433
|
session_ = io::mcbp_session(id_, ctx_, tls_, origin_, dns_srv_tracker_);
|
|
@@ -465,6 +472,9 @@ class cluster : public std::enable_shared_from_this<cluster>
|
|
|
465
472
|
}
|
|
466
473
|
});
|
|
467
474
|
}
|
|
475
|
+
if (ec) {
|
|
476
|
+
return self->close([ec, handler = std::forward<Handler>(handler)]() mutable { handler(ec); });
|
|
477
|
+
}
|
|
468
478
|
handler(ec);
|
|
469
479
|
});
|
|
470
480
|
}
|
|
@@ -39,22 +39,24 @@ build_context(Response& resp)
|
|
|
39
39
|
std::move(resp.ctx.http_body),
|
|
40
40
|
std::move(resp.ctx.path) };
|
|
41
41
|
}
|
|
42
|
-
|
|
43
42
|
void
|
|
44
43
|
initiate_build_deferred_indexes(std::shared_ptr<couchbase::core::cluster> core,
|
|
45
44
|
std::string bucket_name,
|
|
46
45
|
build_query_index_options::built options,
|
|
46
|
+
query_context query_ctx,
|
|
47
|
+
std::string collection_name,
|
|
47
48
|
build_deferred_query_indexes_handler&& handler)
|
|
48
49
|
{
|
|
49
50
|
core->execute(
|
|
50
51
|
operations::management::query_index_get_all_deferred_request{
|
|
51
52
|
bucket_name,
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
"",
|
|
54
|
+
collection_name,
|
|
55
|
+
query_ctx,
|
|
54
56
|
{},
|
|
55
57
|
options.timeout,
|
|
56
58
|
},
|
|
57
|
-
[core, bucket_name, options = std::move(options), handler = std::move(handler)](
|
|
59
|
+
[core, bucket_name, collection_name, options = std::move(options), query_ctx, handler = std::move(handler)](
|
|
58
60
|
operations::management::query_index_get_all_deferred_response resp1) mutable {
|
|
59
61
|
auto list_resp = std::move(resp1);
|
|
60
62
|
if (list_resp.ctx.ec) {
|
|
@@ -66,8 +68,9 @@ initiate_build_deferred_indexes(std::shared_ptr<couchbase::core::cluster> core,
|
|
|
66
68
|
core->execute(
|
|
67
69
|
operations::management::query_index_build_request{
|
|
68
70
|
std::move(bucket_name),
|
|
69
|
-
|
|
70
|
-
|
|
71
|
+
"",
|
|
72
|
+
collection_name,
|
|
73
|
+
query_ctx,
|
|
71
74
|
std::move(list_resp.index_names),
|
|
72
75
|
{},
|
|
73
76
|
options.timeout,
|
|
@@ -78,4 +81,12 @@ initiate_build_deferred_indexes(std::shared_ptr<couchbase::core::cluster> core,
|
|
|
78
81
|
});
|
|
79
82
|
});
|
|
80
83
|
}
|
|
84
|
+
void
|
|
85
|
+
initiate_build_deferred_indexes(std::shared_ptr<couchbase::core::cluster> core,
|
|
86
|
+
std::string bucket_name,
|
|
87
|
+
build_query_index_options::built options,
|
|
88
|
+
build_deferred_query_indexes_handler&& handler)
|
|
89
|
+
{
|
|
90
|
+
return initiate_build_deferred_indexes(core, std::move(bucket_name), options, {}, "", std::move(handler));
|
|
91
|
+
}
|
|
81
92
|
} // namespace couchbase::core::impl
|
|
@@ -169,7 +169,7 @@ initiate_cluster_connect(asio::io_service& io,
|
|
|
169
169
|
auto c = couchbase::cluster(core);
|
|
170
170
|
// create txns as we want to start cleanup immediately if configured with metadata_collection
|
|
171
171
|
[[maybe_unused]] std::shared_ptr<couchbase::transactions::transactions> t = c.transactions();
|
|
172
|
-
handler(c, {});
|
|
172
|
+
handler(std::move(c), {});
|
|
173
173
|
});
|
|
174
174
|
}
|
|
175
175
|
|
|
@@ -0,0 +1,93 @@
|
|
|
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
|
+
#include <core/query_context.hxx>
|
|
19
|
+
#include <couchbase/collection_query_index_manager.hxx>
|
|
20
|
+
|
|
21
|
+
namespace couchbase
|
|
22
|
+
{
|
|
23
|
+
|
|
24
|
+
void
|
|
25
|
+
collection_query_index_manager::get_all_indexes(const get_all_query_indexes_options& options, get_all_indexes_handler&& handler) const
|
|
26
|
+
{
|
|
27
|
+
return core::impl::initiate_get_all_query_indexes(core_,
|
|
28
|
+
"",
|
|
29
|
+
options.build(),
|
|
30
|
+
core::query_context(bucket_name_, scope_name_),
|
|
31
|
+
collection_name_,
|
|
32
|
+
std::forward<get_all_indexes_handler>(handler));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
void
|
|
36
|
+
collection_query_index_manager::create_index(std::string index_name,
|
|
37
|
+
std::vector<std::string> fields,
|
|
38
|
+
const create_query_index_options& options,
|
|
39
|
+
create_query_index_handler&& handler) const
|
|
40
|
+
{
|
|
41
|
+
return core::impl::initiate_create_query_index(core_,
|
|
42
|
+
"",
|
|
43
|
+
std::move(index_name),
|
|
44
|
+
std::move(fields),
|
|
45
|
+
options.build(),
|
|
46
|
+
{ bucket_name_, scope_name_ },
|
|
47
|
+
collection_name_,
|
|
48
|
+
std::forward<create_query_index_handler>(handler));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
void
|
|
52
|
+
collection_query_index_manager::create_primary_index(const create_primary_query_index_options& options,
|
|
53
|
+
create_query_index_handler&& handler) const
|
|
54
|
+
{
|
|
55
|
+
return core::impl::initiate_create_primary_query_index(
|
|
56
|
+
core_, "", options.build(), { bucket_name_, scope_name_ }, collection_name_, std::move(handler));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
void
|
|
60
|
+
collection_query_index_manager::drop_primary_index(const drop_primary_query_index_options& options,
|
|
61
|
+
drop_query_index_handler&& handler) const
|
|
62
|
+
{
|
|
63
|
+
return core::impl::initiate_drop_primary_query_index(
|
|
64
|
+
core_, "", options.build(), { bucket_name_, scope_name_ }, collection_name_, std::move(handler));
|
|
65
|
+
}
|
|
66
|
+
void
|
|
67
|
+
collection_query_index_manager::drop_index(std::string index_name,
|
|
68
|
+
const drop_query_index_options& options,
|
|
69
|
+
drop_query_index_handler&& handler) const
|
|
70
|
+
{
|
|
71
|
+
return core::impl::initiate_drop_query_index(
|
|
72
|
+
core_, "", std::move(index_name), options.build(), { bucket_name_, scope_name_ }, collection_name_, std::move(handler));
|
|
73
|
+
}
|
|
74
|
+
void
|
|
75
|
+
collection_query_index_manager::build_deferred_indexes(const build_query_index_options& options,
|
|
76
|
+
build_deferred_query_indexes_handler&& handler) const
|
|
77
|
+
{
|
|
78
|
+
return core::impl::initiate_build_deferred_indexes(core_,
|
|
79
|
+
"",
|
|
80
|
+
options.build(),
|
|
81
|
+
{ bucket_name_, scope_name_ },
|
|
82
|
+
collection_name_,
|
|
83
|
+
std::forward<build_deferred_query_indexes_handler>(handler));
|
|
84
|
+
}
|
|
85
|
+
void
|
|
86
|
+
collection_query_index_manager::watch_indexes(std::vector<std::string> index_names,
|
|
87
|
+
const watch_query_indexes_options& options,
|
|
88
|
+
watch_query_indexes_handler&& handler) const
|
|
89
|
+
{
|
|
90
|
+
return core::impl::initiate_watch_query_indexes(
|
|
91
|
+
core_, "", std::move(index_names), options.build(), { bucket_name_, scope_name_ }, collection_name_, std::move(handler));
|
|
92
|
+
}
|
|
93
|
+
} // namespace couchbase
|
|
@@ -59,4 +59,15 @@ configuration_profiles_registry::apply_profile(const std::string& name, couchbas
|
|
|
59
59
|
|
|
60
60
|
profile->apply(options);
|
|
61
61
|
}
|
|
62
|
+
|
|
63
|
+
auto
|
|
64
|
+
configuration_profiles_registry::available_profiles() -> std::vector<std::string>
|
|
65
|
+
{
|
|
66
|
+
std::vector<std::string> profile_names;
|
|
67
|
+
std::scoped_lock lock(registry::store_mutex);
|
|
68
|
+
for (const auto& [name, _] : registry::store) {
|
|
69
|
+
profile_names.push_back(name);
|
|
70
|
+
}
|
|
71
|
+
return profile_names;
|
|
72
|
+
}
|
|
62
73
|
} // namespace couchbase
|
|
@@ -0,0 +1,119 @@
|
|
|
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
|
+
#include <couchbase/error_codes.hxx>
|
|
19
|
+
#include <couchbase/query_index_manager.hxx>
|
|
20
|
+
|
|
21
|
+
#include "core/cluster.hxx"
|
|
22
|
+
#include "core/operations/management/query_index_create.hxx"
|
|
23
|
+
|
|
24
|
+
namespace couchbase::core::impl
|
|
25
|
+
{
|
|
26
|
+
template<typename Response>
|
|
27
|
+
static manager_error_context
|
|
28
|
+
build_context(Response& resp)
|
|
29
|
+
{
|
|
30
|
+
return { resp.ctx.ec,
|
|
31
|
+
resp.ctx.last_dispatched_to,
|
|
32
|
+
resp.ctx.last_dispatched_from,
|
|
33
|
+
resp.ctx.retry_attempts,
|
|
34
|
+
std::move(resp.ctx.retry_reasons),
|
|
35
|
+
std::move(resp.ctx.client_context_id),
|
|
36
|
+
resp.ctx.http_status,
|
|
37
|
+
std::move(resp.ctx.http_body),
|
|
38
|
+
std::move(resp.ctx.path) };
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
void
|
|
42
|
+
initiate_create_query_index(std::shared_ptr<couchbase::core::cluster> core,
|
|
43
|
+
std::string bucket_name,
|
|
44
|
+
std::string index_name,
|
|
45
|
+
std::vector<std::string> fields,
|
|
46
|
+
couchbase::create_query_index_options::built options,
|
|
47
|
+
query_context query_ctx,
|
|
48
|
+
std::string collection_name,
|
|
49
|
+
create_query_index_handler&& handler)
|
|
50
|
+
{
|
|
51
|
+
core->execute(
|
|
52
|
+
operations::management::query_index_create_request{
|
|
53
|
+
bucket_name,
|
|
54
|
+
"",
|
|
55
|
+
collection_name,
|
|
56
|
+
index_name,
|
|
57
|
+
fields,
|
|
58
|
+
query_ctx,
|
|
59
|
+
false,
|
|
60
|
+
options.ignore_if_exists,
|
|
61
|
+
options.condition,
|
|
62
|
+
options.deferred,
|
|
63
|
+
options.num_replicas,
|
|
64
|
+
{},
|
|
65
|
+
options.timeout,
|
|
66
|
+
},
|
|
67
|
+
[core, bucket_name, options = std::move(options), handler = std::move(handler)](
|
|
68
|
+
operations::management::query_index_create_response resp) { handler(build_context(resp)); });
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
void
|
|
72
|
+
initiate_create_query_index(std::shared_ptr<couchbase::core::cluster> core,
|
|
73
|
+
std::string bucket_name,
|
|
74
|
+
std::string index_name,
|
|
75
|
+
std::vector<std::string> fields,
|
|
76
|
+
couchbase::create_query_index_options::built options,
|
|
77
|
+
create_query_index_handler&& handler)
|
|
78
|
+
{
|
|
79
|
+
initiate_create_query_index(
|
|
80
|
+
core, std::move(bucket_name), std::move(index_name), std::move(fields), options, {}, "", std::move(handler));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
void
|
|
84
|
+
initiate_create_primary_query_index(std::shared_ptr<couchbase::core::cluster> core,
|
|
85
|
+
std::string bucket_name,
|
|
86
|
+
couchbase::create_primary_query_index_options::built options,
|
|
87
|
+
query_context query_ctx,
|
|
88
|
+
std::string collection_name,
|
|
89
|
+
create_primary_query_index_handler&& handler)
|
|
90
|
+
{
|
|
91
|
+
core->execute(
|
|
92
|
+
operations::management::query_index_create_request{
|
|
93
|
+
bucket_name,
|
|
94
|
+
"",
|
|
95
|
+
collection_name,
|
|
96
|
+
options.index_name.value_or(""),
|
|
97
|
+
{},
|
|
98
|
+
query_ctx,
|
|
99
|
+
true,
|
|
100
|
+
options.ignore_if_exists,
|
|
101
|
+
{},
|
|
102
|
+
options.deferred,
|
|
103
|
+
options.num_replicas,
|
|
104
|
+
{},
|
|
105
|
+
options.timeout,
|
|
106
|
+
},
|
|
107
|
+
[core, bucket_name, options = std::move(options), handler = std::move(handler)](
|
|
108
|
+
operations::management::query_index_create_response resp) { handler(build_context(resp)); });
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
void
|
|
112
|
+
initiate_create_primary_query_index(std::shared_ptr<couchbase::core::cluster> core,
|
|
113
|
+
std::string bucket_name,
|
|
114
|
+
couchbase::create_primary_query_index_options::built options,
|
|
115
|
+
create_primary_query_index_handler&& handler)
|
|
116
|
+
{
|
|
117
|
+
initiate_create_primary_query_index(core, std::move(bucket_name), std::move(options), {}, "", std::move(handler));
|
|
118
|
+
}
|
|
119
|
+
} // namespace couchbase::core::impl
|
|
@@ -0,0 +1,108 @@
|
|
|
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
|
+
#include "couchbase/error_codes.hxx"
|
|
19
|
+
#include "couchbase/query_index_manager.hxx"
|
|
20
|
+
|
|
21
|
+
#include "core/cluster.hxx"
|
|
22
|
+
#include "core/operations/management/query_index_drop.hxx"
|
|
23
|
+
|
|
24
|
+
namespace couchbase::core::impl
|
|
25
|
+
{
|
|
26
|
+
template<typename Response>
|
|
27
|
+
static manager_error_context
|
|
28
|
+
build_context(Response& resp)
|
|
29
|
+
{
|
|
30
|
+
return { resp.ctx.ec,
|
|
31
|
+
resp.ctx.last_dispatched_to,
|
|
32
|
+
resp.ctx.last_dispatched_from,
|
|
33
|
+
resp.ctx.retry_attempts,
|
|
34
|
+
std::move(resp.ctx.retry_reasons),
|
|
35
|
+
std::move(resp.ctx.client_context_id),
|
|
36
|
+
resp.ctx.http_status,
|
|
37
|
+
std::move(resp.ctx.http_body),
|
|
38
|
+
std::move(resp.ctx.path) };
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
void
|
|
42
|
+
initiate_drop_query_index(std::shared_ptr<couchbase::core::cluster> core,
|
|
43
|
+
std::string bucket_name,
|
|
44
|
+
std::string index_name,
|
|
45
|
+
drop_query_index_options::built options,
|
|
46
|
+
query_context query_context,
|
|
47
|
+
std::string collection_name,
|
|
48
|
+
drop_query_index_handler&& handler)
|
|
49
|
+
{
|
|
50
|
+
core->execute(
|
|
51
|
+
operations::management::query_index_drop_request{
|
|
52
|
+
bucket_name,
|
|
53
|
+
"",
|
|
54
|
+
collection_name,
|
|
55
|
+
index_name,
|
|
56
|
+
query_context,
|
|
57
|
+
false,
|
|
58
|
+
options.ignore_if_not_exists,
|
|
59
|
+
{},
|
|
60
|
+
options.timeout,
|
|
61
|
+
},
|
|
62
|
+
[core, bucket_name, options = std::move(options), handler = std::move(handler)](
|
|
63
|
+
operations::management::query_index_drop_response resp) { handler(build_context(resp)); });
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
void
|
|
67
|
+
initiate_drop_query_index(std::shared_ptr<couchbase::core::cluster> core,
|
|
68
|
+
std::string bucket_name,
|
|
69
|
+
std::string index_name,
|
|
70
|
+
couchbase::drop_query_index_options::built options,
|
|
71
|
+
drop_query_index_handler&& handler)
|
|
72
|
+
{
|
|
73
|
+
initiate_drop_query_index(core, std::move(bucket_name), std::move(index_name), options, {}, "", std::move(handler));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
void
|
|
77
|
+
initiate_drop_primary_query_index(std::shared_ptr<couchbase::core::cluster> core,
|
|
78
|
+
std::string bucket_name,
|
|
79
|
+
couchbase::drop_primary_query_index_options::built options,
|
|
80
|
+
query_context query_ctx,
|
|
81
|
+
std::string collection_name,
|
|
82
|
+
drop_primary_query_index_handler&& handler)
|
|
83
|
+
{
|
|
84
|
+
core->execute(
|
|
85
|
+
operations::management::query_index_drop_request{
|
|
86
|
+
bucket_name,
|
|
87
|
+
"",
|
|
88
|
+
collection_name,
|
|
89
|
+
options.index_name.value_or(""),
|
|
90
|
+
query_ctx,
|
|
91
|
+
true,
|
|
92
|
+
options.ignore_if_not_exists,
|
|
93
|
+
{},
|
|
94
|
+
options.timeout,
|
|
95
|
+
},
|
|
96
|
+
[core, bucket_name, options = std::move(options), handler = std::move(handler)](
|
|
97
|
+
operations::management::query_index_drop_response resp) { handler(build_context(resp)); });
|
|
98
|
+
}
|
|
99
|
+
void
|
|
100
|
+
initiate_drop_primary_query_index(std::shared_ptr<couchbase::core::cluster> core,
|
|
101
|
+
std::string bucket_name,
|
|
102
|
+
couchbase::drop_primary_query_index_options::built options,
|
|
103
|
+
drop_primary_query_index_handler&& handler)
|
|
104
|
+
{
|
|
105
|
+
return initiate_drop_primary_query_index(core, std::move(bucket_name), options, {}, "", std::move(handler));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
} // namespace couchbase::core::impl
|
|
@@ -59,7 +59,7 @@ initiate_get_operation(std::shared_ptr<couchbase::core::cluster> core,
|
|
|
59
59
|
},
|
|
60
60
|
[handler = std::move(handler)](operations::get_projected_response&& resp) mutable {
|
|
61
61
|
std::optional<std::chrono::system_clock::time_point> expiry_time{};
|
|
62
|
-
if (resp.expiry) {
|
|
62
|
+
if (resp.expiry && resp.expiry.value() > 0) {
|
|
63
63
|
expiry_time.emplace(std::chrono::seconds{ resp.expiry.value() });
|
|
64
64
|
}
|
|
65
65
|
return handler(std::move(resp.ctx), get_result{ resp.cas, { std::move(resp.value), resp.flags }, expiry_time });
|