couchbase 3.4.0 → 3.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/couchbase/CMakeLists.txt +8 -3
  4. data/ext/couchbase/cmake/CompilerWarnings.cmake +12 -4
  5. data/ext/couchbase/cmake/Documentation.cmake +4 -3
  6. data/ext/couchbase/cmake/OpenSSL.cmake +52 -7
  7. data/ext/couchbase/cmake/VersionInfo.cmake +39 -3
  8. data/ext/couchbase/cmake/test_openssl.cxx +7 -0
  9. data/ext/couchbase/core/crypto/CMakeLists.txt +5 -1
  10. data/ext/couchbase/core/impl/collection_query_index_manager.cxx +3 -3
  11. data/ext/couchbase/core/impl/get_all_query_indexes.cxx +3 -3
  12. data/ext/couchbase/core/impl/transaction_get_result.cxx +54 -0
  13. data/ext/couchbase/core/meta/CMakeLists.txt +7 -5
  14. data/ext/couchbase/core/meta/version.cxx +19 -0
  15. data/ext/couchbase/core/operations/document_search.cxx +5 -2
  16. data/ext/couchbase/core/operations/document_search.hxx +0 -1
  17. data/ext/couchbase/core/transactions/atr_cleanup_entry.cxx +1 -0
  18. data/ext/couchbase/core/transactions/attempt_context_impl.cxx +62 -31
  19. data/ext/couchbase/core/transactions/attempt_context_impl.hxx +43 -22
  20. data/ext/couchbase/core/transactions/forward_compat.hxx +2 -2
  21. data/ext/couchbase/core/transactions/internal/transaction_context.hxx +1 -1
  22. data/ext/couchbase/core/transactions/internal/transaction_fields.hxx +1 -0
  23. data/ext/couchbase/core/transactions/staged_mutation.cxx +1 -1
  24. data/ext/couchbase/core/transactions/staged_mutation.hxx +12 -2
  25. data/ext/couchbase/core/transactions/transaction_context.cxx +8 -11
  26. data/ext/couchbase/core/transactions/transaction_get_result.cxx +41 -31
  27. data/ext/couchbase/core/transactions/transaction_get_result.hxx +7 -3
  28. data/ext/couchbase/core/transactions/transaction_links.hxx +13 -1
  29. data/ext/couchbase/core/transactions/waitable_op_list.hxx +1 -0
  30. data/ext/couchbase/couchbase/cluster.hxx +2 -2
  31. data/ext/couchbase/couchbase/cluster_options.hxx +10 -10
  32. data/ext/couchbase/couchbase/collection.hxx +22 -17
  33. data/ext/couchbase/couchbase/collection_query_index_manager.hxx +1 -1
  34. data/ext/couchbase/couchbase/common_options.hxx +1 -1
  35. data/ext/couchbase/couchbase/configuration_profile.hxx +1 -1
  36. data/ext/couchbase/couchbase/configuration_profiles_registry.hxx +0 -1
  37. data/ext/couchbase/couchbase/create_primary_query_index_options.hxx +1 -1
  38. data/ext/couchbase/couchbase/drop_primary_query_index_options.hxx +1 -1
  39. data/ext/couchbase/couchbase/drop_query_index_options.hxx +1 -1
  40. data/ext/couchbase/couchbase/fmt/cas.hxx +12 -0
  41. data/ext/couchbase/couchbase/fmt/durability_level.hxx +6 -0
  42. data/ext/couchbase/couchbase/fmt/key_value_extended_error_info.hxx +6 -0
  43. data/ext/couchbase/couchbase/fmt/key_value_status_code.hxx +6 -0
  44. data/ext/couchbase/couchbase/fmt/mutation_token.hxx +6 -0
  45. data/ext/couchbase/couchbase/fmt/query_scan_consistency.hxx +6 -0
  46. data/ext/couchbase/couchbase/fmt/query_status.hxx +6 -0
  47. data/ext/couchbase/couchbase/fmt/retry_reason.hxx +6 -0
  48. data/ext/couchbase/couchbase/fmt/tls_verify_mode.hxx +6 -0
  49. data/ext/couchbase/couchbase/get_all_query_indexes_options.hxx +5 -4
  50. data/ext/couchbase/couchbase/query_index_manager.hxx +4 -2
  51. data/ext/couchbase/couchbase/scope.hxx +1 -1
  52. data/ext/couchbase/couchbase/subdoc/array_add_unique.hxx +2 -0
  53. data/ext/couchbase/couchbase/subdoc/array_append.hxx +2 -0
  54. data/ext/couchbase/couchbase/subdoc/array_insert.hxx +2 -0
  55. data/ext/couchbase/couchbase/subdoc/array_prepend.hxx +2 -0
  56. data/ext/couchbase/couchbase/subdoc/count.hxx +2 -0
  57. data/ext/couchbase/couchbase/subdoc/counter.hxx +2 -0
  58. data/ext/couchbase/couchbase/subdoc/exists.hxx +2 -0
  59. data/ext/couchbase/couchbase/subdoc/get.hxx +2 -0
  60. data/ext/couchbase/couchbase/subdoc/insert.hxx +2 -0
  61. data/ext/couchbase/couchbase/subdoc/remove.hxx +2 -0
  62. data/ext/couchbase/couchbase/subdoc/replace.hxx +3 -1
  63. data/ext/couchbase/couchbase/subdoc/upsert.hxx +2 -0
  64. data/ext/couchbase/couchbase/transaction_op_error_context.hxx +4 -4
  65. data/ext/couchbase/couchbase/transactions/transaction_get_result.hxx +36 -51
  66. data/ext/couchbase/couchbase/transactions/transactions_config.hxx +1 -1
  67. data/ext/couchbase/test/CMakeLists.txt +2 -0
  68. data/ext/couchbase/test/test_integration_examples.cxx +141 -0
  69. data/ext/couchbase/test/test_unit_transaction_utils.cxx +76 -19
  70. data/ext/couchbase.cxx +479 -20
  71. data/ext/extconf.rb +2 -1
  72. data/ext/revisions.rb +3 -2
  73. data/lib/couchbase/binary_collection.rb +4 -4
  74. data/lib/couchbase/collection.rb +5 -0
  75. data/lib/couchbase/errors.rb +10 -0
  76. data/lib/couchbase/management/collection_query_index_manager.rb +183 -0
  77. data/lib/couchbase/management/query_index_manager.rb +35 -3
  78. data/lib/couchbase/management.rb +1 -0
  79. data/lib/couchbase/options.rb +2 -3
  80. data/lib/couchbase/version.rb +1 -1
  81. metadata +9 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97dc31f5d538a882e27e0d837a7865798a5d50a3ba04f76592683a8300211b36
