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.
- package/CMakeLists.txt +1 -1
- package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +139 -56
- package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
- package/deps/couchbase-cxx-client/CMakeLists.txt +401 -424
- package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +7 -3
- package/deps/couchbase-cxx-client/cmake/OpenSSL.cmake +1 -0
- package/deps/couchbase-cxx-client/core/agent_config.hxx +1 -1
- package/deps/couchbase-cxx-client/core/agent_group.cxx +0 -1
- package/deps/couchbase-cxx-client/core/agent_group.hxx +9 -0
- package/deps/couchbase-cxx-client/core/agent_group_config.hxx +1 -1
- package/deps/couchbase-cxx-client/core/bucket.cxx +74 -10
- package/deps/couchbase-cxx-client/core/bucket.hxx +4 -2
- package/deps/couchbase-cxx-client/core/cluster.cxx +1491 -108
- package/deps/couchbase-cxx-client/core/cluster.hxx +183 -473
- package/deps/couchbase-cxx-client/core/cluster_agent_config.hxx +1 -1
- package/deps/couchbase-cxx-client/core/cluster_options.cxx +12 -2
- package/deps/couchbase-cxx-client/core/cluster_options.hxx +9 -8
- package/deps/couchbase-cxx-client/core/config_profiles.cxx +2 -2
- package/deps/couchbase-cxx-client/core/config_profiles.hxx +1 -1
- package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +1 -2
- package/deps/couchbase-cxx-client/core/core_sdk_shim.hxx +3 -2
- package/deps/couchbase-cxx-client/core/diagnostics.hxx +0 -1
- package/deps/couchbase-cxx-client/core/dispatcher.cxx +2 -2
- package/deps/couchbase-cxx-client/core/impl/analytics.cxx +38 -76
- package/deps/couchbase-cxx-client/core/impl/analytics.hxx +40 -0
- package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +820 -0
- package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +403 -0
- package/deps/couchbase-cxx-client/core/impl/bucket.cxx +102 -0
- package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +433 -0
- package/deps/couchbase-cxx-client/core/impl/cluster.cxx +299 -44
- package/deps/couchbase-cxx-client/core/impl/collection.cxx +1384 -0
- package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +306 -0
- package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +3 -1
- package/deps/couchbase-cxx-client/core/impl/diagnostics.cxx +294 -0
- package/deps/couchbase-cxx-client/core/impl/diagnostics.hxx +39 -0
- package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +2 -0
- package/deps/couchbase-cxx-client/core/{operations/mcbp_noop.cxx → impl/doc_id_query.cxx} +19 -15
- package/deps/couchbase-cxx-client/core/impl/key_value_error_category.cxx +4 -2
- package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.hxx +0 -10
- package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.hxx +0 -10
- package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +24 -17
- package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/query.cxx +45 -68
- package/deps/couchbase-cxx-client/core/impl/query.hxx +34 -0
- package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +628 -0
- package/deps/couchbase-cxx-client/core/impl/scope.cxx +187 -0
- package/deps/couchbase-cxx-client/core/impl/search.cxx +81 -57
- package/deps/couchbase-cxx-client/core/impl/search.hxx +45 -0
- package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +712 -0
- package/deps/couchbase-cxx-client/core/impl/search_request.cxx +139 -0
- package/deps/couchbase-cxx-client/core/impl/search_row_location.cxx +12 -0
- package/deps/couchbase-cxx-client/core/impl/search_sort_geo_distance.cxx +87 -0
- package/deps/couchbase-cxx-client/core/impl/vector_query.cxx +42 -0
- package/deps/couchbase-cxx-client/core/impl/vector_search.cxx +40 -0
- package/deps/couchbase-cxx-client/core/impl/with_legacy_durability.hxx +23 -25
- package/deps/couchbase-cxx-client/core/io/dns_config.cxx +28 -0
- package/deps/couchbase-cxx-client/core/io/dns_config.hxx +6 -25
- package/deps/couchbase-cxx-client/core/io/http_session.hxx +6 -3
- package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +9 -1
- package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +1 -1
- package/deps/couchbase-cxx-client/core/io/mcbp_message.hxx +3 -2
- package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +75 -53
- package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +3 -1
- package/deps/couchbase-cxx-client/core/logger/logger.cxx +1 -1
- package/deps/couchbase-cxx-client/core/logger/logger.hxx +4 -4
- package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +1 -1
- package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +1 -1
- package/deps/couchbase-cxx-client/core/mcbp/queue_callback.hxx +1 -1
- package/deps/couchbase-cxx-client/core/meta/features.hxx +38 -0
- package/deps/couchbase-cxx-client/core/operations/document_query.cxx +23 -2
- package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/document_search.cxx +37 -1
- package/deps/couchbase-cxx-client/core/operations/document_search.hxx +11 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +9 -6
- package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +9 -8
- package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +9 -5
- package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_get_all.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +2 -2
- package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +4 -1
- package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +4 -1
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.cxx +4 -4
- package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +4 -4
- package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +19 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +23 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +23 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +23 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +19 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +19 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +39 -22
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +20 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +19 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
- package/deps/couchbase-cxx-client/core/operations_fwd.hxx +260 -0
- package/deps/couchbase-cxx-client/core/origin.cxx +146 -5
- package/deps/couchbase-cxx-client/core/origin.hxx +30 -140
- package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.hxx +3 -3
- package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +5 -0
- package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.hxx +4 -4
- package/deps/couchbase-cxx-client/core/protocol/hello_feature.hxx +6 -0
- package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +3 -0
- package/deps/couchbase-cxx-client/core/protocol/status.cxx +6 -0
- package/deps/couchbase-cxx-client/core/protocol/status.hxx +1 -0
- package/deps/couchbase-cxx-client/core/query_context.hxx +11 -7
- package/deps/couchbase-cxx-client/core/range_scan_orchestrator.cxx +1 -1
- package/deps/couchbase-cxx-client/core/topology/collections_manifest.hxx +1 -1
- package/deps/couchbase-cxx-client/core/topology/collections_manifest_json.hxx +1 -1
- package/deps/couchbase-cxx-client/core/topology/configuration.cxx +23 -0
- package/deps/couchbase-cxx-client/core/topology/configuration.hxx +8 -12
- package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +3 -3
- package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +2 -0
- package/deps/couchbase-cxx-client/core/topology/error_map.hxx +2 -2
- package/deps/couchbase-cxx-client/core/topology/error_map_json.hxx +4 -0
- package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.cxx +58 -0
- package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +5 -40
- package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +30 -0
- package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +18 -18
- package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +36 -0
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +39 -41
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +2 -2
- package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +3 -1
- package/deps/couchbase-cxx-client/core/transactions/internal/atr_entry.hxx +2 -0
- package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +32 -0
- package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +4 -30
- package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +41 -0
- package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +17 -15
- package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +1 -1
- package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +4 -4
- package/deps/couchbase-cxx-client/core/transactions/internal/utils.hxx +5 -13
- package/deps/couchbase-cxx-client/core/transactions/result.hxx +0 -26
- package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +46 -0
- package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +16 -14
- package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +6 -6
- package/deps/couchbase-cxx-client/core/transactions/transaction_keyspace.cxx +48 -0
- package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +1 -0
- package/deps/couchbase-cxx-client/core/transactions/transaction_options.cxx +61 -4
- package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +9 -8
- package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +9 -16
- package/deps/couchbase-cxx-client/core/transactions/transactions_config.cxx +7 -6
- package/deps/couchbase-cxx-client/core/transactions.hxx +6 -5
- package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +4 -3
- package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +4 -4
- package/deps/couchbase-cxx-client/core/vector_query_combination.hxx +23 -0
- package/deps/couchbase-cxx-client/couchbase/allow_querying_search_index_options.hxx +44 -0
- package/deps/couchbase-cxx-client/couchbase/analytics_index_manager.hxx +463 -0
- package/deps/couchbase-cxx-client/couchbase/analyze_document_options.hxx +44 -0
- package/deps/couchbase-cxx-client/couchbase/append_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/binary_collection.hxx +19 -115
- package/deps/couchbase-cxx-client/couchbase/bucket.hxx +42 -30
- package/deps/couchbase-cxx-client/couchbase/bucket_manager.hxx +8 -7
- package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +0 -1
- package/deps/couchbase-cxx-client/couchbase/cluster.hxx +151 -73
- package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +1 -27
- package/deps/couchbase-cxx-client/couchbase/codec/json_transcoder.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/codec/raw_binary_transcoder.hxx +2 -1
- package/deps/couchbase-cxx-client/couchbase/codec/raw_json_transcoder.hxx +78 -0
- package/deps/couchbase-cxx-client/couchbase/codec/raw_string_transcoder.hxx +72 -0
- package/deps/couchbase-cxx-client/couchbase/collection.hxx +176 -386
- package/deps/couchbase-cxx-client/couchbase/collection_manager.hxx +8 -9
- package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +21 -24
- package/deps/couchbase-cxx-client/couchbase/connect_link_analytics_options.hxx +116 -0
- package/deps/couchbase-cxx-client/couchbase/create_bucket_options.hxx +3 -3
- package/deps/couchbase-cxx-client/couchbase/create_collection_options.hxx +32 -3
- package/deps/couchbase-cxx-client/couchbase/create_dataset_analytics_options.hxx +120 -0
- package/deps/couchbase-cxx-client/couchbase/create_dataverse_analytics_options.hxx +85 -0
- package/deps/couchbase-cxx-client/couchbase/create_index_analytics_options.hxx +103 -0
- package/deps/couchbase-cxx-client/couchbase/create_link_analytics_options.hxx +63 -0
- package/deps/couchbase-cxx-client/couchbase/decrement_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/diagnostics_options.hxx +75 -0
- package/deps/couchbase-cxx-client/couchbase/diagnostics_result.hxx +124 -0
- package/deps/couchbase-cxx-client/couchbase/disallow_querying_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/disconnect_link_analytics_options.hxx +105 -0
- package/deps/couchbase-cxx-client/couchbase/drop_dataset_analytics_options.hxx +103 -0
- package/deps/couchbase-cxx-client/couchbase/drop_dataverse_analytics_options.hxx +84 -0
- package/deps/couchbase-cxx-client/couchbase/drop_index_analytics_options.hxx +103 -0
- package/deps/couchbase-cxx-client/couchbase/drop_link_analytics_options.hxx +63 -0
- package/deps/couchbase-cxx-client/couchbase/drop_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/endpoint_diagnostics.hxx +206 -0
- package/deps/couchbase-cxx-client/couchbase/endpoint_ping_report.hxx +205 -0
- package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +22 -1
- package/deps/couchbase-cxx-client/couchbase/exists_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/fmt/key_value_error_map_attribute.hxx +6 -0
- package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +3 -0
- package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +37 -0
- package/deps/couchbase-cxx-client/couchbase/freeze_plan_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/get_all_datasets_analytics_options.hxx +66 -0
- package/deps/couchbase-cxx-client/couchbase/get_all_indexes_analytics_options.hxx +65 -0
- package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +1 -4
- package/deps/couchbase-cxx-client/couchbase/get_all_replicas_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/get_all_search_indexes_options.hxx +45 -0
- package/deps/couchbase-cxx-client/couchbase/get_and_lock_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/get_and_touch_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/get_any_replica_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/get_indexed_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/get_links_analytics_options.hxx +121 -0
- package/deps/couchbase-cxx-client/couchbase/get_options.hxx +1 -29
- package/deps/couchbase-cxx-client/couchbase/get_pending_mutations_analytics_options.hxx +67 -0
- package/deps/couchbase-cxx-client/couchbase/get_search_index_options.hxx +44 -0
- package/deps/couchbase-cxx-client/couchbase/increment_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/insert_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/key_value_error_map_attribute.hxx +12 -0
- package/deps/couchbase-cxx-client/couchbase/key_value_status_code.hxx +1 -0
- package/deps/couchbase-cxx-client/couchbase/lookup_in_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/management/analytics_dataset.hxx +48 -0
- package/deps/couchbase-cxx-client/couchbase/management/analytics_index.hxx +48 -0
- package/deps/couchbase-cxx-client/couchbase/management/analytics_link.hxx +239 -0
- package/deps/couchbase-cxx-client/couchbase/management/collection_spec.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/management/query_index.hxx +3 -3
- package/deps/couchbase-cxx-client/couchbase/management/search_index.hxx +40 -0
- package/deps/couchbase-cxx-client/couchbase/manager_error_context.hxx +0 -1
- package/deps/couchbase-cxx-client/couchbase/mutate_in_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/network_options.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/pause_ingest_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/phrase_query.hxx +19 -0
- package/deps/couchbase-cxx-client/couchbase/ping_options.hxx +93 -0
- package/deps/couchbase-cxx-client/couchbase/ping_result.hxx +118 -0
- package/deps/couchbase-cxx-client/couchbase/prepend_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +99 -20
- package/deps/couchbase-cxx-client/couchbase/query_options.hxx +0 -21
- package/deps/couchbase-cxx-client/couchbase/remove_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/replace_link_analytics_options.hxx +63 -0
- package/deps/couchbase-cxx-client/couchbase/replace_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/resume_ingest_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/scope.hxx +37 -53
- package/deps/couchbase-cxx-client/couchbase/scope_search_index_manager.hxx +291 -0
- package/deps/couchbase-cxx-client/couchbase/search_facet_result.hxx +1 -7
- package/deps/couchbase-cxx-client/couchbase/search_geo_distance_units.hxx +26 -0
- package/deps/couchbase-cxx-client/couchbase/search_index_manager.hxx +292 -0
- package/deps/couchbase-cxx-client/couchbase/search_request.hxx +120 -0
- package/deps/couchbase-cxx-client/couchbase/search_row_location.hxx +10 -0
- package/deps/couchbase-cxx-client/couchbase/search_sort_geo_distance.hxx +84 -0
- package/deps/couchbase-cxx-client/couchbase/security_options.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/service_type.hxx +58 -0
- package/deps/couchbase-cxx-client/couchbase/touch_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +10 -7
- package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +10 -10
- package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +8 -58
- package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +28 -70
- package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +7 -2
- package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +2 -1
- package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +11 -38
- package/deps/couchbase-cxx-client/couchbase/unfreeze_plan_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/unlock_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/update_collection_options.hxx +32 -3
- package/deps/couchbase-cxx-client/couchbase/upsert_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/upsert_search_index_options.hxx +41 -0
- package/deps/couchbase-cxx-client/couchbase/vector_query.hxx +99 -0
- package/deps/couchbase-cxx-client/couchbase/vector_search.hxx +85 -0
- package/deps/couchbase-cxx-client/couchbase/vector_search_options.hxx +76 -0
- package/dist/binding.d.ts +16 -9
- package/dist/binding.js +4 -1
- package/dist/bindingutilities.d.ts +6 -1
- package/dist/bindingutilities.js +17 -1
- package/dist/cluster.d.ts +12 -1
- package/dist/cluster.js +22 -0
- package/dist/collection.js +3 -3
- package/dist/couchbase.d.ts +1 -0
- package/dist/couchbase.js +1 -0
- package/dist/errors.d.ts +9 -0
- package/dist/errors.js +14 -2
- package/dist/searchexecutor.d.ts +2 -2
- package/dist/searchexecutor.js +19 -3
- package/dist/searchtypes.d.ts +46 -0
- package/dist/searchtypes.js +81 -1
- package/dist/transactions.d.ts +2 -0
- package/dist/transactions.js +2 -3
- package/dist/usermanager.js +1 -1
- package/dist/vectorsearch.d.ts +99 -0
- package/dist/vectorsearch.js +132 -0
- package/package.json +7 -7
- package/src/binding.cpp +1 -0
- package/src/connection.cpp +12 -9
- package/src/connection.hpp +3 -3
- package/src/connection_autogen.cpp +7 -5
- package/src/constants.cpp +14 -0
- package/src/instance.cpp +2 -2
- package/src/instance.hpp +1 -1
- package/src/jstocbpp_autogen.hpp +45 -45
- package/src/jstocbpp_basic.hpp +2 -0
- package/src/jstocbpp_errors.hpp +1 -0
- package/src/jstocbpp_transactions.hpp +6 -22
- package/src/mutationtoken.hpp +1 -0
- package/tools/gen-bindings-json.py +41 -16
- package/deps/couchbase-cxx-client/core/impl/append.cxx +0 -87
- package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +0 -157
- package/deps/couchbase-cxx-client/core/impl/create_bucket.cxx +0 -158
- package/deps/couchbase-cxx-client/core/impl/create_collection.cxx +0 -83
- package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +0 -232
- package/deps/couchbase-cxx-client/core/impl/create_scope.cxx +0 -69
- package/deps/couchbase-cxx-client/core/impl/decrement.cxx +0 -96
- package/deps/couchbase-cxx-client/core/impl/drop_bucket.cxx +0 -66
- package/deps/couchbase-cxx-client/core/impl/drop_collection.cxx +0 -76
- package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +0 -187
- package/deps/couchbase-cxx-client/core/impl/drop_scope.cxx +0 -68
- package/deps/couchbase-cxx-client/core/impl/exists.cxx +0 -47
- package/deps/couchbase-cxx-client/core/impl/flush_bucket.cxx +0 -66
- package/deps/couchbase-cxx-client/core/impl/get.cxx +0 -68
- package/deps/couchbase-cxx-client/core/impl/get_all_buckets.cxx +0 -178
- package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +0 -106
- package/deps/couchbase-cxx-client/core/impl/get_all_replicas.cxx +0 -145
- package/deps/couchbase-cxx-client/core/impl/get_all_scopes.cxx +0 -94
- package/deps/couchbase-cxx-client/core/impl/get_and_lock.cxx +0 -49
- package/deps/couchbase-cxx-client/core/impl/get_and_touch.cxx +0 -49
- package/deps/couchbase-cxx-client/core/impl/get_any_replica.cxx +0 -134
- package/deps/couchbase-cxx-client/core/impl/get_bucket.cxx +0 -168
- package/deps/couchbase-cxx-client/core/impl/increment.cxx +0 -96
- package/deps/couchbase-cxx-client/core/impl/insert.cxx +0 -90
- package/deps/couchbase-cxx-client/core/impl/lookup_in.cxx +0 -69
- package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.cxx +0 -178
- package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.cxx +0 -169
- package/deps/couchbase-cxx-client/core/impl/mutate_in.cxx +0 -125
- package/deps/couchbase-cxx-client/core/impl/prepend.cxx +0 -87
- package/deps/couchbase-cxx-client/core/impl/remove.cxx +0 -86
- package/deps/couchbase-cxx-client/core/impl/replace.cxx +0 -102
- package/deps/couchbase-cxx-client/core/impl/touch.cxx +0 -49
- package/deps/couchbase-cxx-client/core/impl/unlock.cxx +0 -47
- package/deps/couchbase-cxx-client/core/impl/update_bucket.cxx +0 -133
- package/deps/couchbase-cxx-client/core/impl/update_collection.cxx +0 -83
- package/deps/couchbase-cxx-client/core/impl/upsert.cxx +0 -100
- package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +0 -196
- package/deps/couchbase-cxx-client/core/operations/mcbp_noop.hxx +0 -49
- /package/deps/couchbase-cxx-client/core/impl/{streaming_json_lexter_error_category.cxx → streaming_json_lexer_error_category.cxx} +0 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2023-Present Couchbase, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#include "core/impl/encoded_search_query.hxx"
|
|
19
|
+
|
|
20
|
+
#include <couchbase/search_request.hxx>
|
|
21
|
+
|
|
22
|
+
namespace couchbase
|
|
23
|
+
{
|
|
24
|
+
class search_request_impl
|
|
25
|
+
{
|
|
26
|
+
public:
|
|
27
|
+
explicit search_request_impl(std::optional<encoded_search_query> search_query,
|
|
28
|
+
std::optional<encoded_search_query> vector_search,
|
|
29
|
+
std::optional<vector_search_options::built> options)
|
|
30
|
+
: search_query_(std::move(search_query))
|
|
31
|
+
, vector_search_(std::move(vector_search))
|
|
32
|
+
, vector_search_options_(std::move(options))
|
|
33
|
+
{
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static search_request_impl create(const search_query& query)
|
|
37
|
+
{
|
|
38
|
+
auto encoded = query.encode();
|
|
39
|
+
if (encoded.ec) {
|
|
40
|
+
throw std::system_error(encoded.ec, "unable to encode the search_query");
|
|
41
|
+
}
|
|
42
|
+
return search_request_impl(encoded, {}, {});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static search_request_impl create(const vector_search& search)
|
|
46
|
+
{
|
|
47
|
+
auto encoded = search.encode();
|
|
48
|
+
if (encoded.ec) {
|
|
49
|
+
throw std::system_error(encoded.ec, "unable to encode the vector_search");
|
|
50
|
+
}
|
|
51
|
+
return search_request_impl({}, encoded, search.options());
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
void search_query(const couchbase::search_query& query)
|
|
55
|
+
{
|
|
56
|
+
search_query_ = query.encode();
|
|
57
|
+
if (search_query_.value().ec) {
|
|
58
|
+
throw std::system_error(search_query_.value().ec, "unable to encode the search_query");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
void vector_search(const couchbase::vector_search& search)
|
|
63
|
+
{
|
|
64
|
+
vector_search_ = search.encode();
|
|
65
|
+
if (vector_search_.value().ec) {
|
|
66
|
+
throw std::system_error(vector_search_.value().ec, "unable to encode the vector_search");
|
|
67
|
+
}
|
|
68
|
+
vector_search_options_ = search.options();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
[[nodiscard]] std::optional<encoded_search_query> search_query() const
|
|
72
|
+
{
|
|
73
|
+
return search_query_;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
[[nodiscard]] std::optional<encoded_search_query> vector_search() const
|
|
77
|
+
{
|
|
78
|
+
return vector_search_;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
[[nodiscard]] std::optional<vector_search_options::built> vector_options() const
|
|
82
|
+
{
|
|
83
|
+
return vector_search_options_;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
private:
|
|
87
|
+
std::optional<encoded_search_query> search_query_;
|
|
88
|
+
std::optional<encoded_search_query> vector_search_;
|
|
89
|
+
std::optional<vector_search_options::built> vector_search_options_;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
search_request::search_request(const couchbase::search_query& query)
|
|
93
|
+
: impl_{ std::make_shared<search_request_impl>(search_request_impl::create(query)) }
|
|
94
|
+
{
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
search_request::search_request(const couchbase::vector_search& search)
|
|
98
|
+
: impl_{ std::make_shared<search_request_impl>(search_request_impl::create(search)) }
|
|
99
|
+
{
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
auto
|
|
103
|
+
search_request::search_query(const couchbase::search_query& search_query) -> search_request&
|
|
104
|
+
{
|
|
105
|
+
if (impl_->search_query().has_value()) {
|
|
106
|
+
throw std::invalid_argument("There can only be one search_query in a search request");
|
|
107
|
+
}
|
|
108
|
+
impl_->search_query(search_query);
|
|
109
|
+
return *this;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
auto
|
|
113
|
+
search_request::vector_search(const couchbase::vector_search& vector_search) -> search_request&
|
|
114
|
+
{
|
|
115
|
+
if (impl_->vector_search().has_value()) {
|
|
116
|
+
throw std::invalid_argument("There can only be one vector_search in a search request");
|
|
117
|
+
}
|
|
118
|
+
impl_->vector_search(vector_search);
|
|
119
|
+
return *this;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
[[nodiscard]] std::optional<encoded_search_query>
|
|
123
|
+
search_request::search_query() const
|
|
124
|
+
{
|
|
125
|
+
return impl_->search_query();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
[[nodiscard]] std::optional<encoded_search_query>
|
|
129
|
+
search_request::vector_search() const
|
|
130
|
+
{
|
|
131
|
+
return impl_->vector_search();
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
[[nodiscard]] std::optional<couchbase::vector_search_options::built>
|
|
135
|
+
search_request::vector_options()
|
|
136
|
+
{
|
|
137
|
+
return impl_->vector_options();
|
|
138
|
+
}
|
|
139
|
+
} // namespace couchbase
|
|
@@ -26,6 +26,18 @@ search_row_location::search_row_location(internal_search_row_location internal)
|
|
|
26
26
|
{
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
search_row_location::search_row_location()
|
|
30
|
+
: internal_{ nullptr }
|
|
31
|
+
{
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
search_row_location::~search_row_location() = default;
|
|
35
|
+
|
|
36
|
+
search_row_location::search_row_location(search_row_location&&) noexcept = default;
|
|
37
|
+
|
|
38
|
+
search_row_location&
|
|
39
|
+
search_row_location::operator=(couchbase::search_row_location&&) noexcept = default;
|
|
40
|
+
|
|
29
41
|
auto
|
|
30
42
|
search_row_location::field() const -> const std::string&
|
|
31
43
|
{
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2023-Present Couchbase, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#include "encoded_search_sort.hxx"
|
|
19
|
+
|
|
20
|
+
#include <couchbase/search_sort_geo_distance.hxx>
|
|
21
|
+
|
|
22
|
+
namespace couchbase
|
|
23
|
+
{
|
|
24
|
+
auto
|
|
25
|
+
search_sort_geo_distance::descending(bool desc) -> search_sort_geo_distance&
|
|
26
|
+
{
|
|
27
|
+
descending_ = desc;
|
|
28
|
+
return *this;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
auto
|
|
32
|
+
search_sort_geo_distance::unit(couchbase::search_geo_distance_units unit) -> search_sort_geo_distance&
|
|
33
|
+
{
|
|
34
|
+
unit_ = unit;
|
|
35
|
+
return *this;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
auto
|
|
39
|
+
search_sort_geo_distance::encode() const -> encoded_search_sort
|
|
40
|
+
{
|
|
41
|
+
encoded_search_sort built;
|
|
42
|
+
built.sort = {
|
|
43
|
+
{ "by", "geo_distance" },
|
|
44
|
+
{ "field", field_ },
|
|
45
|
+
};
|
|
46
|
+
built.sort["location"] = {
|
|
47
|
+
{ "lat", location_.latitude },
|
|
48
|
+
{ "lon", location_.longitude },
|
|
49
|
+
};
|
|
50
|
+
if (const auto& desc = descending_; desc.has_value()) {
|
|
51
|
+
built.sort["desc"] = desc.value();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (const auto& unit = unit_; unit.has_value()) {
|
|
55
|
+
switch (unit.value()) {
|
|
56
|
+
case search_geo_distance_units::meters:
|
|
57
|
+
built.sort["unit"] = "meters";
|
|
58
|
+
break;
|
|
59
|
+
case search_geo_distance_units::miles:
|
|
60
|
+
built.sort["unit"] = "miles";
|
|
61
|
+
break;
|
|
62
|
+
case search_geo_distance_units::centimeters:
|
|
63
|
+
built.sort["unit"] = "centimeters";
|
|
64
|
+
break;
|
|
65
|
+
case search_geo_distance_units::millimeters:
|
|
66
|
+
built.sort["unit"] = "millimeters";
|
|
67
|
+
break;
|
|
68
|
+
case search_geo_distance_units::nautical_miles:
|
|
69
|
+
built.sort["unit"] = "nauticalmiles";
|
|
70
|
+
break;
|
|
71
|
+
case search_geo_distance_units::kilometers:
|
|
72
|
+
built.sort["unit"] = "kilometers";
|
|
73
|
+
break;
|
|
74
|
+
case search_geo_distance_units::feet:
|
|
75
|
+
built.sort["unit"] = "feet";
|
|
76
|
+
break;
|
|
77
|
+
case search_geo_distance_units::yards:
|
|
78
|
+
built.sort["unit"] = "yards";
|
|
79
|
+
break;
|
|
80
|
+
case search_geo_distance_units::inch:
|
|
81
|
+
built.sort["unit"] = "inch";
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return built;
|
|
86
|
+
}
|
|
87
|
+
} // namespace couchbase
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2023-Present Couchbase, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#include "encoded_search_query.hxx"
|
|
19
|
+
|
|
20
|
+
#include <couchbase/vector_query.hxx>
|
|
21
|
+
|
|
22
|
+
namespace couchbase
|
|
23
|
+
{
|
|
24
|
+
auto
|
|
25
|
+
vector_query::encode() const -> encoded_search_query
|
|
26
|
+
{
|
|
27
|
+
encoded_search_query built;
|
|
28
|
+
built.query = tao::json::empty_object;
|
|
29
|
+
if (boost_) {
|
|
30
|
+
built.query["boost"] = boost_.value();
|
|
31
|
+
}
|
|
32
|
+
built.query["field"] = vector_field_name_;
|
|
33
|
+
|
|
34
|
+
tao::json::value vector_values = tao::json::empty_array;
|
|
35
|
+
for (const auto value : vector_query_) {
|
|
36
|
+
vector_values.push_back(value);
|
|
37
|
+
}
|
|
38
|
+
built.query["vector"] = vector_values;
|
|
39
|
+
built.query["k"] = num_candidates_;
|
|
40
|
+
return built;
|
|
41
|
+
}
|
|
42
|
+
} // namespace couchbase
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2023-Present Couchbase, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#include "encoded_search_query.hxx"
|
|
19
|
+
|
|
20
|
+
#include <couchbase/vector_search.hxx>
|
|
21
|
+
|
|
22
|
+
namespace couchbase
|
|
23
|
+
{
|
|
24
|
+
auto
|
|
25
|
+
vector_search::encode() const -> encoded_search_query
|
|
26
|
+
{
|
|
27
|
+
encoded_search_query built;
|
|
28
|
+
|
|
29
|
+
built.query = tao::json::empty_array;
|
|
30
|
+
|
|
31
|
+
for (const auto& query : vector_queries_) {
|
|
32
|
+
auto encoded = query.encode();
|
|
33
|
+
if (encoded.ec) {
|
|
34
|
+
return { encoded.ec };
|
|
35
|
+
}
|
|
36
|
+
built.query.push_back(encoded.query);
|
|
37
|
+
}
|
|
38
|
+
return built;
|
|
39
|
+
}
|
|
40
|
+
} // namespace couchbase
|
|
@@ -34,32 +34,30 @@ struct with_legacy_durability : public mutation_request {
|
|
|
34
34
|
template<typename Core, typename Handler>
|
|
35
35
|
void execute(Core core, Handler handler)
|
|
36
36
|
{
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
37
|
+
core.execute(*static_cast<mutation_request*>(this),
|
|
38
|
+
[core,
|
|
39
|
+
id = mutation_request::id,
|
|
40
|
+
timeout = mutation_request::timeout,
|
|
41
|
+
persist_to_ = persist_to,
|
|
42
|
+
replicate_to_ = replicate_to,
|
|
43
|
+
handler = std::forward<Handler>(handler)](auto&& resp) mutable {
|
|
44
|
+
if (resp.ctx.ec()) {
|
|
45
|
+
return handler(std::move(resp));
|
|
46
|
+
}
|
|
48
47
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
});
|
|
48
|
+
initiate_observe_poll(core,
|
|
49
|
+
id,
|
|
50
|
+
resp.token,
|
|
51
|
+
timeout,
|
|
52
|
+
persist_to_,
|
|
53
|
+
replicate_to_,
|
|
54
|
+
[resp = std::move(resp), handler = std::move(handler)](std::error_code ec) mutable {
|
|
55
|
+
if (ec) {
|
|
56
|
+
resp.ctx.override_ec(ec);
|
|
57
|
+
}
|
|
58
|
+
return handler(std::move(resp));
|
|
59
|
+
});
|
|
60
|
+
});
|
|
63
61
|
}
|
|
64
62
|
};
|
|
65
63
|
} // namespace couchbase::core::impl
|
|
@@ -33,7 +33,10 @@
|
|
|
33
33
|
|
|
34
34
|
#include <asio/ip/address.hpp>
|
|
35
35
|
|
|
36
|
+
#include <filesystem>
|
|
37
|
+
#include <fstream>
|
|
36
38
|
#include <mutex>
|
|
39
|
+
#include <utility>
|
|
37
40
|
|
|
38
41
|
namespace couchbase::core::io::dns
|
|
39
42
|
{
|
|
@@ -158,4 +161,29 @@ dns_config::system_config()
|
|
|
158
161
|
|
|
159
162
|
return instance;
|
|
160
163
|
}
|
|
164
|
+
|
|
165
|
+
dns_config::dns_config(std::string nameserver, std::uint16_t port, std::chrono::milliseconds timeout)
|
|
166
|
+
: nameserver_{ std::move(nameserver) }
|
|
167
|
+
, port_{ port }
|
|
168
|
+
, timeout_{ timeout }
|
|
169
|
+
{
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
std::uint16_t
|
|
173
|
+
dns_config::port() const
|
|
174
|
+
{
|
|
175
|
+
return port_;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const std::string&
|
|
179
|
+
dns_config::nameserver() const
|
|
180
|
+
{
|
|
181
|
+
return nameserver_;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
std::chrono::milliseconds
|
|
185
|
+
dns_config::timeout() const
|
|
186
|
+
{
|
|
187
|
+
return timeout_;
|
|
188
|
+
}
|
|
161
189
|
} // namespace couchbase::core::io::dns
|
|
@@ -20,8 +20,6 @@
|
|
|
20
20
|
#include "core/timeout_defaults.hxx"
|
|
21
21
|
|
|
22
22
|
#include <cstdint>
|
|
23
|
-
#include <filesystem>
|
|
24
|
-
#include <fstream>
|
|
25
23
|
#include <string>
|
|
26
24
|
|
|
27
25
|
namespace couchbase::core::io::dns
|
|
@@ -32,31 +30,14 @@ class dns_config
|
|
|
32
30
|
static constexpr auto default_nameserver = "8.8.8.8";
|
|
33
31
|
static constexpr std::uint16_t default_port = 53;
|
|
34
32
|
|
|
35
|
-
dns_config()
|
|
36
|
-
|
|
37
|
-
dns_config(const std::string& nameserver, std::uint16_t port, std::chrono::milliseconds timeout = timeout_defaults::dns_srv_timeout)
|
|
38
|
-
: nameserver_{ nameserver }
|
|
39
|
-
, port_{ port }
|
|
40
|
-
, timeout_{ timeout }
|
|
41
|
-
{
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
[[nodiscard]] std::uint16_t port() const
|
|
45
|
-
{
|
|
46
|
-
return port_;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
[[nodiscard]] const std::string& nameserver() const
|
|
50
|
-
{
|
|
51
|
-
return nameserver_;
|
|
52
|
-
}
|
|
33
|
+
static const dns_config& system_config();
|
|
53
34
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return timeout_;
|
|
57
|
-
}
|
|
35
|
+
dns_config() = default;
|
|
36
|
+
dns_config(std::string nameserver, std::uint16_t port, std::chrono::milliseconds timeout = timeout_defaults::dns_srv_timeout);
|
|
58
37
|
|
|
59
|
-
|
|
38
|
+
[[nodiscard]] std::uint16_t port() const;
|
|
39
|
+
[[nodiscard]] const std::string& nameserver() const;
|
|
40
|
+
[[nodiscard]] std::chrono::milliseconds timeout() const;
|
|
60
41
|
|
|
61
42
|
private:
|
|
62
43
|
std::string nameserver_{ default_nameserver };
|
|
@@ -370,11 +370,12 @@ class http_session : public std::enable_shared_from_this<http_session>
|
|
|
370
370
|
return;
|
|
371
371
|
}
|
|
372
372
|
if (ec) {
|
|
373
|
-
CB_LOG_ERROR("{} error on resolve: {}", info_.log_prefix(), ec.message());
|
|
373
|
+
CB_LOG_ERROR("{} error on resolve \"{}:{}\": {}", info_.log_prefix(), hostname_, service_, ec.message());
|
|
374
374
|
return;
|
|
375
375
|
}
|
|
376
376
|
last_active_ = std::chrono::steady_clock::now();
|
|
377
377
|
endpoints_ = endpoints;
|
|
378
|
+
CB_LOG_TRACE("{} resolved \"{}:{}\" to {} endpoint(s)", info_.log_prefix(), hostname_, service_, endpoints_.size());
|
|
378
379
|
do_connect(endpoints_.begin());
|
|
379
380
|
deadline_timer_.async_wait(std::bind(&http_session::check_deadline, shared_from_this(), std::placeholders::_1));
|
|
380
381
|
}
|
|
@@ -385,15 +386,17 @@ class http_session : public std::enable_shared_from_this<http_session>
|
|
|
385
386
|
return;
|
|
386
387
|
}
|
|
387
388
|
if (it != endpoints_.end()) {
|
|
388
|
-
CB_LOG_DEBUG("{} connecting to {}:{}, timeout={}ms",
|
|
389
|
+
CB_LOG_DEBUG("{} connecting to {}:{} (\"{}:{}\"), timeout={}ms",
|
|
389
390
|
info_.log_prefix(),
|
|
390
391
|
it->endpoint().address().to_string(),
|
|
391
392
|
it->endpoint().port(),
|
|
393
|
+
hostname_,
|
|
394
|
+
service_,
|
|
392
395
|
http_ctx_.options.connect_timeout.count());
|
|
393
396
|
deadline_timer_.expires_after(http_ctx_.options.connect_timeout);
|
|
394
397
|
stream_->async_connect(it->endpoint(), std::bind(&http_session::on_connect, shared_from_this(), std::placeholders::_1, it));
|
|
395
398
|
} else {
|
|
396
|
-
CB_LOG_ERROR("{} no more endpoints left to connect", info_.log_prefix());
|
|
399
|
+
CB_LOG_ERROR("{} no more endpoints left to connect, \"{}:{}\" is not reachable", info_.log_prefix(), hostname_, service_);
|
|
397
400
|
stop();
|
|
398
401
|
}
|
|
399
402
|
}
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
|
|
30
30
|
#include <gsl/narrow>
|
|
31
31
|
|
|
32
|
+
#include <chrono>
|
|
33
|
+
#include <optional>
|
|
32
34
|
#include <random>
|
|
33
35
|
|
|
34
36
|
namespace couchbase::core::io
|
|
@@ -104,6 +106,7 @@ class http_session_manager
|
|
|
104
106
|
|
|
105
107
|
template<typename Collector>
|
|
106
108
|
void ping(std::set<service_type> services,
|
|
109
|
+
std::optional<std::chrono::milliseconds> timeout,
|
|
107
110
|
std::shared_ptr<Collector> collector,
|
|
108
111
|
const couchbase::core::cluster_credentials& credentials)
|
|
109
112
|
{
|
|
@@ -153,6 +156,7 @@ class http_session_manager
|
|
|
153
156
|
}
|
|
154
157
|
operations::http_noop_request request{};
|
|
155
158
|
request.type = type;
|
|
159
|
+
request.timeout = timeout;
|
|
156
160
|
auto cmd = std::make_shared<operations::http_command<operations::http_noop_request>>(
|
|
157
161
|
ctx_, request, tracer_, meter_, options_.default_timeout_for(request.type));
|
|
158
162
|
cmd->start([start = std::chrono::steady_clock::now(),
|
|
@@ -163,7 +167,11 @@ class http_session_manager
|
|
|
163
167
|
diag::ping_state state = diag::ping_state::ok;
|
|
164
168
|
std::optional<std::string> error{};
|
|
165
169
|
if (ec) {
|
|
166
|
-
|
|
170
|
+
if (ec == errc::common::unambiguous_timeout || ec == errc::common::ambiguous_timeout) {
|
|
171
|
+
state = diag::ping_state::timeout;
|
|
172
|
+
} else {
|
|
173
|
+
state = diag::ping_state::error;
|
|
174
|
+
}
|
|
167
175
|
error.emplace(fmt::format("code={}, message={}, http_code={}", ec.value(), ec.message(), msg.status_code));
|
|
168
176
|
}
|
|
169
177
|
handler->report(diag::endpoint_ping_info{
|
|
@@ -269,7 +269,7 @@ struct mcbp_command : public std::enable_shared_from_this<mcbp_command<Manager,
|
|
|
269
269
|
: errc::common::ambiguous_timeout));
|
|
270
270
|
}
|
|
271
271
|
if (ec == errc::common::request_canceled) {
|
|
272
|
-
if (
|
|
272
|
+
if (!self->request.retries.idempotent() && !allows_non_idempotent_retry(reason)) {
|
|
273
273
|
if (self->span_->uses_tags())
|
|
274
274
|
self->span_->add_tag(tracing::attributes::orphan, "canceled");
|
|
275
275
|
return self->invoke_handler(ec);
|
|
@@ -46,9 +46,10 @@ struct binary_header {
|
|
|
46
46
|
};
|
|
47
47
|
|
|
48
48
|
struct mcbp_message {
|
|
49
|
-
binary_header header;
|
|
50
|
-
std::vector<std::byte> body;
|
|
49
|
+
binary_header header{};
|
|
50
|
+
std::vector<std::byte> body{};
|
|
51
51
|
|
|
52
|
+
mcbp_message() = default;
|
|
52
53
|
mcbp_message(const mcbp_message& other) = delete;
|
|
53
54
|
mcbp_message& operator=(const mcbp_message& other) = delete;
|
|
54
55
|
mcbp_message(mcbp_message&& other) = default;
|