couchbase 3.4.0 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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(),