4
- data.tar.gz: 9c6f2fea36ce5b5fcdaf26f93d18e5a8d1024dd9aa82024eb296b08587c14cf5
3
+ metadata.gz: 738d96522993c221d75dc83546dc6c9f5447309fbbe4969f6fb92719b0427e78
4
+ data.tar.gz: 5189c37096e7193f5756050a9713bd7d8f75acd8949e5afe2402fc1834ed538f
5
5
  SHA512:
6
- metadata.gz: 1c63fafd6e367c42f670dcc93d54c1a6e1ed47af28c349e22be3d2167fe9b734530146b3e03116b222813c202bfecbc14d0f1ad2d704bf82e8deda1ef6e39d8d
7
- data.tar.gz: e0593d3d352f29054ee3be5c272c24c968f03960e845ff45cb67cfaaeb61c2e59828c6e03a4271d21200f5a3a84a234b101a25880b0ff32cb076b694d4d9f05c
6
+ metadata.gz: 85632d1eea3c7139c246f80fadbe8135aacd4b550fdd49a0e33a98342846d39d7d1a7b45abd2d03f1ecbecb9fbdb3401d5ef16b2c52e4bfa3c08edcebfa976e3
7
+ data.tar.gz: 34202c48810d9ebc8c9930a1f860acafa9a97b4de8304a22e56fa811a9462f02a857d277fb3abf1572226244ed05aeaafd61d23689a74aad6cdae83c33669fca
data/README.md CHANGED
@@ -23,7 +23,7 @@ The library has been tested with MRI 3.0, 3.1 and 3.2. Supported platforms are L
23
23
  Add this line to your application's Gemfile:
24
24
 
25
25
  ```ruby
26
- gem "couchbase", "3.4.0"
26
+ gem "couchbase", "3.4.1"
27
27
  ```
28
28
 
29
29
  And then execute:
