couchbase 4.2.8 → 4.2.10

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 (370) hide show
  1. package/CMakeLists.txt +1 -1
  2. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +139 -56
  3. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
  4. package/deps/couchbase-cxx-client/CMakeLists.txt +401 -424
  5. package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +7 -3
  6. package/deps/couchbase-cxx-client/cmake/OpenSSL.cmake +1 -0
  7. package/deps/couchbase-cxx-client/core/agent_config.hxx +1 -1
  8. package/deps/couchbase-cxx-client/core/agent_group.cxx +0 -1
  9. package/deps/couchbase-cxx-client/core/agent_group.hxx +9 -0
  10. package/deps/couchbase-cxx-client/core/agent_group_config.hxx +1 -1
  11. package/deps/couchbase-cxx-client/core/bucket.cxx +74 -10
  12. package/deps/couchbase-cxx-client/core/bucket.hxx +4 -2
  13. package/deps/couchbase-cxx-client/core/cluster.cxx +1491 -108
  14. package/deps/couchbase-cxx-client/core/cluster.hxx +183 -473
  15. package/deps/couchbase-cxx-client/core/cluster_agent_config.hxx +1 -1
  16. package/deps/couchbase-cxx-client/core/cluster_options.cxx +12 -2
  17. package/deps/couchbase-cxx-client/core/cluster_options.hxx +9 -8
  18. package/deps/couchbase-cxx-client/core/config_profiles.cxx +2 -2
  19. package/deps/couchbase-cxx-client/core/config_profiles.hxx +1 -1
  20. package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +1 -2
  21. package/deps/couchbase-cxx-client/core/core_sdk_shim.hxx +3 -2
  22. package/deps/couchbase-cxx-client/core/diagnostics.hxx +0 -1
  23. package/deps/couchbase-cxx-client/core/dispatcher.cxx +2 -2
  24. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +38 -76
  25. package/deps/couchbase-cxx-client/core/impl/analytics.hxx +40 -0
  26. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +820 -0
  27. package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +403 -0
  28. package/deps/couchbase-cxx-client/core/impl/bucket.cxx +102 -0
  29. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +433 -0
  30. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +299 -44
  31. package/deps/couchbase-cxx-client/core/impl/collection.cxx +1384 -0
  32. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +306 -0
  33. package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +3 -1
  34. package/deps/couchbase-cxx-client/core/impl/diagnostics.cxx +294 -0
  35. package/deps/couchbase-cxx-client/core/impl/diagnostics.hxx +39 -0
  36. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +2 -0
  37. package/deps/couchbase-cxx-client/core/{operations/mcbp_noop.cxx → impl/doc_id_query.cxx} +19 -15
  38. package/deps/couchbase-cxx-client/core/impl/key_value_error_category.cxx +4 -2
  39. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.hxx +0 -10
  40. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.hxx +0 -10
  41. package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +24 -17
  42. package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -1
  43. package/deps/couchbase-cxx-client/core/impl/query.cxx +45 -68
  44. package/deps/couchbase-cxx-client/core/impl/query.hxx +34 -0
  45. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +628 -0
  46. package/deps/couchbase-cxx-client/core/impl/scope.cxx +187 -0
  47. package/deps/couchbase-cxx-client/core/impl/search.cxx +81 -57
  48. package/deps/couchbase-cxx-client/core/impl/search.hxx +45 -0
  49. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +712 -0
  50. package/deps/couchbase-cxx-client/core/impl/search_request.cxx +139 -0
  51. package/deps/couchbase-cxx-client/core/impl/search_row_location.cxx +12 -0
  52. package/deps/couchbase-cxx-client/core/impl/search_sort_geo_distance.cxx +87 -0
  53. package/deps/couchbase-cxx-client/core/impl/vector_query.cxx +42 -0
  54. package/deps/couchbase-cxx-client/core/impl/vector_search.cxx +40 -0
  55. package/deps/couchbase-cxx-client/core/impl/with_legacy_durability.hxx +23 -25
  56. package/deps/couchbase-cxx-client/core/io/dns_config.cxx +28 -0
  57. package/deps/couchbase-cxx-client/core/io/dns_config.hxx +6 -25
  58. package/deps/couchbase-cxx-client/core/io/http_session.hxx +6 -3
  59. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +9 -1
  60. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +1 -1
  61. package/deps/couchbase-cxx-client/core/io/mcbp_message.hxx +3 -2
  62. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +75 -53
  63. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +3 -1
  64. package/deps/couchbase-cxx-client/core/logger/logger.cxx +1 -1
  65. package/deps/couchbase-cxx-client/core/logger/logger.hxx +4 -4
  66. package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +1 -1
  67. package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +1 -1
  68. package/deps/couchbase-cxx-client/core/mcbp/queue_callback.hxx +1 -1
  69. package/deps/couchbase-cxx-client/core/meta/features.hxx +38 -0
  70. package/deps/couchbase-cxx-client/core/operations/document_query.cxx +23 -2
  71. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -1
  72. package/deps/couchbase-cxx-client/core/operations/document_search.cxx +37 -1
  73. package/deps/couchbase-cxx-client/core/operations/document_search.hxx +11 -0
  74. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +2 -0
  75. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +2 -0
  76. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +2 -0
  77. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +2 -0
  78. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +2 -0
  79. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +2 -0
  80. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +2 -0
  81. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +2 -0
  82. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +2 -0
  83. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +2 -0
  84. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +1 -1
  85. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -0
  86. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +2 -0
  87. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +2 -0
  88. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +2 -0
  89. package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +3 -1
  90. package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +9 -6
  91. package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +1 -1
  92. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +2 -0
  93. package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +9 -8
  94. package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +1 -1
  95. package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +9 -5
  96. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +2 -0
  97. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +2 -0
  98. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +2 -0
  99. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +2 -0
  100. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +2 -0
  101. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +2 -0
  102. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +2 -0
  103. package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +2 -0
  104. package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +2 -0
  105. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.cxx +1 -1
  106. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +2 -2
  107. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +4 -1
  108. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +4 -1
  109. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +1 -1
  110. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +1 -1
  111. package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +2 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +2 -0
  114. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.cxx +4 -4
  115. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +4 -4
  116. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +19 -1
  117. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +3 -0
  118. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +23 -1
  119. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +3 -0
  120. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +23 -1
  121. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +3 -0
  122. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +23 -1
  123. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +3 -0
  124. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +19 -1
  125. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +3 -0
  126. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +19 -1
  127. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +2 -0
  128. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +39 -22
  129. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +3 -0
  130. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +20 -1
  131. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +3 -0
  132. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +2 -0
  133. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +19 -1
  134. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +3 -0
  135. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -0
  136. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -0
  137. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +2 -0
  138. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -0
  139. package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
  140. package/deps/couchbase-cxx-client/core/operations_fwd.hxx +260 -0
  141. package/deps/couchbase-cxx-client/core/origin.cxx +146 -5
  142. package/deps/couchbase-cxx-client/core/origin.hxx +30 -140
  143. package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.hxx +3 -3
  144. package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +5 -0
  145. package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.hxx +4 -4
  146. package/deps/couchbase-cxx-client/core/protocol/hello_feature.hxx +6 -0
  147. package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +3 -0
  148. package/deps/couchbase-cxx-client/core/protocol/status.cxx +6 -0
  149. package/deps/couchbase-cxx-client/core/protocol/status.hxx +1 -0
  150. package/deps/couchbase-cxx-client/core/query_context.hxx +11 -7
  151. package/deps/couchbase-cxx-client/core/range_scan_orchestrator.cxx +1 -1
  152. package/deps/couchbase-cxx-client/core/topology/collections_manifest.hxx +1 -1
  153. package/deps/couchbase-cxx-client/core/topology/collections_manifest_json.hxx +1 -1
  154. package/deps/couchbase-cxx-client/core/topology/configuration.cxx +23 -0
  155. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +8 -12
  156. package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +3 -3
  157. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +2 -0
  158. package/deps/couchbase-cxx-client/core/topology/error_map.hxx +2 -2
  159. package/deps/couchbase-cxx-client/core/topology/error_map_json.hxx +4 -0
  160. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.cxx +58 -0
  161. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +5 -40
  162. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +30 -0
  163. package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +18 -18
  164. package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +36 -0
  165. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +39 -41
  166. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +2 -2
  167. package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +3 -1
  168. package/deps/couchbase-cxx-client/core/transactions/internal/atr_entry.hxx +2 -0
  169. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +32 -0
  170. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +4 -30
  171. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +41 -0
  172. package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +17 -15
  173. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +1 -1
  174. package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +4 -4
  175. package/deps/couchbase-cxx-client/core/transactions/internal/utils.hxx +5 -13
  176. package/deps/couchbase-cxx-client/core/transactions/result.hxx +0 -26
  177. package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +46 -0
  178. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +16 -14
  179. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +6 -6
  180. package/deps/couchbase-cxx-client/core/transactions/transaction_keyspace.cxx +48 -0
  181. package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +1 -0
  182. package/deps/couchbase-cxx-client/core/transactions/transaction_options.cxx +61 -4
  183. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +9 -8
  184. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +9 -16
  185. package/deps/couchbase-cxx-client/core/transactions/transactions_config.cxx +7 -6
  186. package/deps/couchbase-cxx-client/core/transactions.hxx +6 -5
  187. package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +4 -3
  188. package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +4 -4
  189. package/deps/couchbase-cxx-client/core/vector_query_combination.hxx +23 -0
  190. package/deps/couchbase-cxx-client/couchbase/allow_querying_search_index_options.hxx +44 -0
  191. package/deps/couchbase-cxx-client/couchbase/analytics_index_manager.hxx +463 -0
  192. package/deps/couchbase-cxx-client/couchbase/analyze_document_options.hxx +44 -0
  193. package/deps/couchbase-cxx-client/couchbase/append_options.hxx +0 -24
  194. package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +1 -1
  195. package/deps/couchbase-cxx-client/couchbase/binary_collection.hxx +19 -115
  196. package/deps/couchbase-cxx-client/couchbase/bucket.hxx +42 -30
  197. package/deps/couchbase-cxx-client/couchbase/bucket_manager.hxx +8 -7
  198. package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +0 -1
  199. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +151 -73
  200. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +1 -27
  201. package/deps/couchbase-cxx-client/couchbase/codec/json_transcoder.hxx +1 -1
  202. package/deps/couchbase-cxx-client/couchbase/codec/raw_binary_transcoder.hxx +2 -1
  203. package/deps/couchbase-cxx-client/couchbase/codec/raw_json_transcoder.hxx +78 -0
  204. package/deps/couchbase-cxx-client/couchbase/codec/raw_string_transcoder.hxx +72 -0
  205. package/deps/couchbase-cxx-client/couchbase/collection.hxx +176 -386
  206. package/deps/couchbase-cxx-client/couchbase/collection_manager.hxx +8 -9
  207. package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +21 -24
  208. package/deps/couchbase-cxx-client/couchbase/connect_link_analytics_options.hxx +116 -0
  209. package/deps/couchbase-cxx-client/couchbase/create_bucket_options.hxx +3 -3
  210. package/deps/couchbase-cxx-client/couchbase/create_collection_options.hxx +32 -3
  211. package/deps/couchbase-cxx-client/couchbase/create_dataset_analytics_options.hxx +120 -0
  212. package/deps/couchbase-cxx-client/couchbase/create_dataverse_analytics_options.hxx +85 -0
  213. package/deps/couchbase-cxx-client/couchbase/create_index_analytics_options.hxx +103 -0
  214. package/deps/couchbase-cxx-client/couchbase/create_link_analytics_options.hxx +63 -0
  215. package/deps/couchbase-cxx-client/couchbase/decrement_options.hxx +0 -23
  216. package/deps/couchbase-cxx-client/couchbase/diagnostics_options.hxx +75 -0
  217. package/deps/couchbase-cxx-client/couchbase/diagnostics_result.hxx +124 -0
  218. package/deps/couchbase-cxx-client/couchbase/disallow_querying_search_index_options.hxx +43 -0
  219. package/deps/couchbase-cxx-client/couchbase/disconnect_link_analytics_options.hxx +105 -0
  220. package/deps/couchbase-cxx-client/couchbase/drop_dataset_analytics_options.hxx +103 -0
  221. package/deps/couchbase-cxx-client/couchbase/drop_dataverse_analytics_options.hxx +84 -0
  222. package/deps/couchbase-cxx-client/couchbase/drop_index_analytics_options.hxx +103 -0
  223. package/deps/couchbase-cxx-client/couchbase/drop_link_analytics_options.hxx +63 -0
  224. package/deps/couchbase-cxx-client/couchbase/drop_search_index_options.hxx +43 -0
  225. package/deps/couchbase-cxx-client/couchbase/endpoint_diagnostics.hxx +206 -0
  226. package/deps/couchbase-cxx-client/couchbase/endpoint_ping_report.hxx +205 -0
  227. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +22 -1
  228. package/deps/couchbase-cxx-client/couchbase/exists_options.hxx +0 -23
  229. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_error_map_attribute.hxx +6 -0
  230. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +3 -0
  231. package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +37 -0
  232. package/deps/couchbase-cxx-client/couchbase/freeze_plan_search_index_options.hxx +43 -0
  233. package/deps/couchbase-cxx-client/couchbase/get_all_datasets_analytics_options.hxx +66 -0
  234. package/deps/couchbase-cxx-client/couchbase/get_all_indexes_analytics_options.hxx +65 -0
  235. package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +1 -4
  236. package/deps/couchbase-cxx-client/couchbase/get_all_replicas_options.hxx +0 -23
  237. package/deps/couchbase-cxx-client/couchbase/get_all_search_indexes_options.hxx +45 -0
  238. package/deps/couchbase-cxx-client/couchbase/get_and_lock_options.hxx +0 -24
  239. package/deps/couchbase-cxx-client/couchbase/get_and_touch_options.hxx +0 -24
  240. package/deps/couchbase-cxx-client/couchbase/get_any_replica_options.hxx +0 -23
  241. package/deps/couchbase-cxx-client/couchbase/get_indexed_search_index_options.hxx +43 -0
  242. package/deps/couchbase-cxx-client/couchbase/get_links_analytics_options.hxx +121 -0
  243. package/deps/couchbase-cxx-client/couchbase/get_options.hxx +1 -29
  244. package/deps/couchbase-cxx-client/couchbase/get_pending_mutations_analytics_options.hxx +67 -0
  245. package/deps/couchbase-cxx-client/couchbase/get_search_index_options.hxx +44 -0
  246. package/deps/couchbase-cxx-client/couchbase/increment_options.hxx +0 -23
  247. package/deps/couchbase-cxx-client/couchbase/insert_options.hxx +0 -24
  248. package/deps/couchbase-cxx-client/couchbase/key_value_error_map_attribute.hxx +12 -0
  249. package/deps/couchbase-cxx-client/couchbase/key_value_status_code.hxx +1 -0
  250. package/deps/couchbase-cxx-client/couchbase/lookup_in_options.hxx +0 -24
  251. package/deps/couchbase-cxx-client/couchbase/management/analytics_dataset.hxx +48 -0
  252. package/deps/couchbase-cxx-client/couchbase/management/analytics_index.hxx +48 -0
  253. package/deps/couchbase-cxx-client/couchbase/management/analytics_link.hxx +239 -0
  254. package/deps/couchbase-cxx-client/couchbase/management/collection_spec.hxx +1 -1
  255. package/deps/couchbase-cxx-client/couchbase/management/query_index.hxx +3 -3
  256. package/deps/couchbase-cxx-client/couchbase/management/search_index.hxx +40 -0
  257. package/deps/couchbase-cxx-client/couchbase/manager_error_context.hxx +0 -1
  258. package/deps/couchbase-cxx-client/couchbase/mutate_in_options.hxx +0 -24
  259. package/deps/couchbase-cxx-client/couchbase/network_options.hxx +1 -1
  260. package/deps/couchbase-cxx-client/couchbase/pause_ingest_search_index_options.hxx +43 -0
  261. package/deps/couchbase-cxx-client/couchbase/phrase_query.hxx +19 -0
  262. package/deps/couchbase-cxx-client/couchbase/ping_options.hxx +93 -0
  263. package/deps/couchbase-cxx-client/couchbase/ping_result.hxx +118 -0
  264. package/deps/couchbase-cxx-client/couchbase/prepend_options.hxx +0 -24
  265. package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +99 -20
  266. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +0 -21
  267. package/deps/couchbase-cxx-client/couchbase/remove_options.hxx +0 -23
  268. package/deps/couchbase-cxx-client/couchbase/replace_link_analytics_options.hxx +63 -0
  269. package/deps/couchbase-cxx-client/couchbase/replace_options.hxx +0 -24
  270. package/deps/couchbase-cxx-client/couchbase/resume_ingest_search_index_options.hxx +43 -0
  271. package/deps/couchbase-cxx-client/couchbase/scope.hxx +37 -53
  272. package/deps/couchbase-cxx-client/couchbase/scope_search_index_manager.hxx +291 -0
  273. package/deps/couchbase-cxx-client/couchbase/search_facet_result.hxx +1 -7
  274. package/deps/couchbase-cxx-client/couchbase/search_geo_distance_units.hxx +26 -0
  275. package/deps/couchbase-cxx-client/couchbase/search_index_manager.hxx +292 -0
  276. package/deps/couchbase-cxx-client/couchbase/search_request.hxx +120 -0
  277. package/deps/couchbase-cxx-client/couchbase/search_row_location.hxx +10 -0
  278. package/deps/couchbase-cxx-client/couchbase/search_sort_geo_distance.hxx +84 -0
  279. package/deps/couchbase-cxx-client/couchbase/security_options.hxx +1 -1
  280. package/deps/couchbase-cxx-client/couchbase/service_type.hxx +58 -0
  281. package/deps/couchbase-cxx-client/couchbase/touch_options.hxx +0 -24
  282. package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +1 -1
  283. package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +10 -7
  284. package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +10 -10
  285. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +8 -58
  286. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +28 -70
  287. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +7 -2
  288. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +2 -1
  289. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +11 -38
  290. package/deps/couchbase-cxx-client/couchbase/unfreeze_plan_search_index_options.hxx +43 -0
  291. package/deps/couchbase-cxx-client/couchbase/unlock_options.hxx +0 -24
  292. package/deps/couchbase-cxx-client/couchbase/update_collection_options.hxx +32 -3
  293. package/deps/couchbase-cxx-client/couchbase/upsert_options.hxx +0 -24
  294. package/deps/couchbase-cxx-client/couchbase/upsert_search_index_options.hxx +41 -0
  295. package/deps/couchbase-cxx-client/couchbase/vector_query.hxx +99 -0
  296. package/deps/couchbase-cxx-client/couchbase/vector_search.hxx +85 -0
  297. package/deps/couchbase-cxx-client/couchbase/vector_search_options.hxx +76 -0
  298. package/dist/binding.d.ts +16 -9
  299. package/dist/binding.js +4 -1
  300. package/dist/bindingutilities.d.ts +6 -1
  301. package/dist/bindingutilities.js +17 -1
  302. package/dist/cluster.d.ts +12 -1
  303. package/dist/cluster.js +22 -0
  304. package/dist/collection.js +3 -3
  305. package/dist/couchbase.d.ts +1 -0
  306. package/dist/couchbase.js +1 -0
  307. package/dist/errors.d.ts +9 -0
  308. package/dist/errors.js +14 -2
  309. package/dist/searchexecutor.d.ts +2 -2
  310. package/dist/searchexecutor.js +19 -3
  311. package/dist/searchtypes.d.ts +46 -0
  312. package/dist/searchtypes.js +81 -1
  313. package/dist/transactions.d.ts +2 -0
  314. package/dist/transactions.js +2 -3
  315. package/dist/usermanager.js +1 -1
  316. package/dist/vectorsearch.d.ts +99 -0
  317. package/dist/vectorsearch.js +132 -0
  318. package/package.json +7 -7
  319. package/src/binding.cpp +1 -0
  320. package/src/connection.cpp +12 -9
  321. package/src/connection.hpp +3 -3
  322. package/src/connection_autogen.cpp +7 -5
  323. package/src/constants.cpp +14 -0
  324. package/src/instance.cpp +2 -2
  325. package/src/instance.hpp +1 -1
  326. package/src/jstocbpp_autogen.hpp +45 -45
  327. package/src/jstocbpp_basic.hpp +2 -0
  328. package/src/jstocbpp_errors.hpp +1 -0
  329. package/src/jstocbpp_transactions.hpp +6 -22
  330. package/src/mutationtoken.hpp +1 -0
  331. package/tools/gen-bindings-json.py +41 -16
  332. package/deps/couchbase-cxx-client/core/impl/append.cxx +0 -87
  333. package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +0 -157
  334. package/deps/couchbase-cxx-client/core/impl/create_bucket.cxx +0 -158
  335. package/deps/couchbase-cxx-client/core/impl/create_collection.cxx +0 -83
  336. package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +0 -232
  337. package/deps/couchbase-cxx-client/core/impl/create_scope.cxx +0 -69
  338. package/deps/couchbase-cxx-client/core/impl/decrement.cxx +0 -96
  339. package/deps/couchbase-cxx-client/core/impl/drop_bucket.cxx +0 -66
  340. package/deps/couchbase-cxx-client/core/impl/drop_collection.cxx +0 -76
  341. package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +0 -187
  342. package/deps/couchbase-cxx-client/core/impl/drop_scope.cxx +0 -68
  343. package/deps/couchbase-cxx-client/core/impl/exists.cxx +0 -47
  344. package/deps/couchbase-cxx-client/core/impl/flush_bucket.cxx +0 -66
  345. package/deps/couchbase-cxx-client/core/impl/get.cxx +0 -68
  346. package/deps/couchbase-cxx-client/core/impl/get_all_buckets.cxx +0 -178
  347. package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +0 -106
  348. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.cxx +0 -145
  349. package/deps/couchbase-cxx-client/core/impl/get_all_scopes.cxx +0 -94
  350. package/deps/couchbase-cxx-client/core/impl/get_and_lock.cxx +0 -49
  351. package/deps/couchbase-cxx-client/core/impl/get_and_touch.cxx +0 -49
  352. package/deps/couchbase-cxx-client/core/impl/get_any_replica.cxx +0 -134
  353. package/deps/couchbase-cxx-client/core/impl/get_bucket.cxx +0 -168
  354. package/deps/couchbase-cxx-client/core/impl/increment.cxx +0 -96
  355. package/deps/couchbase-cxx-client/core/impl/insert.cxx +0 -90
  356. package/deps/couchbase-cxx-client/core/impl/lookup_in.cxx +0 -69
  357. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.cxx +0 -178
  358. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.cxx +0 -169
  359. package/deps/couchbase-cxx-client/core/impl/mutate_in.cxx +0 -125
  360. package/deps/couchbase-cxx-client/core/impl/prepend.cxx +0 -87
  361. package/deps/couchbase-cxx-client/core/impl/remove.cxx +0 -86
  362. package/deps/couchbase-cxx-client/core/impl/replace.cxx +0 -102
  363. package/deps/couchbase-cxx-client/core/impl/touch.cxx +0 -49
  364. package/deps/couchbase-cxx-client/core/impl/unlock.cxx +0 -47
  365. package/deps/couchbase-cxx-client/core/impl/update_bucket.cxx +0 -133
  366. package/deps/couchbase-cxx-client/core/impl/update_collection.cxx +0 -83
  367. package/deps/couchbase-cxx-client/core/impl/upsert.cxx +0 -100
  368. package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +0 -196
  369. package/deps/couchbase-cxx-client/core/operations/mcbp_noop.hxx +0 -49
  370. /package/deps/couchbase-cxx-client/core/impl/{streaming_json_lexter_error_category.cxx → streaming_json_lexer_error_category.cxx} +0 -0
