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,292 @@
|
|
|
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 <couchbase/allow_querying_search_index_options.hxx>
|
|
21
|
+
#include <couchbase/analyze_document_options.hxx>
|
|
22
|
+
#include <couchbase/disallow_querying_search_index_options.hxx>
|
|
23
|
+
#include <couchbase/drop_search_index_options.hxx>
|
|
24
|
+
#include <couchbase/freeze_plan_search_index_options.hxx>
|
|
25
|
+
#include <couchbase/get_all_search_indexes_options.hxx>
|
|
26
|
+
#include <couchbase/get_indexed_search_index_options.hxx>
|
|
27
|
+
#include <couchbase/get_search_index_options.hxx>
|
|
28
|
+
#include <couchbase/pause_ingest_search_index_options.hxx>
|
|
29
|
+
#include <couchbase/resume_ingest_search_index_options.hxx>
|
|
30
|
+
#include <couchbase/unfreeze_plan_search_index_options.hxx>
|
|
31
|
+
#include <couchbase/upsert_search_index_options.hxx>
|
|
32
|
+
|
|
33
|
+
#include <future>
|
|
34
|
+
#include <memory>
|
|
35
|
+
|
|
36
|
+
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
|
|
37
|
+
namespace couchbase
|
|
38
|
+
{
|
|
39
|
+
namespace core
|
|
40
|
+
{
|
|
41
|
+
class cluster;
|
|
42
|
+
} // namespace core
|
|
43
|
+
class search_index_manager_impl;
|
|
44
|
+
} // namespace couchbase
|
|
45
|
+
#endif
|
|
46
|
+
|
|
47
|
+
namespace couchbase
|
|
48
|
+
{
|
|
49
|
+
class cluster;
|
|
50
|
+
|
|
51
|
+
class search_index_manager
|
|
52
|
+
{
|
|
53
|
+
public:
|
|
54
|
+
/**
|
|
55
|
+
* Fetches an index from the server if it exists
|
|
56
|
+
*
|
|
57
|
+
* @param index_name the name of the index
|
|
58
|
+
* @param options optional parameters
|
|
59
|
+
* @param handler handler that implements @ref get_search_index_handler
|
|
60
|
+
*
|
|
61
|
+
* @since 1.0.0
|
|
62
|
+
* @committed
|
|
63
|
+
*/
|
|
64
|
+
void get_index(std::string index_name, const get_search_index_options& options, get_search_index_handler&& handler) const;
|
|
65
|
+
|
|
66
|
+
[[nodiscard]] auto get_index(std::string index_name, const get_search_index_options& options = {}) const
|
|
67
|
+
-> std::future<std::pair<manager_error_context, management::search::index>>;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Fetches all indexes from the server
|
|
71
|
+
*
|
|
72
|
+
* @param options optional parameters
|
|
73
|
+
* @param handler handler that implements @ref get_all_search_indexes_handler
|
|
74
|
+
*
|
|
75
|
+
* @since 1.0.0
|
|
76
|
+
* @committed
|
|
77
|
+
*/
|
|
78
|
+
void get_all_indexes(const get_all_search_indexes_options& options, get_all_search_indexes_handler&& handler) const;
|
|
79
|
+
|
|
80
|
+
[[nodiscard]] auto get_all_indexes(const get_all_search_indexes_options& options = {}) const
|
|
81
|
+
-> std::future<std::pair<manager_error_context, std::vector<management::search::index>>>;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Creates, or updates an index
|
|
85
|
+
*
|
|
86
|
+
* @param search_index the index definition including name and settings
|
|
87
|
+
* @param options optional parameters
|
|
88
|
+
* @param handler handler that implements @ref upsert_search_index_handler
|
|
89
|
+
*
|
|
90
|
+
* @since 1.0.0
|
|
91
|
+
* @committed
|
|
92
|
+
*/
|
|
93
|
+
void upsert_index(const management::search::index& search_index,
|
|
94
|
+
const upsert_search_index_options& options,
|
|
95
|
+
upsert_search_index_handler&& handler) const;
|
|
96
|
+
|
|
97
|
+
[[nodiscard]] auto upsert_index(const management::search::index& search_index, const upsert_search_index_options& options = {}) const
|
|
98
|
+
-> std::future<manager_error_context>;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Drops an index
|
|
102
|
+
*
|
|
103
|
+
* @param index_name the name of the search index
|
|
104
|
+
* @param options optional parameters
|
|
105
|
+
* @param handler handler that implements @ref drop_search_index_handler
|
|
106
|
+
*
|
|
107
|
+
* @since 1.0.0
|
|
108
|
+
* @committed
|
|
109
|
+
*/
|
|
110
|
+
void drop_index(std::string index_name, const drop_search_index_options& options, drop_search_index_handler&& handler) const;
|
|
111
|
+
|
|
112
|
+
[[nodiscard]] auto drop_index(std::string index_name, const drop_search_index_options& options = {}) const
|
|
113
|
+
-> std::future<manager_error_context>;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Retrieves the number of documents that have been indexed for an index
|
|
117
|
+
*
|
|
118
|
+
* @param index_name the name of the search index
|
|
119
|
+
* @param options optional parameters
|
|
120
|
+
* @param handler handler that implements @ref get_indexed_search_index_handler
|
|
121
|
+
*
|
|
122
|
+
* @since 1.0.0
|
|
123
|
+
* @committed
|
|
124
|
+
*/
|
|
125
|
+
void get_indexed_documents_count(std::string index_name,
|
|
126
|
+
const get_indexed_search_index_options& options,
|
|
127
|
+
get_indexed_search_index_handler&& handler) const;
|
|
128
|
+
|
|
129
|
+
[[nodiscard]] auto get_indexed_documents_count(std::string index_name, const get_indexed_search_index_options& options = {}) const
|
|
130
|
+
-> std::future<std::pair<manager_error_context, std::uint64_t>>;
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Pauses updates and maintenance for an index.
|
|
134
|
+
*
|
|
135
|
+
* @param index_name the name of the search index
|
|
136
|
+
* @param options optional parameters
|
|
137
|
+
* @param handler handler that implements @ref pause_ingest_search_index_handler
|
|
138
|
+
*
|
|
139
|
+
* @since 1.0.0
|
|
140
|
+
* @committed
|
|
141
|
+
*/
|
|
142
|
+
void pause_ingest(std::string index_name,
|
|
143
|
+
const pause_ingest_search_index_options& options,
|
|
144
|
+
pause_ingest_search_index_handler&& handler) const;
|
|
145
|
+
|
|
146
|
+
[[nodiscard]] auto pause_ingest(std::string index_name, const pause_ingest_search_index_options& options = {}) const
|
|
147
|
+
-> std::future<manager_error_context>;
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Resumes updates and maintenance for an index.
|
|
151
|
+
*
|
|
152
|
+
* @param index_name the name of the search index
|
|
153
|
+
* @param options optional parameters
|
|
154
|
+
* @param handler handler that implements @ref resume_ingest_search_index_handler
|
|
155
|
+
*
|
|
156
|
+
* @since 1.0.0
|
|
157
|
+
* @committed
|
|
158
|
+
*/
|
|
159
|
+
void resume_ingest(std::string index_name,
|
|
160
|
+
const resume_ingest_search_index_options& options,
|
|
161
|
+
resume_ingest_search_index_handler&& handler) const;
|
|
162
|
+
|
|
163
|
+
[[nodiscard]] auto resume_ingest(std::string index_name, const resume_ingest_search_index_options& options = {}) const
|
|
164
|
+
-> std::future<manager_error_context>;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Allows querying against an index
|
|
168
|
+
*
|
|
169
|
+
* @param index_name the name of the search index
|
|
170
|
+
* @param options optional parameters
|
|
171
|
+
* @param handler handler that implements @ref allow_querying_search_index_handler
|
|
172
|
+
*
|
|
173
|
+
* @since 1.0.0
|
|
174
|
+
* @committed
|
|
175
|
+
*/
|
|
176
|
+
void allow_querying(std::string index_name,
|
|
177
|
+
const allow_querying_search_index_options& options,
|
|
178
|
+
allow_querying_search_index_handler&& handler) const;
|
|
179
|
+
|
|
180
|
+
[[nodiscard]] auto allow_querying(std::string index_name, const allow_querying_search_index_options& options = {}) const
|
|
181
|
+
-> std::future<manager_error_context>;
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Disallows querying against an index
|
|
185
|
+
*
|
|
186
|
+
* @param index_name the name of the search index
|
|
187
|
+
* @param options optional parameters
|
|
188
|
+
* @param handler handler that implements @ref disallow_querying_search_index_handler
|
|
189
|
+
*
|
|
190
|
+
* @since 1.0.0
|
|
191
|
+
* @committed
|
|
192
|
+
*/
|
|
193
|
+
void disallow_querying(std::string index_name,
|
|
194
|
+
const disallow_querying_search_index_options& options,
|
|
195
|
+
disallow_querying_search_index_handler&& handler) const;
|
|
196
|
+
|
|
197
|
+
[[nodiscard]] auto disallow_querying(std::string index_name, const disallow_querying_search_index_options& options = {}) const
|
|
198
|
+
-> std::future<manager_error_context>;
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Freeze the assignment of index partitions to nodes.
|
|
202
|
+
*
|
|
203
|
+
* @param index_name the name of the search index
|
|
204
|
+
* @param options optional parameters
|
|
205
|
+
* @param handler handler that implements @ref freeze_plan_search_index_handler
|
|
206
|
+
*
|
|
207
|
+
* @since 1.0.0
|
|
208
|
+
* @committed
|
|
209
|
+
*/
|
|
210
|
+
void freeze_plan(std::string index_name,
|
|
211
|
+
const freeze_plan_search_index_options& options,
|
|
212
|
+
freeze_plan_search_index_handler&& handler) const;
|
|
213
|
+
|
|
214
|
+
[[nodiscard]] auto freeze_plan(std::string index_name, const freeze_plan_search_index_options& options = {}) const
|
|
215
|
+
-> std::future<manager_error_context>;
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Unfreeze the assignment of index partitions to nodes.
|
|
219
|
+
*
|
|
220
|
+
* @param index_name the name of the search index
|
|
221
|
+
* @param options optional parameters
|
|
222
|
+
* @param handler handler that implements @ref unfreeze_plan_search_index_handler
|
|
223
|
+
*
|
|
224
|
+
* @since 1.0.0
|
|
225
|
+
* @committed
|
|
226
|
+
*/
|
|
227
|
+
void unfreeze_plan(std::string index_name,
|
|
228
|
+
const unfreeze_plan_search_index_options& options,
|
|
229
|
+
unfreeze_plan_search_index_handler&& handler) const;
|
|
230
|
+
|
|
231
|
+
[[nodiscard]] auto unfreeze_plan(std::string index_name, const unfreeze_plan_search_index_options& options = {}) const
|
|
232
|
+
-> std::future<manager_error_context>;
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Allows to see how a document is analyzed against a specific index.
|
|
236
|
+
*
|
|
237
|
+
* @param index_name the name of the search index
|
|
238
|
+
* @param document the document to be analyzed
|
|
239
|
+
* @param options optional parameters
|
|
240
|
+
* @param handler handler that implements @ref analyze_document_handler
|
|
241
|
+
*
|
|
242
|
+
* @since 1.0.0
|
|
243
|
+
* @committed
|
|
244
|
+
*/
|
|
245
|
+
template<typename Document>
|
|
246
|
+
void analyze_document(std::string index_name,
|
|
247
|
+
Document document,
|
|
248
|
+
const analyze_document_options& options,
|
|
249
|
+
analyze_document_handler&& handler) const
|
|
250
|
+
{
|
|
251
|
+
auto encoded = couchbase::codec::default_json_transcoder::encode(document); // Encode as JSON and convert to string
|
|
252
|
+
auto decoded = std::string{ reinterpret_cast<const char*>(encoded.data.data()), encoded.data.size() };
|
|
253
|
+
return analyze_document(std::move(index_name), decoded, options, std::move(handler));
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
template<typename Document>
|
|
257
|
+
[[nodiscard]] auto analyze_document(std::string index_name, Document document, const analyze_document_options& options = {}) const
|
|
258
|
+
-> std::future<std::pair<manager_error_context, std::vector<std::string>>>
|
|
259
|
+
{
|
|
260
|
+
auto encoded = couchbase::codec::default_json_transcoder::encode(document); // Encode as JSON and convert to string
|
|
261
|
+
auto decoded = std::string{ reinterpret_cast<const char*>(encoded.data.data()), encoded.data.size() };
|
|
262
|
+
|
|
263
|
+
return analyze_document(std::move(index_name), decoded, options);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Allows to see how a document is analyzed against a specific index.
|
|
268
|
+
*
|
|
269
|
+
* @param index_name the name of the search index
|
|
270
|
+
* @param document the document to be analyzed encoded in JSON
|
|
271
|
+
* @param options optional parameters
|
|
272
|
+
* @param handler handler that implements @ref analyze_document_handler
|
|
273
|
+
*
|
|
274
|
+
* @since 1.0.0
|
|
275
|
+
* @committed
|
|
276
|
+
*/
|
|
277
|
+
void analyze_document(std::string index_name,
|
|
278
|
+
std::string document,
|
|
279
|
+
const analyze_document_options& options,
|
|
280
|
+
analyze_document_handler&& handler) const;
|
|
281
|
+
|
|
282
|
+
[[nodiscard]] auto analyze_document(std::string index_name, std::string document, const analyze_document_options& options) const
|
|
283
|
+
-> std::future<std::pair<manager_error_context, std::vector<std::string>>>;
|
|
284
|
+
|
|
285
|
+
private:
|
|
286
|
+
friend class cluster;
|
|
287
|
+
|
|
288
|
+
explicit search_index_manager(core::cluster core);
|
|
289
|
+
|
|
290
|
+
std::shared_ptr<search_index_manager_impl> impl_;
|
|
291
|
+
};
|
|
292
|
+
} // namespace couchbase
|
|
@@ -0,0 +1,120 @@
|
|
|
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
|
+
#pragma once
|
|
19
|
+
|
|
20
|
+
#include <couchbase/search_query.hxx>
|
|
21
|
+
#include <couchbase/vector_search.hxx>
|
|
22
|
+
|
|
23
|
+
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
|
|
24
|
+
namespace couchbase
|
|
25
|
+
{
|
|
26
|
+
namespace core
|
|
27
|
+
{
|
|
28
|
+
class cluster;
|
|
29
|
+
} // namespace core
|
|
30
|
+
class search_request_impl;
|
|
31
|
+
} // namespace couchbase
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
namespace couchbase
|
|
35
|
+
{
|
|
36
|
+
/**
|
|
37
|
+
* A search_request is used to perform operations against the Full Text Search (FTS) Couchbase service.
|
|
38
|
+
*
|
|
39
|
+
* It can be used to send an FTS @ref search_query, and/or a @ref vector_search
|
|
40
|
+
*
|
|
41
|
+
* @since 1.0.0
|
|
42
|
+
* @volatile
|
|
43
|
+
*/
|
|
44
|
+
class search_request
|
|
45
|
+
{
|
|
46
|
+
public:
|
|
47
|
+
/**
|
|
48
|
+
* Create a new search_request with a @ref search_query
|
|
49
|
+
*
|
|
50
|
+
* @param search_query the query to run
|
|
51
|
+
*
|
|
52
|
+
* @since 1.0.0
|
|
53
|
+
* @volatile
|
|
54
|
+
*/
|
|
55
|
+
explicit search_request(const couchbase::search_query& search_query);
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Create a new search_request with a @ref vector_search
|
|
59
|
+
*
|
|
60
|
+
* @param vector_search the vector_search to run
|
|
61
|
+
*
|
|
62
|
+
* @since 1.0.0
|
|
63
|
+
* @volatile
|
|
64
|
+
*/
|
|
65
|
+
explicit search_request(const couchbase::vector_search& vector_search);
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Used to run a @ref search_query together with an existing @ref vector_search.
|
|
69
|
+
* Note that a maximum of one SearchQuery and one VectorSearch can be provided.
|
|
70
|
+
*
|
|
71
|
+
* @param search_query the search_query to run with an existing vector_search.
|
|
72
|
+
*
|
|
73
|
+
* @return this search_request for chaining purposes.
|
|
74
|
+
*
|
|
75
|
+
* @since 1.0.0
|
|
76
|
+
* @volatile
|
|
77
|
+
*/
|
|
78
|
+
auto search_query(const couchbase::search_query& search_query) -> search_request&;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Used to run a @ref vector_query together with an existing @ref search_query.
|
|
82
|
+
* Note that a maximum of one SearchQuery and one VectorSearch can be provided.
|
|
83
|
+
*
|
|
84
|
+
* @param vector_search the vector_search to be run with an existing search_query.
|
|
85
|
+
*
|
|
86
|
+
* @return this search_request for chaining purposes.
|
|
87
|
+
*
|
|
88
|
+
* @since 1.0.0
|
|
89
|
+
* @volatile
|
|
90
|
+
*/
|
|
91
|
+
auto vector_search(const couchbase::vector_search& vector_search) -> search_request&;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @return encoded representation of the query.
|
|
95
|
+
*
|
|
96
|
+
* @since 1.0.0
|
|
97
|
+
* @internal
|
|
98
|
+
*/
|
|
99
|
+
[[nodiscard]] std::optional<encoded_search_query> search_query() const;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* @return encoded representation of the vector search query.
|
|
103
|
+
*
|
|
104
|
+
* @since 1.0.0
|
|
105
|
+
* @internal
|
|
106
|
+
*/
|
|
107
|
+
[[nodiscard]] std::optional<encoded_search_query> vector_search() const;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* @return vector_search_options, if set
|
|
111
|
+
*
|
|
112
|
+
* @since 1.0.0
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
[[nodiscard]] std::optional<vector_search_options::built> vector_options();
|
|
116
|
+
|
|
117
|
+
private:
|
|
118
|
+
std::shared_ptr<search_request_impl> impl_;
|
|
119
|
+
};
|
|
120
|
+
} // namespace couchbase
|
|
@@ -41,6 +41,16 @@ class search_row_location
|
|
|
41
41
|
*/
|
|
42
42
|
explicit search_row_location(internal_search_row_location location);
|
|
43
43
|
|
|
44
|
+
search_row_location();
|
|
45
|
+
|
|
46
|
+
~search_row_location();
|
|
47
|
+
|
|
48
|
+
search_row_location(const search_row_location&) = delete;
|
|
49
|
+
search_row_location& operator=(const search_row_location&) = delete;
|
|
50
|
+
|
|
51
|
+
search_row_location(search_row_location&&) noexcept;
|
|
52
|
+
search_row_location& operator=(search_row_location&&) noexcept;
|
|
53
|
+
|
|
44
54
|
[[nodiscard]] auto field() const -> const std::string&;
|
|
45
55
|
[[nodiscard]] auto term() const -> const std::string&;
|
|
46
56
|
[[nodiscard]] auto position() const -> const std::uint64_t&;
|
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
#pragma once
|
|
19
|
+
|
|
20
|
+
#include <couchbase/geo_point.hxx>
|
|
21
|
+
#include <couchbase/search_geo_distance_units.hxx>
|
|
22
|
+
#include <couchbase/search_sort.hxx>
|
|
23
|
+
|
|
24
|
+
#include <string>
|
|
25
|
+
|
|
26
|
+
namespace couchbase
|
|
27
|
+
{
|
|
28
|
+
/**
|
|
29
|
+
* Sorts by location in the hits
|
|
30
|
+
*
|
|
31
|
+
* @see https://docs.couchbase.com/server/current/fts/fts-search-request.html#sorting-with-objects
|
|
32
|
+
*
|
|
33
|
+
* @since 1.0.0
|
|
34
|
+
*/
|
|
35
|
+
class search_sort_geo_distance : public search_sort
|
|
36
|
+
{
|
|
37
|
+
public:
|
|
38
|
+
search_sort_geo_distance(geo_point location, std::string field)
|
|
39
|
+
: location_{ location }
|
|
40
|
+
, field_{ std::move(field) }
|
|
41
|
+
{
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
search_sort_geo_distance(double latitude, double longitude, std::string field)
|
|
45
|
+
: location_{ geo_point{ latitude, longitude } }
|
|
46
|
+
, field_{ std::move(field) }
|
|
47
|
+
{
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Set the sorting direction.
|
|
52
|
+
*
|
|
53
|
+
* @param desc `true` for descending order, `false` for ascending
|
|
54
|
+
* @return pointer to this
|
|
55
|
+
*
|
|
56
|
+
* @since 1.0.0
|
|
57
|
+
* @committed
|
|
58
|
+
*/
|
|
59
|
+
auto descending(bool desc) -> search_sort_geo_distance&;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Specifies the unit used for sorting
|
|
63
|
+
*
|
|
64
|
+
* @param unit the unit used
|
|
65
|
+
*
|
|
66
|
+
* @since 1.0.0
|
|
67
|
+
* @committed
|
|
68
|
+
*/
|
|
69
|
+
auto unit(search_geo_distance_units unit) -> search_sort_geo_distance&;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @return encoded representation of the search facet.
|
|
73
|
+
*
|
|
74
|
+
* @since 1.0.0
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
77
|
+
[[nodiscard]] auto encode() const -> encoded_search_sort override;
|
|
78
|
+
|
|
79
|
+
private:
|
|
80
|
+
geo_point location_;
|
|
81
|
+
std::string field_;
|
|
82
|
+
std::optional<search_geo_distance_units> unit_;
|
|
83
|
+
};
|
|
84
|
+
} // namespace couchbase
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
#pragma once
|
|
19
|
+
|
|
20
|
+
namespace couchbase
|
|
21
|
+
{
|
|
22
|
+
enum class service_type {
|
|
23
|
+
/**
|
|
24
|
+
* The Key-Value service (KV)
|
|
25
|
+
*/
|
|
26
|
+
key_value,
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The Query service (SQL++)
|
|
30
|
+
*/
|
|
31
|
+
query,
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The Analytics service
|
|
35
|
+
*/
|
|
36
|
+
analytics,
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The Search service (FTS)
|
|
40
|
+
*/
|
|
41
|
+
search,
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* The View service
|
|
45
|
+
*/
|
|
46
|
+
view,
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The Cluster Manager service (ns_server)
|
|
50
|
+
*/
|
|
51
|
+
management,
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* The Eventing service
|
|
55
|
+
*/
|
|
56
|
+
eventing,
|
|
57
|
+
};
|
|
58
|
+
} // namespace couchbase
|
|
@@ -67,28 +67,4 @@ struct touch_options : public common_options<touch_options> {
|
|
|
67
67
|
* @uncommitted
|
|
68
68
|
*/
|
|
69
69
|
using touch_handler = std::function<void(couchbase::key_value_error_context, result)>;
|
|
70
|
-
|
|
71
|
-
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
|
|
72
|
-
namespace core
|
|
73
|
-
{
|
|
74
|
-
class cluster;
|
|
75
|
-
namespace impl
|
|
76
|
-
{
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* @since 1.0.0
|
|
80
|
-
* @internal
|
|
81
|
-
*/
|
|
82
|
-
void
|
|
83
|
-
initiate_touch_operation(std::shared_ptr<couchbase::core::cluster> core,
|
|
84
|
-
std::string bucket_name,
|
|
85
|
-
std::string scope_name,
|
|
86
|
-
std::string collection_name,
|
|
87
|
-
std::string document_key,
|
|
88
|
-
std::uint32_t expiry,
|
|
89
|
-
couchbase::touch_options::built options,
|
|
90
|
-
couchbase::touch_handler&& handler);
|
|
91
|
-
#endif
|
|
92
|
-
} // namespace impl
|
|
93
|
-
} // namespace core
|
|
94
70
|
} // namespace couchbase
|
|
@@ -15,12 +15,16 @@
|
|
|
15
15
|
*/
|
|
16
16
|
#pragma once
|
|
17
17
|
|
|
18
|
-
#include <couchbase/scope.hxx>
|
|
19
18
|
#include <couchbase/transactions/transaction_get_result.hxx>
|
|
20
19
|
#include <couchbase/transactions/transaction_query_options.hxx>
|
|
21
20
|
#include <couchbase/transactions/transaction_query_result.hxx>
|
|
22
21
|
|
|
23
|
-
namespace couchbase
|
|
22
|
+
namespace couchbase
|
|
23
|
+
{
|
|
24
|
+
class collection;
|
|
25
|
+
class scope;
|
|
26
|
+
|
|
27
|
+
namespace transactions
|
|
24
28
|
{
|
|
25
29
|
using async_result_handler = std::function<void(transaction_op_error_context, transaction_get_result)>;
|
|
26
30
|
using async_query_handler = std::function<void(transaction_op_error_context, transaction_query_result)>;
|
|
@@ -111,10 +115,8 @@ class async_attempt_context
|
|
|
111
115
|
* @param opts Options for the query
|
|
112
116
|
* @param handler Handler which implements @ref async_query_handler.
|
|
113
117
|
*/
|
|
114
|
-
void query(const scope& scope, std::string statement, transaction_query_options opts, async_query_handler&& handler)
|
|
115
|
-
|
|
116
|
-
return query(std::move(statement), std::move(opts), fmt::format("{}.{}", scope.bucket_name(), scope.name()), std::move(handler));
|
|
117
|
-
}
|
|
118
|
+
void query(const scope& scope, std::string statement, transaction_query_options opts, async_query_handler&& handler);
|
|
119
|
+
|
|
118
120
|
/**
|
|
119
121
|
* Perform a query.
|
|
120
122
|
*
|
|
@@ -154,4 +156,5 @@ class async_attempt_context
|
|
|
154
156
|
std::optional<std::string> query_context,
|
|
155
157
|
async_query_handler&&) = 0;
|
|
156
158
|
};
|
|
157
|
-
} // namespace
|
|
159
|
+
} // namespace transactions
|
|
160
|
+
} // namespace couchbase
|