@@ -296,8 +296,6 @@ set(couchbase_cxx_client_FILES
296
296
  core/impl/retry_reason.cxx
297
297
  core/impl/search_error_category.cxx
298
298
  core/impl/streaming_json_lexter_error_category.cxx
299
- core/impl/unlock.cxx
300
- core/impl/watch_query_indexes.cxx
301
299
  core/impl/subdoc/array_add_unique.cxx
302
300
  core/impl/subdoc/array_append.cxx
303
301
  core/impl/subdoc/array_insert.cxx
@@ -317,9 +315,12 @@ set(couchbase_cxx_client_FILES
317
315
  core/impl/subdoc/upsert.cxx
318
316
  core/impl/touch.cxx
319
317
  core/impl/transaction_error_category.cxx
318
+ core/impl/transaction_get_result.cxx
320
319
  core/impl/transaction_op_error_category.cxx
320
+ core/impl/unlock.cxx
321
321
  core/impl/upsert.cxx
322
322
  core/impl/view_error_category.cxx
323
+ core/impl/watch_query_indexes.cxx
323
324
  core/io/dns_config.cxx
324
325
  core/io/http_parser.cxx
325
326
  core/io/mcbp_message.cxx
@@ -398,7 +399,11 @@ if (WIN32)
398
399
  endif ()
399
400
 
400
401
  if (NOT COUCHBASE_CXX_CLIENT_POST_LINKED_OPENSSL)
401
- target_link_libraries(couchbase_cxx_client PUBLIC OpenSSL::SSL OpenSSL::Crypto)
402
+ if (TARGET PkgConfig::PKG_CONFIG_OPENSSL)
403
+ target_link_libraries(couchbase_cxx_client PUBLIC PkgConfig::PKG_CONFIG_OPENSSL)
404
+ else()
405
+ target_link_libraries(couchbase_cxx_client PUBLIC OpenSSL::SSL OpenSSL::Crypto)
406
+ endif()
402
407
  endif ()
403
408
 
404
409
  option(COUCHBASE_CXX_CLIENT_BUILD_TESTS "Build test programs" TRUE)
@@ -67,8 +67,8 @@ 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
- set(CLANG_WARNINGS ${COMMON_WARNINGS}
71
- -Wshadow # warn the user if a variable declaration shadows one from a parent context
70
+ set(CLANG_WARNINGS ${COMMON_WARNINGS} -Wshadow # warn the user if a variable declaration shadows one from a parent
71
+ # context
72
72
  )
73
73
 
74
74
  if(MSVC)
@@ -76,9 +76,17 @@ function(set_project_warnings project_name)
76
76
  elseif(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
77
77
  set(PROJECT_WARNINGS ${CLANG_WARNINGS})
78
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")
79
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "11.0.0"
80
+ AND NOT
81
+ CMAKE_BUILD_TYPE
82
+ STREQUAL
83
+ "Debug")
80
84
  # 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)
85
+ set(GCC_WARNINGS
86
+ ${GCC_WARNINGS}
87
+ -Wno-error=null-dereference
88
+ -Wno-error=array-bounds
89
+ -Wno-error=stringop-overflow)
82
90
  endif()
83
91
  set(PROJECT_WARNINGS ${GCC_WARNINGS})
84
92
  else()
@@ -11,11 +11,12 @@ if(DOXYGEN_FOUND AND DOT)
11
11
  file(
12
12
  GLOB_RECURSE
13
13
  COUCHBASE_CXX_CLIENT_PUBLIC_HEADERS
14
- ${PROJECT_SOURCE_DIR}/couchbase/*.hxx
15
- ${PROJECT_SOURCE_DIR}/docs/*.hxx)
14
+ ${PROJECT_SOURCE_DIR}/couchbase/**/*.hxx
15
+ ${PROJECT_SOURCE_DIR}/docs/*.hxx
16
+ ${PROJECT_SOURCE_DIR}/docs/*.md)
16
17
 
17
18
  set(DOXYGEN_INPUT_DIR ${PROJECT_SOURCE_DIR}/couchbase)
18
- set(DOXYGEN_OUTPUT_DIR ${PROJECT_BINARY_DIR}/couchbase-cxx-client-${couchbase_cxx_client_VERSION})
19
+ set(DOXYGEN_OUTPUT_DIR ${PROJECT_BINARY_DIR}/couchbase-cxx-client-${COUCHBASE_CXX_CLIENT_SEMVER})
19
20
  set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/html/index.html)
20
21
  set(DOXYGEN_CONFIG_TEMPLATE ${PROJECT_SOURCE_DIR}/docs/Doxyfile.in)
21
22
  set(DOXYGEN_CONFIG ${PROJECT_BINARY_DIR}/Doxyfile)
@@ -14,11 +14,21 @@ else()
14
14
  if(NOT OPENSSL_ROOT_DIR)
15
15
  if(APPLE AND COUCHBASE_CXX_CLIENT_USE_HOMEBREW_TO_DETECT_OPENSSL)
16
16
  execute_process(
17
- COMMAND brew --prefix openssl@1.1
17
+ COMMAND brew --prefix openssl
18
18
  OUTPUT_VARIABLE OPENSSL_ROOT_DIR
19
+ ERROR_VARIABLE HOMEBREW_STDERR
19
20
  ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
20
21
  if(OPENSSL_ROOT_DIR)
21
- message(STATUS "Found OpenSSL prefix using homebrew: ${OPENSSL_ROOT_DIR}")
22
+ message(STATUS "Found OpenSSL prefix using Homebrew: ${OPENSSL_ROOT_DIR}")
23
+ else()
24
+ execute_process(
25
+ COMMAND brew --prefix openssl@1.1
26
+ OUTPUT_VARIABLE OPENSSL_ROOT_DIR
27
+ ERROR_VARIABLE HOMEBREW_STDERR
28
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
29
+ if(OPENSSL_ROOT_DIR)
30
+ message(STATUS "Found OpenSSL 1.1 prefix using Homebrew: ${OPENSSL_ROOT_DIR}")
31
+ endif()
22
32
  endif()
23
33
  endif()
24
34
  if(MSVC AND COUCHBASE_CXX_CLIENT_USE_SCOOP_TO_DETECT_OPENSSL)
@@ -32,11 +42,46 @@ else()
32
42
  endif()
33
43
  endif()
34
44
  endif()
35
- include(FindOpenSSL)
36
- if(OPENSSL_LIBRARIES AND OPENSSL_INCLUDE_DIR)
37
- message(STATUS "OPENSSL_VERSION: ${OPENSSL_VERSION}")
38
- message(STATUS "OPENSSL_INCLUDE_DIR: ${OPENSSL_INCLUDE_DIR}")
39
- message(STATUS "OPENSSL_LIBRARIES: ${OPENSSL_LIBRARIES}")
45
+
46
+ find_package(OpenSSL 1.1)
47
+ if(OpenSSL_FOUND)
48
+ try_compile(
49
+ OPENSSL_USABLE ${CMAKE_CURRENT_BINARY_DIR}
50
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/test_openssl.cxx
51
+ LINK_LIBRARIES OpenSSL::SSL CXX_STANDARD 17)
52
+ if( OPENSSL_USABLE)
53
+ message(STATUS "OPENSSL_VERSION: ${OPENSSL_VERSION}")
54
+ message(STATUS "OPENSSL_INCLUDE_DIR: ${OPENSSL_INCLUDE_DIR}")
55
+ message(STATUS "OPENSSL_LIBRARIES: ${OPENSSL_LIBRARIES}")
56
+ else()
57
+ if(UNIX)
58
+ message(
59
+ STATUS
60
+ "Cannot use OpenSSL ${OPENSSL_VERSION} at \"${OPENSSL_INCLUDE_DIR}\" and \"${OPENSSL_LIBRARIES}\". Will try to use from pkg-config."
61
+ )
62
+ find_package(PkgConfig REQUIRED)
63
+ pkg_check_modules(PKG_CONFIG_OPENSSL REQUIRED IMPORTED_TARGET GLOBAL openssl11)
64
+ if(PKG_CONFIG_OPENSSL_FOUND)
65
+ message(STATUS "PKG_CONFIG_OPENSSL_VERSION: ${PKG_CONFIG_OPENSSL_VERSION}")
66
+ message(STATUS "PKG_CONFIG_OPENSSL_INCLUDE_DIRS: ${PKG_CONFIG_OPENSSL_INCLUDE_DIRS}")
67
+ message(STATUS "PKG_CONFIG_OPENSSL_LIBRARIES: ${PKG_CONFIG_OPENSSL_LIBRARIES}")
68
+ else()
69
+ message(FATAL_ERROR "Cannot Find OpenSSL using pkg-config, find_package() returns unusable setup")
70
+ endif()
71
+ else()
72
+ message(FATAL_ERROR "OpenSSL discovered by find_package() returns unusable setup")
73
+ endif()
74
+ endif()
75
+ elseif(UNIX)
76
+ find_package(PkgConfig REQUIRED)
77
+ pkg_check_modules(PKG_CONFIG_OPENSSL REQUIRED IMPORTED_TARGET GLOBAL openssl11)
78
+ if(PKG_CONFIG_OPENSSL_FOUND)
79
+ message(STATUS "PKG_CONFIG_OPENSSL_VERSION: ${PKG_CONFIG_OPENSSL_VERSION}")
80
+ message(STATUS "PKG_CONFIG_OPENSSL_INCLUDE_DIRS: ${PKG_CONFIG_OPENSSL_INCLUDE_DIRS}")
81
+ message(STATUS "PKG_CONFIG_OPENSSL_LIBRARIES: ${PKG_CONFIG_OPENSSL_LIBRARIES}")
82
+ else()
83
+ message(FATAL_ERROR "Cannot Find OpenSSL using pkg-config")
84
+ endif()
40
85
  else()
41
86
  message(FATAL_ERROR "Cannot build Couchbase C++ SDK without OpenSSL")
42
87
  endif()
@@ -25,6 +25,37 @@ if(NOT COUCHBASE_CXX_CLIENT_GIT_DESCRIBE)
25
25
  endif()
26
26
 
27
27
  string(TIMESTAMP COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP "%Y-%m-%d %H:%M:%S" UTC)
28
+ string(TIMESTAMP COUCHBASE_CXX_CLIENT_BUILD_DATE "%Y-%m-%d" UTC)
29
+
30
+ # set(couchbase_cxx_client_BUILD_NUMBER 142)
31
+ # set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE "1.0.0-beta.4-27-g6807da0") #-> "couchbase_cxx_client-1.0.0-beta.4+142.27.6807da0"
32
+ # set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE "1.0.0-beta.4-0-g6807da0") #-> "couchbase_cxx_client-1.0.0-beta.4"
33
+ # set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE "1.0.0-27-g6807da0") #-> "couchbase_cxx_client-1.0.0+142.27.6807da0"
34
+ # set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE "1.0.0-0-g6807da0") #-> "couchbase_cxx_client-1.0.0"
35
+ # set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE "1.0.0") #-> "couchbase_cxx_client-1.0.0"
36
+ set(COUCHBASE_CXX_CLIENT_SEMVER "${couchbase_cxx_client_VERSION}")
37
+ set(COUCHBASE_CXX_CLIENT_PACKAGE_VERSION "${couchbase_cxx_client_VERSION}")
38
+ set(COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE "${couchbase_cxx_client_BUILD_NUMBER}")
39
+ if(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE MATCHES
40
+ "^([0-9]+\\.[0-9]+\\.[0-9]+)(-([a-zA-Z0-9\\.]+))?(-([0-9]+)-g([a-zA-Z0-9]+))?$")
41
+ set(COUCHBASE_CXX_CLIENT_SEMVER "${CMAKE_MATCH_1}")
42
+ set(COUCHBASE_CXX_CLIENT_PACKAGE_VERSION "${CMAKE_MATCH_1}")
43
+ if(CMAKE_MATCH_3) # pre-release
44
+ set(COUCHBASE_CXX_CLIENT_SEMVER "${COUCHBASE_CXX_CLIENT_SEMVER}-${CMAKE_MATCH_3}")
45
+ set(COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE "${CMAKE_MATCH_3}.${couchbase_cxx_client_BUILD_NUMBER}")
46
+ endif()
47
+ if(CMAKE_MATCH_5 AND CMAKE_MATCH_5 GREATER 0) # number_of_commits.build_number.sha1
48
+ set(COUCHBASE_CXX_CLIENT_SEMVER
49
+ "${COUCHBASE_CXX_CLIENT_SEMVER}+${CMAKE_MATCH_5}.${couchbase_cxx_client_BUILD_NUMBER}.${CMAKE_MATCH_6}")
50
+ if(CMAKE_MATCH_3) # pre-release
51
+ set(COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE
52
+ "${CMAKE_MATCH_3}.${CMAKE_MATCH_5}.${couchbase_cxx_client_BUILD_NUMBER}.${CMAKE_MATCH_6}")
53
+ else()
54
+ set(COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE "${CMAKE_MATCH_5}.${couchbase_cxx_client_BUILD_NUMBER}.${CMAKE_MATCH_6}")
55
+ endif()
56
+ endif()
57
+ endif()
58
+
28
59
  configure_file(${PROJECT_SOURCE_DIR}/cmake/build_version.hxx.in
29
60
  ${PROJECT_BINARY_DIR}/generated/couchbase/build_version.hxx @ONLY)
30
61
  configure_file(${PROJECT_SOURCE_DIR}/cmake/build_config.hxx.in
@@ -47,9 +78,14 @@ file(
47
78
  #define COUCHBASE_CXX_CLIENT_LINK_OPTIONS \"$<TARGET_PROPERTY:couchbase_cxx_client,LINK_OPTIONS>\"
48
79
  #define COUCHBASE_CXX_CLIENT_POST_LINKED_OPENSSL \"${COUCHBASE_CXX_CLIENT_POST_LINKED_OPENSSL}\"
49
80
 
50
- #define OPENSSL_CRYPTO_LIBRARIES \"${OPENSSL_CRYPTO_LIBRARIES}\"
51
- #define OPENSSL_SSL_LIBRARIES \"${OPENSSL_SSL_LIBRARIES}\"
52
- #define OPENSSL_INCLUDE_DIR \"${OPENSSL_INCLUDE_DIR}\"
81
+ #define OPENSSL_SSL_IMPORTED_LOCATION \"$<$<TARGET_EXISTS:OpenSSL::SSL>:$<TARGET_PROPERTY:OpenSSL::SSL,IMPORTED_LOCATION>>\"
82
+ #define OPENSSL_SSL_INTERFACE_INCLUDE_DIRECTORIES \"$<$<TARGET_EXISTS:OpenSSL::SSL>:$<TARGET_PROPERTY:OpenSSL::SSL,INTERFACE_INCLUDE_DIRECTORIES>>\"
83
+ #define OPENSSL_SSL_INTERFACE_LINK_LIBRARIES \"$<$<TARGET_EXISTS:OpenSSL::SSL>:$<TARGET_PROPERTY:OpenSSL::SSL,INTERFACE_LINK_LIBRARIES>>\"
84
+ #define OPENSSL_CRYPTO_IMPORTED_LOCATION \"$<$<TARGET_EXISTS:OpenSSL::Crypto>:$<TARGET_PROPERTY:OpenSSL::Crypto,IMPORTED_LOCATION>>\"
85
+ #define OPENSSL_CRYPTO_INTERFACE_INCLUDE_DIRECTORIES \"$<$<TARGET_EXISTS:OpenSSL::Crypto>:$<TARGET_PROPERTY:OpenSSL::Crypto,INTERFACE_INCLUDE_DIRECTORIES>>\"
86
+ #define OPENSSL_CRYPTO_INTERFACE_LINK_LIBRARIES \"$<$<TARGET_EXISTS:OpenSSL::Crypto>:$<TARGET_PROPERTY:OpenSSL::Crypto,INTERFACE_LINK_LIBRARIES>>\"
87
+ #define OPENSSL_PKG_CONFIG_INTERFACE_INCLUDE_DIRECTORIES \"$<$<TARGET_EXISTS:PkgConfig::PKG_CONFIG_OPENSSL>:$<TARGET_PROPERTY:PkgConfig::PKG_CONFIG_OPENSSL,INTERFACE_INCLUDE_DIRECTORIES>>\"
88
+ #define OPENSSL_PKG_CONFIG_INTERFACE_LINK_LIBRARIES \"$<$<TARGET_EXISTS:PkgConfig::PKG_CONFIG_OPENSSL>:$<TARGET_PROPERTY:PkgConfig::PKG_CONFIG_OPENSSL,INTERFACE_LINK_LIBRARIES>>\"
53
89
 
54
90
  #define CMAKE_BUILD_TYPE \"${CMAKE_BUILD_TYPE}\"
55
91
  #define CMAKE_VERSION \"${CMAKE_VERSION}\"
@@ -0,0 +1,7 @@
1
+ #include <openssl/crypto.h>
2
+
3
+ int
4
+ main()
5
+ {
6
+ return static_cast<int>(OpenSSL_version_num());
7
+ }
@@ -4,7 +4,11 @@ target_link_libraries(couchbase_crypto PRIVATE project_options project_warnings)
4
4
  target_include_directories(couchbase_crypto PRIVATE ../..)
5
5
 
6
6
  if(NOT COUCHBASE_CXX_CLIENT_POST_LINKED_OPENSSL)
7
- target_link_libraries(couchbase_crypto PUBLIC OpenSSL::SSL OpenSSL::Crypto)
7
+ if (TARGET PkgConfig::PKG_CONFIG_OPENSSL)
8
+ target_link_libraries(couchbase_crypto PUBLIC PkgConfig::PKG_CONFIG_OPENSSL)
9
+ else()
10
+ target_link_libraries(couchbase_crypto PUBLIC OpenSSL::SSL OpenSSL::Crypto)
11
+ endif()
8
12
  endif()
9
13
 
10
14
  if(WIN32)
@@ -22,14 +22,14 @@ namespace couchbase
22
22
  {
23
23
 
24
24
  void
25
- collection_query_index_manager::get_all_indexes(const get_all_query_indexes_options& options, get_all_indexes_handler&& handler) const
25
+ collection_query_index_manager::get_all_indexes(const get_all_query_indexes_options& options, get_all_query_indexes_handler&& handler) const
26
26
  {
27
27
  return core::impl::initiate_get_all_query_indexes(core_,
28
28
  "",
29
29
  options.build(),
30
30
  core::query_context(bucket_name_, scope_name_),
31
31
  collection_name_,
32
- std::forward<get_all_indexes_handler>(handler));
32
+ std::forward<get_all_query_indexes_handler>(handler));
33
33
  }
34
34
 
35
35
  void
@@ -90,4 +90,4 @@ collection_query_index_manager::watch_indexes(std::vector<std::string> index_nam
90
90
  return core::impl::initiate_watch_query_indexes(
91
91
  core_, "", std::move(index_names), options.build(), { bucket_name_, scope_name_ }, collection_name_, std::move(handler));
92
92
  }
93
- } // namespace couchbase
93
+ } // namespace couchbase
@@ -45,7 +45,7 @@ initiate_get_all_query_indexes(std::shared_ptr<couchbase::core::cluster> core,
45
45
  couchbase::get_all_query_indexes_options::built options,
46
46
  query_context query_ctx,
47
47
  std::string collection_name,
48
- get_all_indexes_handler&& handler)
48
+ get_all_query_indexes_handler&& handler)
49
49
  {
50
50
  core->execute(
51
51
  operations::management::query_index_get_all_request{
@@ -68,9 +68,9 @@ void
68
68
  initiate_get_all_query_indexes(std::shared_ptr<couchbase::core::cluster> core,
69
69
  std::string bucket_name,
70
70
  couchbase::get_all_query_indexes_options::built options,
71
- get_all_indexes_handler&& handler)
71
+ get_all_query_indexes_handler&& handler)
72
72
  {
73
73
  initiate_get_all_query_indexes(core, std::move(bucket_name), options, {}, "", std::move(handler));
74
74
  }
75
75
 
76
- } // namespace couchbase::core::impl
76
+ } // namespace couchbase::core::impl
@@ -0,0 +1,54 @@
1
+
2
+
3
+ #include <core/transactions/transaction_get_result.hxx>
4
+ #include <couchbase/transactions/transaction_get_result.hxx>
5
+
6
+ namespace couchbase::transactions
7
+ {
8
+
9
+ transaction_get_result::transaction_get_result()
10
+ : base_(std::make_shared<couchbase::core::transactions::transaction_get_result>())
11
+ {
12
+ }
13
+
14
+ const std::vector<std::byte>&
15
+ transaction_get_result::content() const
16
+ {
17
+ return base_->content();
18
+ }
19
+ void
20
+ transaction_get_result::content(std::vector<std::byte> content)
21
+ {
22
+ return base_->content(content);
23
+ }
24
+ void
25
+ transaction_get_result::content(std::vector<std::byte>&& content)
26
+ {
27
+ return base_->content(content);
28
+ }
29
+ const std::string
30
+ transaction_get_result::key() const
31
+ {
32
+ return base_->key();
33
+ }
34
+ const std::string
35
+ transaction_get_result::bucket() const
36
+ {
37
+ return base_->bucket();
38
+ }
39
+ const std::string
40
+ transaction_get_result::scope() const
41
+ {
42
+ return base_->scope();
43
+ }
44
+ const std::string
45
+ transaction_get_result::collection() const
46
+ {
47
+ return base_->collection();
48
+ }
49
+ const couchbase::cas
50
+ transaction_get_result::cas() const
51
+ {
52
+ return base_->cas();
53
+ }
54
+ } // namespace couchbase::transactions
@@ -7,11 +7,13 @@ target_link_libraries(
7
7
  snappy
8
8
  fmt::fmt
9
9
  spdlog::spdlog)
10
- target_include_directories(couchbase_meta PRIVATE
11
- ${PROJECT_BINARY_DIR}/generated
12
- ${PROJECT_SOURCE_DIR}
13
- ${PROJECT_SOURCE_DIR}/third_party/http_parser)
10
+ target_include_directories(couchbase_meta PRIVATE ${PROJECT_BINARY_DIR}/generated ${PROJECT_SOURCE_DIR}
11
+ ${PROJECT_SOURCE_DIR}/third_party/http_parser)
14
12
 
15
13
  if(NOT COUCHBASE_CXX_CLIENT_POST_LINKED_OPENSSL)
16
- target_link_libraries(couchbase_meta PUBLIC OpenSSL::SSL OpenSSL::Crypto)
14
+ if (TARGET PkgConfig::PKG_CONFIG_OPENSSL)
15
+ target_link_libraries(couchbase_meta PUBLIC PkgConfig::PKG_CONFIG_OPENSSL)
16
+ else()
17
+ target_link_libraries(couchbase_meta PUBLIC OpenSSL::SSL OpenSSL::Crypto)
18
+ endif()
17
19
  endif()
@@ -100,9 +100,28 @@ sdk_build_info()
100
100
  info["openssl_runtime"] = OpenSSL_version(OPENSSL_VERSION);
101
101
  #elif defined(SSLEAY_VERSION)
102
102
  info["openssl_runtime"] = SSLeay_version(SSLEAY_VERSION);
103
+ #endif
104
+ #if defined(OPENSSL_INFO_CONFIG_DIR)
105
+ info["openssl_config_dir"] = OPENSSL_info(OPENSSL_INFO_CONFIG_DIR);
106
+ #elif defined(OPENSSL_DIR)
107
+ if (std::string config_dir(OpenSSL_version(OPENSSL_DIR)); !config_dir.empty()) {
108
+ if (auto quote = config_dir.find('"'); quote != std::string::npos && quote + 2 < config_dir.size()) {
109
+ info["openssl_config_dir"] = config_dir.substr(quote + 1, config_dir.size() - quote - 2);
110
+ } else {
111
+ info["openssl_config_dir"] = config_dir;
112
+ }
113
+ }
103
114
  #endif
104
115
  info["openssl_default_cert_dir"] = X509_get_default_cert_dir();
105
116
  info["openssl_default_cert_file"] = X509_get_default_cert_file();
117
+ info["openssl_ssl_interface_include_directories"] = OPENSSL_SSL_INTERFACE_INCLUDE_DIRECTORIES;
118
+ info["openssl_ssl_interface_link_libraries"] = OPENSSL_SSL_INTERFACE_LINK_LIBRARIES;
119
+ info["openssl_ssl_imported_location"] = OPENSSL_SSL_IMPORTED_LOCATION;
120
+ info["openssl_crypto_interface_imported_location"] = OPENSSL_CRYPTO_IMPORTED_LOCATION;
121
+ info["openssl_crypto_interface_include_directories"] = OPENSSL_CRYPTO_INTERFACE_INCLUDE_DIRECTORIES;
122
+ info["openssl_crypto_interface_link_libraries"] = OPENSSL_CRYPTO_INTERFACE_LINK_LIBRARIES;
123
+ info["openssl_pkg_config_interface_include_directories"] = OPENSSL_PKG_CONFIG_INTERFACE_INCLUDE_DIRECTORIES;
124
+ info["openssl_pkg_config_interface_link_libraries"] = OPENSSL_PKG_CONFIG_INTERFACE_LINK_LIBRARIES;
106
125
  info["__cplusplus"] = fmt::format("{}", __cplusplus);
107
126
  #if defined(_MSC_VER)
108
127
  info["_MSC_VER"] = fmt::format("{}", _MSC_VER);
@@ -92,11 +92,14 @@ search_request::encode_to(search_request::encoded_request_type& encoded, http_co
92
92
  { "vectors", { { index_name, scan_vectors } } },
93
93
  };
94
94
  }
95
- if (scope_name) {
96
- body["scope"] = scope_name.value();
95
+ if (!collections.empty()) {
97
96
  body["collections"] = collections;
98
97
  }
99
98
 
99
+ for (const auto& [key, value] : raw) {
100
+ body[key] = utils::json::parse(value);
101
+ }
102
+
100
103
  encoded.type = type;
101
104
  encoded.headers["content-type"] = "application/json";
102
105
  encoded.method = "POST";
@@ -130,7 +130,6 @@ struct search_request {
130
130
  std::optional<couchbase::core::search_highlight_style> highlight_style{};
131
131
  std::vector<std::string> highlight_fields{};
132
132
  std::vector<std::string> fields{};
133
- std::optional<std::string> scope_name{};
134
133
  std::vector<std::string> collections{};
135
134
 
136
135
  std::optional<couchbase::core::search_scan_consistency> scan_consistency{};
@@ -174,6 +174,7 @@ atr_cleanup_entry::do_per_doc(std::vector<doc_record> docs,
174
174
  lookup_in_specs::get(ATR_ID).xattr(),
175
175
  lookup_in_specs::get(TRANSACTION_ID).xattr(),
176
176
  lookup_in_specs::get(ATTEMPT_ID).xattr(),
177
+ lookup_in_specs::get(OPERATION_ID).xattr(),
177
178
  lookup_in_specs::get(STAGED_DATA).xattr(),
178
179
  lookup_in_specs::get(ATR_BUCKET_NAME).xattr(),
179
180
  lookup_in_specs::get(ATR_SCOPE_NAME).xattr(),