@@ -1,6 +1,6 @@
1
1
  /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright 2020-2021 Couchbase, Inc.
3
+ * Copyright 2023-Present Couchbase, Inc.
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License");
6
6
  * you may not use this file except in compliance with the License.
@@ -15,24 +15,28 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- #include "mcbp_noop.hxx"
18
+ #include "encoded_search_query.hxx"
19
19
 
20
+ #include <couchbase/doc_id_query.hxx>
20
21
  #include <couchbase/error_codes.hxx>
21
22
 
22
- namespace couchbase::core::operations
23
+ #include <tao/json/contrib/traits.hpp>
24
+
25
+ namespace couchbase
23
26
  {
24
- std::error_code
25
- mcbp_noop_request::encode_to(mcbp_noop_request::encoded_request_type& encoded, mcbp_context&& /* context */) const
27
+ auto
28
+ doc_id_query::encode() const -> encoded_search_query
26
29
  {
27
- encoded.opaque(opaque);
28
- encoded.partition(partition);
29
- return {};
30
- }
30
+ if (ids_.empty()) {
31
+ return { errc::common::invalid_argument };
32
+ }
31
33
 
32
- mcbp_noop_response
33
- mcbp_noop_request::make_response(key_value_error_context&& ctx, const encoded_response_type& /* encoded */) const
34
- {
35
- mcbp_noop_response response{ std::move(ctx) };
36
- return response;
34
+ encoded_search_query built;
35
+ built.query = tao::json::value{ { "ids", ids_ } };
36
+
37
+ if (boost_.has_value()) {
38
+ built.query["boost"] = boost_.value();
39
+ }
40
+ return built;
37
41
  }
38
- } // namespace couchbase::core::operations
42
+ } // namespace couchbase
@@ -80,10 +80,12 @@ struct key_value_error_category : std::error_category {
80
80
  return "xattr_unknown_virtual_attribute (127)";
81
81
  case errc::key_value::xattr_cannot_modify_virtual_attribute:
82
82
  return "xattr_cannot_modify_virtual_attribute (128)";
83
- case errc::key_value::cannot_revive_living_document:
84
- return "cannot_revive_living_document (131)";
85
83
  case errc::key_value::xattr_no_access:
86
84
  return "xattr_no_access (130)";
85
+ case errc::key_value::document_not_locked:
86
+ return "document_not_locked (131)";
87
+ case errc::key_value::cannot_revive_living_document:
88
+ return "cannot_revive_living_document (132)";
87
89
  case errc::key_value::mutation_token_outdated:
88
90
  return "mutation_token_outdated (133)";
89
91
  case errc::key_value::range_scan_completed:
@@ -67,14 +67,4 @@ class lookup_in_all_replicas_request
67
67
 
68
68
  using movable_lookup_in_all_replicas_handler =
69
69
  utils::movable_function<void(couchbase::subdocument_error_context, lookup_in_all_replicas_result)>;
70
-
71
- void
72
- initiate_lookup_in_all_replicas_operation(std::shared_ptr<cluster> core,
73
- const std::string& bucket_name,
74
- const std::string& scope_name,
75
- const std::string& collection_name,
76
- std::string document_key,
77
- const std::vector<subdoc::command>& specs,
78
- std::optional<std::chrono::milliseconds> timeout,
79
- movable_lookup_in_all_replicas_handler&& handler);
80
70
  } // namespace couchbase::core::impl
@@ -62,14 +62,4 @@ class lookup_in_any_replica_request
62
62
  };
63
63
 
64
64
  using movable_lookup_in_any_replica_handler = utils::movable_function<void(couchbase::subdocument_error_context, lookup_in_replica_result)>;
65
-
66
- void
67
- initiate_lookup_in_any_replica_operation(std::shared_ptr<cluster> core,
68
- const std::string& bucket_name,
69
- const std::string& scope_name,
70
- const std::string& collection_name,
71
- std::string document_key,
72
- const std::vector<subdoc::command>& specs,
73
- std::optional<std::chrono::milliseconds> timeout,
74
- movable_lookup_in_any_replica_handler&& handler);
75
65
  } // namespace couchbase::core::impl
@@ -20,12 +20,18 @@
20
20
  #include "core/cluster.hxx"
21
21
  #include "core/impl/observe_seqno.hxx"
22
22
 
23
+ #include <couchbase/error_codes.hxx>
24
+
25
+ #include <asio/steady_timer.hpp>
26
+
23
27
  #include <memory>
24
28
  #include <mutex>
25
29
 
26
30
  namespace couchbase::core::impl
27
31
  {
28
- static constexpr bool
32
+ namespace
33
+ {
34
+ constexpr bool
29
35
  touches_replica(couchbase::persist_to persist_to, couchbase::replicate_to replicate_to)
30
36
  {
31
37
 
@@ -53,7 +59,7 @@ touches_replica(couchbase::persist_to persist_to, couchbase::replicate_to replic
53
59
  return false;
54
60
  }
55
61
 
56
- static constexpr std::uint32_t
62
+ constexpr std::uint32_t
57
63
  number_of_replica_nodes_required(couchbase::persist_to persist_to)
58
64
  {
59
65
  switch (persist_to) {
@@ -72,7 +78,7 @@ number_of_replica_nodes_required(couchbase::persist_to persist_to)
72
78
  return 0U;
73
79
  }
74
80
 
75
- static constexpr std::uint32_t
81
+ constexpr std::uint32_t
76
82
  number_of_replica_nodes_required(couchbase::replicate_to replicate_to)
77
83
  {
78
84
  switch (replicate_to) {
@@ -88,7 +94,7 @@ number_of_replica_nodes_required(couchbase::replicate_to replicate_to)
88
94
  return 0U;
89
95
  }
90
96
 
91
- static std::pair<std::error_code, std::uint32_t>
97
+ std::pair<std::error_code, std::uint32_t>
92
98
  validate_replicas(const topology::configuration& config, couchbase::persist_to persist_to, couchbase::replicate_to replicate_to)
93
99
  {
94
100
  if (config.node_locator != topology::configuration::node_locator_type::vbucket) {
@@ -158,8 +164,8 @@ class observe_status
158
164
  };
159
165
 
160
166
  class observe_context;
161
- static void
162
- observe_poll(std::shared_ptr<couchbase::core::cluster> core, std::shared_ptr<observe_context> ctx);
167
+ void
168
+ observe_poll(cluster core, std::shared_ptr<observe_context> ctx);
163
169
 
164
170
  class observe_context : public std::enable_shared_from_this<observe_context>
165
171
  {
@@ -270,13 +276,13 @@ class observe_context : public std::enable_shared_from_this<observe_context>
270
276
  }
271
277
  }
272
278
 
273
- void on_last_response(std::size_t expected_number_of_responses, std::function<void(std::error_code)> handler)
279
+ void on_last_response(std::size_t expected_number_of_responses, utils::movable_function<void(std::error_code)> handler)
274
280
  {
275
281
  expect_number_of_responses_ = expected_number_of_responses;
276
282
  on_last_response_ = std::move(handler);
277
283
  }
278
284
 
279
- void execute(std::shared_ptr<couchbase::core::cluster> core)
285
+ void execute(cluster core)
280
286
  {
281
287
  auto requests = std::move(requests_);
282
288
  status_.reset();
@@ -287,8 +293,8 @@ class observe_context : public std::enable_shared_from_this<observe_context>
287
293
  observe_poll(std::move(core), std::move(ctx));
288
294
  });
289
295
  for (auto&& request : requests) {
290
- core->execute(std::move(request),
291
- [ctx = shared_from_this()](observe_seqno_response&& response) { ctx->handle_response(std::move(response)); });
296
+ core.execute(std::move(request),
297
+ [ctx = shared_from_this()](observe_seqno_response&& response) { ctx->handle_response(std::move(response)); });
292
298
  }
293
299
  }
294
300
 
@@ -304,16 +310,16 @@ class observe_context : public std::enable_shared_from_this<observe_context>
304
310
  std::atomic_size_t expect_number_of_responses_{};
305
311
  std::mutex handler_mutex_{};
306
312
  observe_handler handler_{};
307
- std::function<void(std::error_code)> on_last_response_{};
313
+ utils::movable_function<void(std::error_code)> on_last_response_{};
308
314
  std::chrono::milliseconds poll_backoff_interval_{ 500 };
309
315
  std::chrono::milliseconds poll_deadline_interval_{ 5'000 };
310
316
  };
311
317
 
312
- static void
313
- observe_poll(std::shared_ptr<couchbase::core::cluster> core, std::shared_ptr<observe_context> ctx)
318
+ void
319
+ observe_poll(cluster core, std::shared_ptr<observe_context> ctx)
314
320
  {
315
- std::string bucket_name = ctx->bucket_name();
316
- core->with_bucket_configuration(
321
+ const std::string bucket_name = ctx->bucket_name();
322
+ core.with_bucket_configuration(
317
323
  bucket_name, [core, ctx = std::move(ctx)](std::error_code ec, const core::topology::configuration& config) mutable {
318
324
  if (ec) {
319
325
  return ctx->finish(ec);
@@ -337,9 +343,10 @@ observe_poll(std::shared_ptr<couchbase::core::cluster> core, std::shared_ptr<obs
337
343
  ctx->execute(core);
338
344
  });
339
345
  }
346
+ } // namespace
340
347
 
341
348
  void
342
- initiate_observe_poll(std::shared_ptr<couchbase::core::cluster> core,
349
+ initiate_observe_poll(cluster core,
343
350
  document_id id,
344
351
  mutation_token token,
345
352
  std::optional<std::chrono::milliseconds> timeout,
@@ -348,7 +355,7 @@ initiate_observe_poll(std::shared_ptr<couchbase::core::cluster> core,
348
355
  observe_handler&& handler)
349
356
  {
350
357
  auto ctx = std::make_shared<observe_context>(
351
- core->io_context(), std::move(id), std::move(token), timeout, persist_to, replicate_to, std::move(handler));
358
+ core.io_context(), std::move(id), std::move(token), timeout, persist_to, replicate_to, std::move(handler));
352
359
  ctx->start();
353
360
  return observe_poll(std::move(core), std::move(ctx));
354
361
  }
@@ -38,7 +38,7 @@ namespace impl
38
38
  using observe_handler = utils::movable_function<void(std::error_code)>;
39
39
 
40
40
  void
41
- initiate_observe_poll(std::shared_ptr<couchbase::core::cluster> core,
41
+ initiate_observe_poll(cluster core,
42
42
  document_id id,
43
43
  mutation_token token,
44
44
  std::optional<std::chrono::milliseconds> timeout,
@@ -21,33 +21,13 @@
21
21
 
22
22
  #include "core/cluster.hxx"
23
23
  #include "core/operations/document_query.hxx"
24
+ #include "core/utils/binary.hxx"
24
25
 
25
26
  namespace couchbase::core::impl
26
27
  {
27
- static query_error_context
28
- build_context(operations::query_response& resp)
28
+ namespace
29
29
  {
30
- return {
31
- resp.ctx.ec,
32
- resp.ctx.last_dispatched_to,
33
- resp.ctx.last_dispatched_from,
34
- resp.ctx.retry_attempts,
35
- std::move(resp.ctx.retry_reasons),
36
- resp.ctx.first_error_code,
37
- std::move(resp.ctx.first_error_message),
38
- std::move(resp.ctx.client_context_id),
39
- std::move(resp.ctx.statement),
40
- std::move(resp.ctx.parameters),
41
- std::move(resp.ctx.method),
42
- std::move(resp.ctx.path),
43
- resp.ctx.http_status,
44
- std::move(resp.ctx.http_body),
45
- std::move(resp.ctx.hostname),
46
- resp.ctx.port,
47
- };
48
- }
49
-
50
- static query_status
30
+ query_status
51
31
  map_status(std::string status)
52
32
  {
53
33
  std::transform(status.cbegin(), status.cend(), status.begin(), [](unsigned char c) { return std::tolower(c); });
@@ -73,7 +53,7 @@ map_status(std::string status)
73
53
  return query_status::unknown;
74
54
  }
75
55
 
76
- static std::vector<codec::binary>
56
+ std::vector<codec::binary>
77
57
  map_rows(operations::query_response& resp)
78
58
  {
79
59
  std::vector<codec::binary> rows;
@@ -84,7 +64,7 @@ map_rows(operations::query_response& resp)
84
64
  return rows;
85
65
  }
86
66
 
87
- static std::vector<query_warning>
67
+ std::vector<query_warning>
88
68
  map_warnings(operations::query_response& resp)
89
69
  {
90
70
  std::vector<query_warning> warnings;
@@ -102,7 +82,7 @@ map_warnings(operations::query_response& resp)
102
82
  return warnings;
103
83
  }
104
84
 
105
- static std::optional<query_metrics>
85
+ std::optional<query_metrics>
106
86
  map_metrics(operations::query_response& resp)
107
87
  {
108
88
  if (!resp.meta.metrics) {
@@ -116,7 +96,7 @@ map_metrics(operations::query_response& resp)
116
96
  };
117
97
  }
118
98
 
119
- static std::optional<std::vector<std::byte>>
99
+ std::optional<std::vector<std::byte>>
120
100
  map_signature(operations::query_response& resp)
121
101
  {
122
102
  if (!resp.meta.signature) {
@@ -125,7 +105,7 @@ map_signature(operations::query_response& resp)
125
105
  return utils::to_binary(resp.meta.signature.value());
126
106
  }
127
107
 
128
- static std::optional<std::vector<std::byte>>
108
+ std::optional<std::vector<std::byte>>
129
109
  map_profile(operations::query_response& resp)
130
110
  {
131
111
  if (!resp.meta.profile) {
@@ -133,8 +113,32 @@ map_profile(operations::query_response& resp)
133
113
  }
134
114
  return utils::to_binary(resp.meta.profile.value());
135
115
  }
116
+ } // namespace
136
117
 
137
- static query_result
118
+ query_error_context
119
+ build_context(operations::query_response& resp)
120
+ {
121
+ return {
122
+ resp.ctx.ec,
123
+ resp.ctx.last_dispatched_to,
124
+ resp.ctx.last_dispatched_from,
125
+ resp.ctx.retry_attempts,
126
+ std::move(resp.ctx.retry_reasons),
127
+ resp.ctx.first_error_code,
128
+ std::move(resp.ctx.first_error_message),
129
+ std::move(resp.ctx.client_context_id),
130
+ std::move(resp.ctx.statement),
131
+ std::move(resp.ctx.parameters),
132
+ std::move(resp.ctx.method),
133
+ std::move(resp.ctx.path),
134
+ resp.ctx.http_status,
135
+ std::move(resp.ctx.http_body),
136
+ std::move(resp.ctx.hostname),
137
+ resp.ctx.port,
138
+ };
139
+ }
140
+
141
+ query_result
138
142
  build_result(operations::query_response& resp)
139
143
  {
140
144
  return {
@@ -151,28 +155,19 @@ build_result(operations::query_response& resp)
151
155
  };
152
156
  }
153
157
 
154
- static core::operations::query_request
155
- build_query_request(std::string statement, query_options::built options)
158
+ core::operations::query_request
159
+ build_query_request(std::string statement, std::optional<std::string> query_context, query_options::built options)
156
160
  {
157
161
  operations::query_request request{
158
- std::move(statement),
159
- options.adhoc,
160
- options.metrics,
161
- options.readonly,
162
- options.flex_index,
163
- options.preserve_expiry,
164
- options.use_replica,
165
- options.max_parallelism,
166
- options.scan_cap,
167
- options.scan_wait,
168
- options.pipeline_batch,
169
- options.pipeline_cap,
170
- options.scan_consistency,
171
- std::move(options.mutation_state),
172
- std::move(options.client_context_id),
173
- {}, // we put the query_context in later, if one was specified.
174
- options.timeout,
175
- options.profile,
162
+ std::move(statement), options.adhoc,
163
+ options.metrics, options.readonly,
164
+ options.flex_index, options.preserve_expiry,
165
+ options.use_replica, options.max_parallelism,
166
+ options.scan_cap, options.scan_wait,
167
+ options.pipeline_batch, options.pipeline_cap,
168
+ options.scan_consistency, std::move(options.mutation_state),
169
+ std::move(query_context), std::move(options.client_context_id),
170
+ options.timeout, options.profile,
176
171
  };
177
172
  if (!options.raw.empty()) {
178
173
  for (auto& [name, value] : options.raw) {
@@ -223,24 +218,6 @@ build_transaction_query_result(operations::query_response resp, std::error_code
223
218
  core::operations::query_request
224
219
  build_transaction_query_request(query_options::built opts)
225
220
  {
226
- return build_query_request("", opts);
227
- }
228
-
229
- void
230
- initiate_query_operation(std::shared_ptr<couchbase::core::cluster> core,
231
- std::string statement,
232
- std::optional<std::string> query_context,
233
- query_options::built options,
234
- query_handler&& handler)
235
- {
236
- auto request = build_query_request(std::move(statement), options);
237
- if (query_context) {
238
- request.query_context = std::move(query_context);
239
- }
240
-
241
- core->execute(std::move(request), [core, handler = std::move(handler)](operations::query_response resp) mutable {
242
- auto r = std::move(resp);
243
- return handler(build_context(r), build_result(r));
244
- });
221
+ return core::impl::build_query_request("", {}, opts);
245
222
  }
246
223
  } // namespace couchbase::core::impl
@@ -0,0 +1,34 @@
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 "core/operations/document_query.hxx"
21
+
22
+ #include <couchbase/query_options.hxx>
23
+
24
+ namespace couchbase::core::impl
25
+ {
26
+ core::operations::query_request
27
+ build_query_request(std::string statement, std::optional<std::string> query_context, query_options::built options);
28
+
29
+ query_result
30
+ build_result(operations::query_response& resp);
31
+
32
+ query_error_context
33
+ build_context(operations::query_response& resp);
34
+ } // namespace couchbase::core::impl