couchbase 3.8.2 → 3.9.0
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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/ext/CMakeLists.txt +16 -1
- data/ext/cache/cpm/{CPM_0.42.0.cmake → CPM_0.43.1.cmake} +18 -2
- data/ext/cache/extconf_include.rb +6 -6
- data/ext/cache/mozilla-ca-bundle.crt +121 -55
- data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
- data/ext/couchbase/CMakeLists.txt +130 -21
- data/ext/couchbase/cmake/APKBUILD.in +25 -4
- data/ext/couchbase/cmake/Bundler.cmake +143 -34
- data/ext/couchbase/cmake/CPM.cmake +126 -12
- data/ext/couchbase/cmake/Cache.cmake +7 -1
- data/ext/couchbase/cmake/CompilerOptions.cmake +1 -1
- data/ext/couchbase/cmake/CompilerWarnings.cmake +17 -6
- data/ext/couchbase/cmake/GrpcProtobuf.cmake +481 -0
- data/ext/couchbase/cmake/OpenSSL.cmake +10 -3
- data/ext/couchbase/cmake/Packaging.cmake +519 -65
- data/ext/couchbase/cmake/Protostellar.cmake +250 -0
- data/ext/couchbase/cmake/Sanitizers.cmake +61 -50
- data/ext/couchbase/cmake/StaticAnalyzers.cmake +16 -5
- data/ext/couchbase/cmake/TestFramework.cmake +283 -0
- data/ext/couchbase/cmake/TestFrameworkAddTests.cmake +51 -0
- data/ext/couchbase/cmake/Testing.cmake +27 -9
- data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +141 -8
- data/ext/couchbase/cmake/VersionInfo.cmake +50 -0
- data/ext/couchbase/cmake/build_config.hxx.in +2 -1
- data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +101 -23
- data/ext/couchbase/cmake/couchbase_cxx_client_static-config.cmake.in +7 -0
- data/ext/couchbase/cmake/couchbase_cxx_client_static.pc.in +2 -0
- data/ext/couchbase/cmake/gRPC_Generate.cmake +58 -0
- data/ext/couchbase/cmake/protobuf_Generate.cmake +69 -0
- data/ext/couchbase/cmake/require-git-checkout.cmake +25 -0
- data/ext/couchbase/cmake/tarball_glob.txt +49 -0
- data/ext/couchbase/core/agent_group.cxx +0 -8
- data/ext/couchbase/core/agent_group.hxx +0 -4
- data/ext/couchbase/core/analytics_stream.cxx +314 -0
- data/ext/couchbase/core/analytics_stream.hxx +129 -0
- data/ext/couchbase/core/analytics_stream_component.cxx +245 -0
- data/ext/couchbase/core/analytics_stream_component.hxx +67 -0
- data/ext/couchbase/core/app_telemetry_meter.cxx +25 -3
- data/ext/couchbase/core/app_telemetry_meter.hxx +77 -0
- data/ext/couchbase/core/app_telemetry_reporter.cxx +7 -6
- data/ext/couchbase/core/bucket.cxx +381 -87
- data/ext/couchbase/core/bucket.hxx +105 -25
- data/ext/couchbase/core/bucket_unit_test_api.hxx +57 -0
- data/ext/couchbase/core/capella.hxx +91 -0
- data/ext/couchbase/core/cluster.cxx +1554 -398
- data/ext/couchbase/core/cluster.hxx +39 -8
- data/ext/couchbase/core/cluster_agent.cxx +0 -8
- data/ext/couchbase/core/cluster_agent.hxx +0 -4
- data/ext/couchbase/core/cluster_options.hxx +26 -3
- data/ext/couchbase/core/collections_component.cxx +39 -15
- data/ext/couchbase/core/config_profiles.cxx +1 -1
- data/ext/couchbase/core/crud_component.cxx +2 -2
- data/ext/couchbase/core/crud_options.hxx +34 -0
- data/ext/couchbase/core/crypto/cbcrypto.cc +18 -13
- data/ext/couchbase/core/document_id_redaction.hxx +81 -0
- data/ext/couchbase/core/error_context/base_error_context.hxx +7 -6
- data/ext/couchbase/core/error_context/key_value.cxx +25 -2
- data/ext/couchbase/core/error_context/key_value.hxx +60 -33
- data/ext/couchbase/core/error_context/key_value_error_context.hxx +16 -15
- data/ext/couchbase/core/error_context/search.hxx +5 -0
- data/ext/couchbase/core/error_context/search_json.hxx +3 -0
- data/ext/couchbase/core/error_context/subdocument_error_context.hxx +19 -18
- data/ext/couchbase/core/error_context/view.hxx +5 -0
- data/ext/couchbase/core/free_form_http_request.cxx +237 -4
- data/ext/couchbase/core/free_form_http_request.hxx +41 -8
- data/ext/couchbase/core/http_component.cxx +300 -284
- data/ext/couchbase/core/http_component.hxx +0 -4
- data/ext/couchbase/core/impl/analytics.cxx +38 -5
- data/ext/couchbase/core/impl/analytics.hxx +34 -0
- data/ext/couchbase/core/impl/bootstrap_error.hxx +0 -3
- data/ext/couchbase/core/impl/collection.cxx +215 -202
- data/ext/couchbase/core/impl/collection_manager.cxx +1 -1
- data/ext/couchbase/core/impl/dns_srv_tracker.cxx +45 -18
- data/ext/couchbase/core/impl/error.cxx +22 -2
- data/ext/couchbase/core/impl/internal_analytics_stream_result.hxx +111 -0
- data/ext/couchbase/core/impl/internal_query_stream_result.hxx +110 -0
- data/ext/couchbase/core/impl/invoke_with_node_id.hxx +15 -7
- data/ext/couchbase/core/impl/key_value_error_category.cxx +6 -0
- data/ext/couchbase/core/impl/lookup_in_replica.cxx +10 -10
- data/ext/couchbase/core/impl/lookup_in_replica.hxx +4 -4
- data/ext/couchbase/core/impl/node_id.cxx +49 -13
- data/ext/couchbase/core/impl/observability_recorder.cxx +12 -2
- data/ext/couchbase/core/impl/observe_poll.cxx +63 -23
- data/ext/couchbase/core/impl/public_analytics_stream_result.cxx +372 -0
- data/ext/couchbase/core/impl/public_bucket.cxx +48 -2
- data/ext/couchbase/core/impl/public_cluster.cxx +229 -42
- data/ext/couchbase/core/impl/public_query_stream_result.cxx +380 -0
- data/ext/couchbase/core/impl/public_transaction_get_multi_replicas_from_preferred_server_group_result.cxx +42 -0
- data/ext/couchbase/core/impl/public_transaction_get_multi_result.cxx +42 -0
- data/ext/couchbase/core/impl/query.cxx +76 -7
- data/ext/couchbase/core/impl/query.hxx +36 -0
- data/ext/couchbase/core/impl/query_index_manager.cxx +54 -1
- data/ext/couchbase/core/impl/replica_utils.cxx +101 -0
- data/ext/couchbase/core/impl/replica_utils.hxx +64 -0
- data/ext/couchbase/core/impl/resolve_node_id.hxx +125 -0
- data/ext/couchbase/core/impl/scope.cxx +70 -0
- data/ext/couchbase/core/impl/search.cxx +31 -1
- data/ext/couchbase/core/impl/transactions.cxx +130 -0
- data/ext/couchbase/core/impl/wait_until_ready.cxx +439 -0
- data/ext/couchbase/core/impl/wait_until_ready.hxx +110 -0
- data/ext/couchbase/core/impl/with_bucket_config_or_timeout.hxx +180 -0
- data/ext/couchbase/core/impl/with_cancellation.hxx +11 -3
- data/ext/couchbase/core/io/configuration_belongs_to_session.hxx +1 -2
- data/ext/couchbase/core/io/dns_client.cxx +122 -45
- data/ext/couchbase/core/io/dns_codec.hxx +21 -21
- data/ext/couchbase/core/io/dns_config.cxx +21 -6
- data/ext/couchbase/core/io/http_command.hxx +149 -121
- data/ext/couchbase/core/io/http_error.hxx +107 -0
- data/ext/couchbase/core/io/http_parser.cxx +4 -0
- data/ext/couchbase/core/io/http_session.cxx +606 -154
- data/ext/couchbase/core/io/http_session.hxx +147 -30
- data/ext/couchbase/core/io/http_session_manager.hxx +329 -382
- data/ext/couchbase/core/io/http_streaming_parser.cxx +4 -0
- data/ext/couchbase/core/io/http_streaming_response.cxx +328 -43
- data/ext/couchbase/core/io/http_streaming_response.hxx +37 -3
- data/ext/couchbase/core/io/mcbp_buffer_pool.hxx +122 -0
- data/ext/couchbase/core/io/mcbp_command.hxx +150 -51
- data/ext/couchbase/core/io/mcbp_command_id.hxx +45 -0
- data/ext/couchbase/core/io/mcbp_message.cxx +9 -1
- data/ext/couchbase/core/io/mcbp_message.hxx +19 -0
- data/ext/couchbase/core/io/mcbp_output_queue.hxx +150 -0
- data/ext/couchbase/core/io/mcbp_parser.cxx +24 -7
- data/ext/couchbase/core/io/mcbp_session.cxx +309 -301
- data/ext/couchbase/core/io/mcbp_session.hxx +27 -18
- data/ext/couchbase/core/io/opaque_ring_table.hxx +145 -0
- data/ext/couchbase/core/io/retry_orchestrator.hxx +6 -5
- data/ext/couchbase/core/io/stream_deadline.hxx +50 -0
- data/ext/couchbase/core/io/streams.cxx +151 -21
- data/ext/couchbase/core/io/streams.hxx +48 -1
- data/ext/couchbase/core/logger/logger.cxx +36 -0
- data/ext/couchbase/core/logger/logger.hxx +46 -6
- data/ext/couchbase/core/logger/redaction.hxx +503 -0
- data/ext/couchbase/core/management/eventing_status.hxx +10 -0
- data/ext/couchbase/core/management/eventing_status_json.hxx +4 -0
- data/ext/couchbase/core/mcbp/big_endian.cxx +1 -1
- data/ext/couchbase/core/mcbp/codec.cxx +27 -18
- data/ext/couchbase/core/mcbp/operation_queue.cxx +2 -2
- data/ext/couchbase/core/mcbp/packet.hxx +2 -2
- data/ext/couchbase/core/mcbp/queue_request.cxx +23 -6
- data/ext/couchbase/core/mcbp/queue_request.hxx +21 -0
- data/ext/couchbase/core/meta/features.hxx +13 -0
- data/ext/couchbase/core/meta/version.cxx +6 -3
- data/ext/couchbase/core/metrics/logging_meter.cxx +5 -10
- data/ext/couchbase/core/metrics/meter_wrapper.cxx +63 -33
- data/ext/couchbase/core/metrics/meter_wrapper.hxx +55 -3
- data/ext/couchbase/core/operations/analytics_response_parsing.cxx +177 -0
- data/ext/couchbase/core/operations/analytics_response_parsing.hxx +55 -0
- data/ext/couchbase/core/operations/document_analytics.cxx +48 -130
- data/ext/couchbase/core/operations/document_analytics.hxx +14 -2
- data/ext/couchbase/core/operations/document_get_all_replicas.hxx +15 -7
- data/ext/couchbase/core/operations/document_get_any_replica.hxx +19 -8
- data/ext/couchbase/core/operations/document_get_projected.cxx +1 -1
- data/ext/couchbase/core/{impl/get_replica.cxx → operations/document_get_replica.cxx} +21 -3
- data/ext/couchbase/core/{impl/get_replica.hxx → operations/document_get_replica.hxx} +31 -4
- data/ext/couchbase/core/operations/document_lookup_in.cxx +10 -10
- data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +228 -198
- data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +215 -217
- data/ext/couchbase/core/operations/document_query.cxx +108 -221
- data/ext/couchbase/core/operations/document_query.hxx +18 -4
- data/ext/couchbase/core/operations/document_search.cxx +52 -8
- data/ext/couchbase/core/operations/document_search.hxx +3 -0
- data/ext/couchbase/core/operations/document_view.cxx +3 -3
- data/ext/couchbase/core/operations/management/analytics_dataset_create.cxx +15 -8
- data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +4 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_drop.cxx +11 -6
- data/ext/couchbase/core/operations/management/analytics_dataset_get_all.cxx +3 -2
- data/ext/couchbase/core/operations/management/analytics_dataverse_create.cxx +10 -5
- data/ext/couchbase/core/operations/management/analytics_dataverse_drop.cxx +10 -5
- data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.cxx +2 -1
- data/ext/couchbase/core/operations/management/analytics_index_create.cxx +33 -8
- data/ext/couchbase/core/operations/management/analytics_index_drop.cxx +12 -7
- data/ext/couchbase/core/operations/management/analytics_index_get_all.cxx +3 -2
- data/ext/couchbase/core/operations/management/analytics_link_connect.cxx +11 -6
- data/ext/couchbase/core/operations/management/analytics_link_create.cxx +3 -3
- data/ext/couchbase/core/operations/management/analytics_link_disconnect.cxx +10 -4
- data/ext/couchbase/core/operations/management/analytics_link_drop.cxx +6 -4
- data/ext/couchbase/core/operations/management/analytics_link_get_all.cxx +4 -3
- data/ext/couchbase/core/operations/management/analytics_link_replace.cxx +3 -3
- data/ext/couchbase/core/operations/management/analytics_link_utils.hxx +1 -1
- data/ext/couchbase/core/operations/management/change_password.cxx +2 -0
- data/ext/couchbase/core/operations/management/collection_drop.cxx +5 -1
- data/ext/couchbase/core/operations/management/error_utils.cxx +59 -5
- data/ext/couchbase/core/operations/management/error_utils.hxx +29 -1
- data/ext/couchbase/core/operations/management/eventing_deploy_function.cxx +9 -3
- data/ext/couchbase/core/operations/management/eventing_drop_function.cxx +8 -3
- data/ext/couchbase/core/operations/management/eventing_get_all_functions.cxx +4 -2
- data/ext/couchbase/core/operations/management/eventing_get_function.cxx +5 -3
- data/ext/couchbase/core/operations/management/eventing_get_status.cxx +4 -2
- data/ext/couchbase/core/operations/management/eventing_pause_function.cxx +9 -3
- data/ext/couchbase/core/operations/management/eventing_resume_function.cxx +9 -3
- data/ext/couchbase/core/operations/management/eventing_undeploy_function.cxx +9 -3
- data/ext/couchbase/core/operations/management/eventing_upsert_function.cxx +9 -3
- data/ext/couchbase/core/operations/management/group_drop.cxx +3 -1
- data/ext/couchbase/core/operations/management/group_get.cxx +3 -1
- data/ext/couchbase/core/operations/management/group_upsert.cxx +11 -8
- data/ext/couchbase/core/operations/management/query_index_build.cxx +5 -2
- data/ext/couchbase/core/operations/management/query_index_create.cxx +9 -3
- data/ext/couchbase/core/operations/management/query_index_drop.cxx +11 -4
- data/ext/couchbase/core/operations/management/query_index_get_all.cxx +1 -1
- data/ext/couchbase/core/operations/management/query_index_get_all_deferred.cxx +1 -1
- data/ext/couchbase/core/operations/management/scope_drop.cxx +5 -1
- data/ext/couchbase/core/operations/management/scope_get_all.cxx +6 -1
- data/ext/couchbase/core/operations/management/search_get_stats.cxx +10 -0
- data/ext/couchbase/core/operations/management/search_index_analyze_document.cxx +3 -2
- data/ext/couchbase/core/operations/management/search_index_control_ingest.cxx +4 -3
- data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.cxx +4 -3
- data/ext/couchbase/core/operations/management/search_index_control_query.cxx +4 -3
- data/ext/couchbase/core/operations/management/search_index_drop.cxx +2 -2
- data/ext/couchbase/core/operations/management/search_index_get.cxx +2 -2
- data/ext/couchbase/core/operations/management/search_index_get_documents_count.cxx +3 -2
- data/ext/couchbase/core/operations/management/search_index_get_stats.cxx +3 -1
- data/ext/couchbase/core/operations/management/search_index_upsert.cxx +2 -2
- data/ext/couchbase/core/operations/management/user_drop.cxx +3 -1
- data/ext/couchbase/core/operations/management/user_get.cxx +3 -1
- data/ext/couchbase/core/operations/management/user_upsert.cxx +12 -9
- data/ext/couchbase/core/operations/management/view_index_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/view_index_get.cxx +1 -1
- data/ext/couchbase/core/operations/management/view_index_upsert.cxx +1 -1
- data/ext/couchbase/core/operations/operation_traits.hxx +18 -0
- data/ext/couchbase/core/operations/query_response_parsing.cxx +211 -0
- data/ext/couchbase/core/operations/query_response_parsing.hxx +60 -0
- data/ext/couchbase/core/operations_fwd.hxx +3 -3
- data/ext/couchbase/core/origin.cxx +54 -26
- data/ext/couchbase/core/origin.hxx +12 -0
- data/ext/couchbase/core/orphan_reporter.cxx +2 -1
- data/ext/couchbase/core/platform/random.cc +7 -7
- data/ext/couchbase/core/protocol/client_request.cxx +2 -2
- data/ext/couchbase/core/protocol/client_request.hxx +38 -21
- data/ext/couchbase/core/protocol/client_response.cxx +11 -3
- data/ext/couchbase/core/protocol/client_response.hxx +27 -6
- data/ext/couchbase/core/protocol/cmd_append.cxx +2 -2
- data/ext/couchbase/core/protocol/cmd_cluster_map_change_notification.cxx +2 -2
- data/ext/couchbase/core/protocol/cmd_decrement.cxx +6 -6
- data/ext/couchbase/core/protocol/cmd_get.cxx +1 -1
- data/ext/couchbase/core/protocol/cmd_get_and_lock.cxx +2 -2
- data/ext/couchbase/core/protocol/cmd_get_and_touch.cxx +2 -2
- data/ext/couchbase/core/protocol/cmd_get_cluster_config.cxx +6 -4
- data/ext/couchbase/core/protocol/cmd_get_collection_id.cxx +2 -2
- data/ext/couchbase/core/protocol/cmd_get_error_map.cxx +1 -1
- data/ext/couchbase/core/protocol/cmd_get_meta.cxx +4 -4
- data/ext/couchbase/core/protocol/cmd_get_replica.cxx +1 -1
- data/ext/couchbase/core/protocol/cmd_hello.cxx +1 -1
- data/ext/couchbase/core/protocol/cmd_increment.cxx +6 -6
- data/ext/couchbase/core/protocol/cmd_insert.cxx +4 -4
- data/ext/couchbase/core/protocol/cmd_lookup_in.cxx +4 -3
- data/ext/couchbase/core/protocol/cmd_lookup_in_replica.cxx +4 -3
- data/ext/couchbase/core/protocol/cmd_mutate_in.cxx +10 -9
- data/ext/couchbase/core/protocol/cmd_mutate_in.hxx +10 -10
- data/ext/couchbase/core/protocol/cmd_observe_seqno.cxx +7 -7
- data/ext/couchbase/core/protocol/cmd_prepend.cxx +2 -2
- data/ext/couchbase/core/protocol/cmd_remove.cxx +2 -2
- data/ext/couchbase/core/protocol/cmd_replace.cxx +4 -4
- data/ext/couchbase/core/protocol/cmd_touch.cxx +1 -1
- data/ext/couchbase/core/protocol/cmd_upsert.cxx +4 -4
- data/ext/couchbase/core/protocol/datatype.hxx +118 -1
- data/ext/couchbase/core/protocol/frame_info_utils.cxx +1 -1
- data/ext/couchbase/core/protocol/magic.hxx +4 -0
- data/ext/couchbase/core/protocol/magic_fmt.hxx +3 -0
- data/ext/couchbase/core/protocol/server_request.hxx +3 -1
- data/ext/couchbase/core/protocol/status.cxx +1 -1
- data/ext/couchbase/core/protostellar/analytics_converter.hxx +171 -0
- data/ext/couchbase/core/protostellar/bucket_admin_converter.hxx +301 -0
- data/ext/couchbase/core/protostellar/collection_admin_converter.hxx +92 -0
- data/ext/couchbase/core/protostellar/component.cxx +2445 -0
- data/ext/couchbase/core/protostellar/component.hxx +391 -0
- data/ext/couchbase/core/{columnar/bootstrap_notification_subscriber.hxx → protostellar/compression_settings.hxx} +11 -10
- data/ext/couchbase/core/protostellar/credentials.cxx +233 -0
- data/ext/couchbase/core/protostellar/credentials.hxx +88 -0
- data/ext/couchbase/core/protostellar/dispatcher.cxx +57 -0
- data/ext/couchbase/core/protostellar/dispatcher.hxx +482 -0
- data/ext/couchbase/core/protostellar/error_utils.cxx +293 -0
- data/ext/couchbase/core/protostellar/error_utils.hxx +97 -0
- data/ext/couchbase/core/protostellar/json_payload.hxx +49 -0
- data/ext/couchbase/core/protostellar/kv_converter.cxx +70 -0
- data/ext/couchbase/core/protostellar/kv_converter.hxx +600 -0
- data/ext/couchbase/core/protostellar/query_converter.hxx +265 -0
- data/ext/couchbase/core/protostellar/query_index_admin_converter.hxx +291 -0
- data/ext/couchbase/core/protostellar/query_proto.hxx +73 -0
- data/ext/couchbase/core/protostellar/search_converter.hxx +244 -0
- data/ext/couchbase/core/protostellar/search_index_admin_converter.hxx +156 -0
- data/ext/couchbase/core/protostellar/view_converter.hxx +158 -0
- data/ext/couchbase/core/query_stream.cxx +447 -0
- data/ext/couchbase/core/query_stream.hxx +141 -0
- data/ext/couchbase/core/query_stream_component.cxx +243 -0
- data/ext/couchbase/core/query_stream_component.hxx +68 -0
- data/ext/couchbase/core/range_scan_load_balancer.cxx +15 -8
- data/ext/couchbase/core/range_scan_orchestrator.cxx +15 -3
- data/ext/couchbase/core/response_handler.hxx +41 -4
- data/ext/couchbase/core/row_streamer.cxx +332 -46
- data/ext/couchbase/core/row_streamer.hxx +31 -1
- data/ext/couchbase/core/row_streamer_options.hxx +55 -0
- data/ext/couchbase/core/sasl/client.h +3 -0
- data/ext/couchbase/core/search_scoring.hxx +66 -0
- data/ext/couchbase/core/stream_error_details.hxx +69 -0
- data/ext/couchbase/core/timeout_defaults.hxx +0 -1
- data/ext/couchbase/core/topology/capabilities.hxx +6 -0
- data/ext/couchbase/core/topology/capabilities_fmt.hxx +3 -0
- data/ext/couchbase/core/topology/configuration.cxx +21 -6
- data/ext/couchbase/core/topology/configuration.hxx +29 -8
- data/ext/couchbase/core/topology/configuration_json.hxx +3 -0
- data/ext/couchbase/core/topology/error_map_json.hxx +3 -1
- data/ext/couchbase/core/tracing/threshold_logging_tracer.cxx +70 -4
- data/ext/couchbase/core/tracing/threshold_logging_tracer.hxx +10 -0
- data/ext/couchbase/core/transactions/active_transaction_record.cxx +0 -34
- data/ext/couchbase/core/transactions/attempt_context_impl.cxx +108 -63
- data/ext/couchbase/core/transactions/attempt_context_impl.hxx +19 -2
- data/ext/couchbase/core/transactions/error_list.hxx +2 -2
- data/ext/couchbase/core/transactions/get_multi_fetch.hxx +160 -0
- data/ext/couchbase/core/transactions/get_multi_orchestrator.cxx +326 -125
- data/ext/couchbase/core/transactions/get_multi_transaction_id.hxx +62 -0
- data/ext/couchbase/core/transactions/internal/atr_entry.hxx +22 -2
- data/ext/couchbase/core/transactions/internal/transaction_context.hxx +2 -2
- data/ext/couchbase/core/transactions/internal/transactions_cleanup.hxx +23 -1
- data/ext/couchbase/core/transactions/internal/utils.hxx +50 -14
- data/ext/couchbase/core/transactions/staged_mutation.cxx +23 -18
- data/ext/couchbase/core/transactions/staged_mutation.hxx +15 -4
- data/ext/couchbase/core/transactions/transaction_context.cxx +55 -40
- data/ext/couchbase/core/transactions/transaction_get_result.hxx +16 -0
- data/ext/couchbase/core/transactions/transactions.cxx +3 -55
- data/ext/couchbase/core/transactions/transactions_cleanup.cxx +165 -72
- data/ext/couchbase/core/transactions/transactions_config.cxx +0 -11
- data/ext/couchbase/core/transactions/utils.cxx +10 -0
- data/ext/couchbase/core/transactions/waitable_op_list.hxx +2 -2
- data/ext/couchbase/core/transactions.hxx +9 -9
- data/ext/couchbase/core/utils/byteswap.hxx +166 -9
- data/ext/couchbase/core/utils/connection_string.cxx +50 -85
- data/ext/couchbase/core/utils/connection_string.hxx +15 -0
- data/ext/couchbase/core/{columnar/backoff_calculator.hxx → utils/deadline.hxx} +13 -13
- data/ext/couchbase/core/utils/duration_parser.cxx +1 -1
- data/ext/couchbase/core/utils/json_streaming_lexer.cxx +48 -5
- data/ext/couchbase/core/utils/json_streaming_lexer.hxx +4 -1
- data/ext/couchbase/core/utils/movable_function.hxx +301 -52
- data/ext/couchbase/core/utils/name_codec.hxx +154 -11
- data/ext/couchbase/core/{columnar/retry_info.hxx → utils/process_id.hxx} +18 -13
- data/ext/couchbase/core/utils/url_codec.cxx +12 -51
- data/ext/couchbase/core/websocket_codec.cxx +3 -29
- data/ext/couchbase/couchbase/analytics_options.hxx +21 -10
- data/ext/couchbase/couchbase/analytics_row.hxx +105 -0
- data/ext/couchbase/couchbase/analytics_stream_result.hxx +266 -0
- data/ext/couchbase/couchbase/boolean_query.hxx +3 -3
- data/ext/couchbase/couchbase/bucket.hxx +57 -0
- data/ext/couchbase/couchbase/cluster.hxx +183 -5
- data/ext/couchbase/{core/columnar/security_options.hxx → couchbase/cluster_state.hxx} +18 -14
- data/ext/couchbase/couchbase/codec/lenient_json_transcoder.hxx +69 -0
- data/ext/couchbase/couchbase/collection.hxx +234 -14
- data/ext/couchbase/couchbase/common_durability_options.hxx +18 -3
- data/ext/couchbase/couchbase/conjunction_query.hxx +1 -1
- data/ext/couchbase/couchbase/create_dataset_analytics_options.hxx +6 -1
- data/ext/couchbase/couchbase/date_range_query.hxx +2 -2
- data/ext/couchbase/couchbase/decrement_options.hxx +1 -1
- data/ext/couchbase/couchbase/disjunction_query.hxx +1 -1
- data/ext/couchbase/couchbase/error.hxx +32 -0
- data/ext/couchbase/couchbase/error_codes.hxx +32 -0
- data/ext/couchbase/couchbase/geo_bounding_box_query.hxx +1 -1
- data/ext/couchbase/couchbase/geo_distance_query.hxx +1 -1
- data/ext/couchbase/couchbase/geo_polygon_query.hxx +1 -1
- data/ext/couchbase/couchbase/get_replica_options.hxx +68 -0
- data/ext/couchbase/couchbase/get_replica_result.hxx +5 -3
- data/ext/couchbase/couchbase/get_replica_strategy.hxx +161 -0
- data/ext/couchbase/couchbase/get_result.hxx +1 -0
- data/ext/couchbase/couchbase/increment_options.hxx +1 -1
- data/ext/couchbase/couchbase/insert_options.hxx +1 -1
- data/ext/couchbase/couchbase/match_phrase_query.hxx +1 -1
- data/ext/couchbase/couchbase/match_query.hxx +1 -1
- data/ext/couchbase/couchbase/mutate_in_options.hxx +3 -3
- data/ext/couchbase/couchbase/network_options.hxx +1 -1
- data/ext/couchbase/couchbase/node_id.hxx +42 -14
- data/ext/couchbase/couchbase/node_id_for_options.hxx +7 -1
- data/ext/couchbase/couchbase/node_ids_options.hxx +8 -2
- data/ext/couchbase/couchbase/numeric_range_query.hxx +1 -1
- data/ext/couchbase/couchbase/phrase_query.hxx +1 -1
- data/ext/couchbase/couchbase/prefix_query.hxx +1 -1
- data/ext/couchbase/couchbase/query_options.hxx +23 -12
- data/ext/couchbase/couchbase/query_row.hxx +111 -0
- data/ext/couchbase/couchbase/query_stream_result.hxx +302 -0
- data/ext/couchbase/couchbase/query_string_query.hxx +3 -3
- data/ext/couchbase/couchbase/regexp_query.hxx +1 -1
- data/ext/couchbase/couchbase/replace_options.hxx +3 -3
- data/ext/couchbase/couchbase/result.hxx +14 -3
- data/ext/couchbase/couchbase/scan_result_item.hxx +1 -0
- data/ext/couchbase/couchbase/scope.hxx +85 -2
- data/ext/couchbase/couchbase/search_options.hxx +58 -8
- data/ext/couchbase/couchbase/search_scoring.hxx +94 -0
- data/ext/couchbase/couchbase/search_scoring_none.hxx +51 -0
- data/ext/couchbase/couchbase/search_scoring_reciprocal_rank_fusion.hxx +88 -0
- data/ext/couchbase/couchbase/search_scoring_relative_score_fusion.hxx +70 -0
- data/ext/couchbase/couchbase/term_range_query.hxx +1 -1
- data/ext/couchbase/couchbase/tracing/request_span.hxx +46 -0
- data/ext/couchbase/couchbase/transactions/transaction_get_multi_replicas_from_preferred_server_group_result.hxx +23 -21
- data/ext/couchbase/couchbase/transactions/transaction_get_multi_result.hxx +24 -19
- data/ext/couchbase/couchbase/transactions/transaction_get_result.hxx +17 -3
- data/ext/couchbase/couchbase/transactions/transactions_config.hxx +4 -2
- data/ext/couchbase/couchbase/transactions.hxx +27 -18
- data/ext/couchbase/couchbase/upsert_options.hxx +3 -3
- data/ext/couchbase/couchbase/vector_query.hxx +1 -1
- data/ext/couchbase/couchbase/wait_until_ready_options.hxx +111 -0
- data/ext/couchbase/couchbase/wildcard_query.hxx +1 -1
- data/ext/extconf.rb +15 -10
- data/ext/rcb_analytics.cxx +82 -102
- data/ext/rcb_backend.cxx +42 -36
- data/ext/rcb_backend.hxx +2 -0
- data/ext/rcb_buckets.cxx +47 -59
- data/ext/rcb_collections.cxx +42 -52
- data/ext/rcb_crud.cxx +345 -224
- data/ext/rcb_diagnostics.cxx +117 -27
- data/ext/rcb_exceptions.cxx +152 -99
- data/ext/rcb_exceptions.hxx +25 -0
- data/ext/rcb_extras.cxx +18 -19
- data/ext/rcb_hdr_histogram.cxx +19 -4
- data/ext/rcb_logger.cxx +202 -27
- data/ext/rcb_logger.hxx +12 -0
- data/ext/rcb_multi.cxx +40 -40
- data/ext/rcb_observability.cxx +7 -5
- data/ext/rcb_query.cxx +99 -142
- data/ext/rcb_range_scan.cxx +41 -35
- data/ext/rcb_search.cxx +98 -99
- data/ext/rcb_users.cxx +36 -56
- data/ext/rcb_utils.cxx +100 -37
- data/ext/rcb_utils.hxx +287 -33
- data/ext/rcb_version.cxx +1 -1
- data/ext/rcb_views.cxx +55 -51
- data/lib/active_support/cache/couchbase_store.rb +77 -12
- data/lib/couchbase/bucket.rb +20 -0
- data/lib/couchbase/cluster.rb +17 -0
- data/lib/couchbase/collection.rb +36 -1
- data/lib/couchbase/errors.rb +18 -0
- data/lib/couchbase/fork_hooks.rb +16 -7
- data/lib/couchbase/get_replica_strategy.rb +89 -0
- data/lib/couchbase/logger.rb +1 -1
- data/lib/couchbase/management/analytics_index_manager.rb +15 -15
- data/lib/couchbase/management/bucket_manager.rb +6 -6
- data/lib/couchbase/management/collection_manager.rb +6 -6
- data/lib/couchbase/management/query_index_manager.rb +7 -7
- data/lib/couchbase/management/search_index_manager.rb +13 -13
- data/lib/couchbase/management/user_manager.rb +10 -10
- data/lib/couchbase/management/view_index_manager.rb +5 -5
- data/lib/couchbase/options.rb +174 -42
- data/lib/couchbase/protostellar/bucket.rb +4 -0
- data/lib/couchbase/protostellar/cluster.rb +4 -0
- data/lib/couchbase/protostellar/collection.rb +4 -0
- data/lib/couchbase/protostellar/error_handling.rb +2 -1
- data/lib/couchbase/protostellar/request.rb +1 -0
- data/lib/couchbase/protostellar/request_generator/kv.rb +16 -2
- data/lib/couchbase/protostellar/request_generator/search.rb +17 -1
- data/lib/couchbase/protostellar/retry/orchestrator.rb +3 -2
- data/lib/couchbase/protostellar/retry/strategies/fail_fast.rb +33 -0
- data/lib/couchbase/protostellar/retry/strategies.rb +1 -0
- data/lib/couchbase/search_options.rb +95 -6
- data/lib/couchbase/version.rb +1 -1
- metadata +91 -33
- data/ext/0001-fix-build-for-mingw-w64-ucrt-x86_64-toolchain.patch +0 -40
- data/ext/couchbase/core/columnar/agent.hxx +0 -71
- data/ext/couchbase/core/columnar/agent_config.hxx +0 -59
- data/ext/couchbase/core/columnar/background_bootstrap_listener.hxx +0 -42
- data/ext/couchbase/core/columnar/backoff_calculator.cxx +0 -62
- data/ext/couchbase/core/columnar/columnar_agent.cxx +0 -147
- data/ext/couchbase/core/columnar/columnar_agent_config.cxx +0 -48
- data/ext/couchbase/core/columnar/columnar_error.cxx +0 -51
- data/ext/couchbase/core/columnar/database_management_options.hxx +0 -56
- data/ext/couchbase/core/columnar/error.hxx +0 -51
- data/ext/couchbase/core/columnar/error_codes.cxx +0 -107
- data/ext/couchbase/core/columnar/error_codes.hxx +0 -75
- data/ext/couchbase/core/columnar/management_component.cxx +0 -300
- data/ext/couchbase/core/columnar/management_component.hxx +0 -56
- data/ext/couchbase/core/columnar/query_component.cxx +0 -523
- data/ext/couchbase/core/columnar/query_component.hxx +0 -57
- data/ext/couchbase/core/columnar/query_options.hxx +0 -59
- data/ext/couchbase/core/columnar/query_result.cxx +0 -130
- data/ext/couchbase/core/columnar/query_result.hxx +0 -78
- data/ext/couchbase/core/io/config_tracker.cxx +0 -687
- data/ext/couchbase/core/io/config_tracker.hxx +0 -123
data/ext/rcb_query.cxx
CHANGED
|
@@ -45,9 +45,9 @@ cb_Backend_query_index_get_all(VALUE self,
|
|
|
45
45
|
{
|
|
46
46
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
cb_check_type(bucket_name, T_STRING);
|
|
49
49
|
if (!NIL_P(options)) {
|
|
50
|
-
|
|
50
|
+
cb_check_type(options, T_HASH);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
try {
|
|
@@ -113,10 +113,8 @@ cb_Backend_query_index_get_all(VALUE self,
|
|
|
113
113
|
|
|
114
114
|
return res;
|
|
115
115
|
} catch (const std::system_error& se) {
|
|
116
|
-
|
|
116
|
+
throw ruby_exception(cb_map_error_code(
|
|
117
117
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
118
|
-
} catch (const ruby_exception& e) {
|
|
119
|
-
rb_exc_raise(e.exception_object());
|
|
120
118
|
}
|
|
121
119
|
return Qnil;
|
|
122
120
|
}
|
|
@@ -131,11 +129,11 @@ cb_Backend_query_index_create(VALUE self,
|
|
|
131
129
|
{
|
|
132
130
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
133
131
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
132
|
+
cb_check_type(bucket_name, T_STRING);
|
|
133
|
+
cb_check_type(index_name, T_STRING);
|
|
134
|
+
cb_check_type(keys, T_ARRAY);
|
|
137
135
|
if (!NIL_P(options)) {
|
|
138
|
-
|
|
136
|
+
cb_check_type(options, T_HASH);
|
|
139
137
|
}
|
|
140
138
|
|
|
141
139
|
try {
|
|
@@ -165,7 +163,7 @@ cb_Backend_query_index_create(VALUE self,
|
|
|
165
163
|
} /* else use backend default */
|
|
166
164
|
if (VALUE num_replicas = rb_hash_aref(options, rb_id2sym(rb_intern("num_replicas")));
|
|
167
165
|
!NIL_P(num_replicas)) {
|
|
168
|
-
req.num_replicas =
|
|
166
|
+
req.num_replicas = cb_num2uint(num_replicas);
|
|
169
167
|
} /* else use backend default */
|
|
170
168
|
if (VALUE condition = rb_hash_aref(options, rb_id2sym(rb_intern("condition")));
|
|
171
169
|
!NIL_P(condition)) {
|
|
@@ -219,10 +217,8 @@ cb_Backend_query_index_create(VALUE self,
|
|
|
219
217
|
}
|
|
220
218
|
return res;
|
|
221
219
|
} catch (const std::system_error& se) {
|
|
222
|
-
|
|
220
|
+
throw ruby_exception(cb_map_error_code(
|
|
223
221
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
224
|
-
} catch (const ruby_exception& e) {
|
|
225
|
-
rb_exc_raise(e.exception_object());
|
|
226
222
|
}
|
|
227
223
|
return Qnil;
|
|
228
224
|
}
|
|
@@ -236,10 +232,10 @@ cb_Backend_query_index_drop(VALUE self,
|
|
|
236
232
|
{
|
|
237
233
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
238
234
|
|
|
239
|
-
|
|
240
|
-
|
|
235
|
+
cb_check_type(bucket_name, T_STRING);
|
|
236
|
+
cb_check_type(index_name, T_STRING);
|
|
241
237
|
if (!NIL_P(options)) {
|
|
242
|
-
|
|
238
|
+
cb_check_type(options, T_HASH);
|
|
243
239
|
}
|
|
244
240
|
|
|
245
241
|
try {
|
|
@@ -304,10 +300,8 @@ cb_Backend_query_index_drop(VALUE self,
|
|
|
304
300
|
}
|
|
305
301
|
return res;
|
|
306
302
|
} catch (const std::system_error& se) {
|
|
307
|
-
|
|
303
|
+
throw ruby_exception(cb_map_error_code(
|
|
308
304
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
309
|
-
} catch (const ruby_exception& e) {
|
|
310
|
-
rb_exc_raise(e.exception_object());
|
|
311
305
|
}
|
|
312
306
|
return Qnil;
|
|
313
307
|
}
|
|
@@ -320,9 +314,9 @@ cb_Backend_query_index_create_primary(VALUE self,
|
|
|
320
314
|
{
|
|
321
315
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
322
316
|
|
|
323
|
-
|
|
317
|
+
cb_check_type(bucket_name, T_STRING);
|
|
324
318
|
if (!NIL_P(options)) {
|
|
325
|
-
|
|
319
|
+
cb_check_type(options, T_HASH);
|
|
326
320
|
}
|
|
327
321
|
|
|
328
322
|
try {
|
|
@@ -345,7 +339,7 @@ cb_Backend_query_index_create_primary(VALUE self,
|
|
|
345
339
|
} /* else use backend default */
|
|
346
340
|
if (VALUE num_replicas = rb_hash_aref(options, rb_id2sym(rb_intern("num_replicas")));
|
|
347
341
|
!NIL_P(num_replicas)) {
|
|
348
|
-
req.num_replicas =
|
|
342
|
+
req.num_replicas = cb_num2uint(num_replicas);
|
|
349
343
|
} /* else use backend default */
|
|
350
344
|
if (VALUE index_name = rb_hash_aref(options, rb_id2sym(rb_intern("index_name")));
|
|
351
345
|
TYPE(index_name) == T_STRING) {
|
|
@@ -398,10 +392,8 @@ cb_Backend_query_index_create_primary(VALUE self,
|
|
|
398
392
|
|
|
399
393
|
return res;
|
|
400
394
|
} catch (const std::system_error& se) {
|
|
401
|
-
|
|
395
|
+
throw ruby_exception(cb_map_error_code(
|
|
402
396
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
403
|
-
} catch (const ruby_exception& e) {
|
|
404
|
-
rb_exc_raise(e.exception_object());
|
|
405
397
|
}
|
|
406
398
|
return Qnil;
|
|
407
399
|
}
|
|
@@ -414,9 +406,9 @@ cb_Backend_query_index_drop_primary(VALUE self,
|
|
|
414
406
|
{
|
|
415
407
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
416
408
|
|
|
417
|
-
|
|
409
|
+
cb_check_type(bucket_name, T_STRING);
|
|
418
410
|
if (!NIL_P(options)) {
|
|
419
|
-
|
|
411
|
+
cb_check_type(options, T_HASH);
|
|
420
412
|
}
|
|
421
413
|
|
|
422
414
|
try {
|
|
@@ -484,10 +476,8 @@ cb_Backend_query_index_drop_primary(VALUE self,
|
|
|
484
476
|
}
|
|
485
477
|
return res;
|
|
486
478
|
} catch (const std::system_error& se) {
|
|
487
|
-
|
|
479
|
+
throw ruby_exception(cb_map_error_code(
|
|
488
480
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
489
|
-
} catch (const ruby_exception& e) {
|
|
490
|
-
rb_exc_raise(e.exception_object());
|
|
491
481
|
}
|
|
492
482
|
return Qnil;
|
|
493
483
|
}
|
|
@@ -500,9 +490,9 @@ cb_Backend_query_index_build_deferred(VALUE self,
|
|
|
500
490
|
{
|
|
501
491
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
502
492
|
|
|
503
|
-
|
|
493
|
+
cb_check_type(bucket_name, T_STRING);
|
|
504
494
|
if (!NIL_P(options)) {
|
|
505
|
-
|
|
495
|
+
cb_check_type(options, T_HASH);
|
|
506
496
|
}
|
|
507
497
|
|
|
508
498
|
try {
|
|
@@ -559,51 +549,19 @@ cb_Backend_query_index_build_deferred(VALUE self,
|
|
|
559
549
|
}
|
|
560
550
|
return res;
|
|
561
551
|
} catch (const std::system_error& se) {
|
|
562
|
-
|
|
552
|
+
throw ruby_exception(cb_map_error_code(
|
|
563
553
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
564
|
-
} catch (const ruby_exception& e) {
|
|
565
|
-
rb_exc_raise(e.exception_object());
|
|
566
554
|
}
|
|
567
555
|
return Qnil;
|
|
568
556
|
}
|
|
569
557
|
|
|
570
|
-
int
|
|
571
|
-
cb_for_each_named_param(VALUE key, VALUE value, VALUE arg)
|
|
572
|
-
{
|
|
573
|
-
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
|
|
574
|
-
auto* preq = reinterpret_cast<core::operations::query_request*>(arg);
|
|
575
|
-
try {
|
|
576
|
-
cb_check_type(key, T_STRING);
|
|
577
|
-
cb_check_type(value, T_STRING);
|
|
578
|
-
} catch (const ruby_exception&) {
|
|
579
|
-
return ST_STOP;
|
|
580
|
-
}
|
|
581
|
-
preq->named_parameters[cb_string_new(key)] = cb_string_new(value);
|
|
582
|
-
return ST_CONTINUE;
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
int
|
|
586
|
-
cb_for_each_raw_param(VALUE key, VALUE value, VALUE arg)
|
|
587
|
-
{
|
|
588
|
-
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
|
|
589
|
-
auto* preq = reinterpret_cast<core::operations::query_request*>(arg);
|
|
590
|
-
try {
|
|
591
|
-
cb_check_type(key, T_STRING);
|
|
592
|
-
cb_check_type(value, T_STRING);
|
|
593
|
-
} catch (const ruby_exception&) {
|
|
594
|
-
return ST_STOP;
|
|
595
|
-
}
|
|
596
|
-
preq->raw[cb_string_new(key)] = cb_string_new(value);
|
|
597
|
-
return ST_CONTINUE;
|
|
598
|
-
}
|
|
599
|
-
|
|
600
558
|
VALUE
|
|
601
559
|
cb_Backend_document_query(VALUE self, VALUE statement, VALUE options, VALUE observability_handler)
|
|
602
560
|
{
|
|
603
561
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
604
562
|
|
|
605
|
-
|
|
606
|
-
|
|
563
|
+
cb_check_type(statement, T_STRING);
|
|
564
|
+
cb_check_type(options, T_HASH);
|
|
607
565
|
|
|
608
566
|
try {
|
|
609
567
|
core::operations::query_request req;
|
|
@@ -655,8 +613,7 @@ cb_Backend_document_query(VALUE self, VALUE statement, VALUE options, VALUE obse
|
|
|
655
613
|
if (VALUE named_params = rb_hash_aref(options, rb_id2sym(rb_intern("named_parameters")));
|
|
656
614
|
!NIL_P(named_params)) {
|
|
657
615
|
cb_check_type(named_params, T_HASH);
|
|
658
|
-
|
|
659
|
-
rb_hash_foreach(named_params, cb_for_each_named_param, reinterpret_cast<VALUE>(&req));
|
|
616
|
+
cb_extract_string_hash(req.named_parameters, named_params, "named_parameters");
|
|
660
617
|
}
|
|
661
618
|
if (VALUE scan_consistency = rb_hash_aref(options, rb_id2sym(rb_intern("scan_consistency")));
|
|
662
619
|
!NIL_P(scan_consistency)) {
|
|
@@ -686,7 +643,7 @@ cb_Backend_document_query(VALUE self, VALUE statement, VALUE options, VALUE obse
|
|
|
686
643
|
case T_BIGNUM:
|
|
687
644
|
break;
|
|
688
645
|
default:
|
|
689
|
-
|
|
646
|
+
throw ruby_exception(rb_eArgError, "partition_uuid must be an Integer");
|
|
690
647
|
}
|
|
691
648
|
VALUE sequence_number = rb_hash_aref(token, rb_id2sym(rb_intern("sequence_number")));
|
|
692
649
|
switch (TYPE(sequence_number)) {
|
|
@@ -694,11 +651,11 @@ cb_Backend_document_query(VALUE self, VALUE statement, VALUE options, VALUE obse
|
|
|
694
651
|
case T_BIGNUM:
|
|
695
652
|
break;
|
|
696
653
|
default:
|
|
697
|
-
|
|
654
|
+
throw ruby_exception(rb_eArgError, "sequence_number must be an Integer");
|
|
698
655
|
}
|
|
699
|
-
req.mutation_state.emplace_back(
|
|
700
|
-
|
|
701
|
-
gsl::narrow_cast<std::uint16_t>(
|
|
656
|
+
req.mutation_state.emplace_back(cb_num2ull(partition_uuid),
|
|
657
|
+
cb_num2ull(sequence_number),
|
|
658
|
+
gsl::narrow_cast<std::uint16_t>(cb_num2uint(partition_id)),
|
|
702
659
|
cb_string_new(bucket_name));
|
|
703
660
|
}
|
|
704
661
|
}
|
|
@@ -706,8 +663,7 @@ cb_Backend_document_query(VALUE self, VALUE statement, VALUE options, VALUE obse
|
|
|
706
663
|
if (VALUE raw_params = rb_hash_aref(options, rb_id2sym(rb_intern("raw_parameters")));
|
|
707
664
|
!NIL_P(raw_params)) {
|
|
708
665
|
cb_check_type(raw_params, T_HASH);
|
|
709
|
-
|
|
710
|
-
rb_hash_foreach(raw_params, cb_for_each_raw_param, reinterpret_cast<VALUE>(&req));
|
|
666
|
+
cb_extract_string_hash(req.raw, raw_params, "raw_parameters");
|
|
711
667
|
}
|
|
712
668
|
auto parent_span = cb_create_parent_span(req, self);
|
|
713
669
|
|
|
@@ -776,10 +732,8 @@ cb_Backend_document_query(VALUE self, VALUE statement, VALUE options, VALUE obse
|
|
|
776
732
|
|
|
777
733
|
return res;
|
|
778
734
|
} catch (const std::system_error& se) {
|
|
779
|
-
|
|
735
|
+
throw ruby_exception(cb_map_error_code(
|
|
780
736
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
781
|
-
} catch (const ruby_exception& e) {
|
|
782
|
-
rb_exc_raise(e.exception_object());
|
|
783
737
|
}
|
|
784
738
|
return Qnil;
|
|
785
739
|
}
|
|
@@ -794,11 +748,11 @@ cb_Backend_collection_query_index_get_all(VALUE self,
|
|
|
794
748
|
{
|
|
795
749
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
796
750
|
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
751
|
+
cb_check_type(bucket_name, T_STRING);
|
|
752
|
+
cb_check_type(scope_name, T_STRING);
|
|
753
|
+
cb_check_type(collection_name, T_STRING);
|
|
800
754
|
if (!NIL_P(options)) {
|
|
801
|
-
|
|
755
|
+
cb_check_type(options, T_HASH);
|
|
802
756
|
}
|
|
803
757
|
|
|
804
758
|
try {
|
|
@@ -856,10 +810,8 @@ cb_Backend_collection_query_index_get_all(VALUE self,
|
|
|
856
810
|
|
|
857
811
|
return res;
|
|
858
812
|
} catch (const std::system_error& se) {
|
|
859
|
-
|
|
813
|
+
throw ruby_exception(cb_map_error_code(
|
|
860
814
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
861
|
-
} catch (const ruby_exception& e) {
|
|
862
|
-
rb_exc_raise(e.exception_object());
|
|
863
815
|
}
|
|
864
816
|
return Qnil;
|
|
865
817
|
}
|
|
@@ -875,13 +827,13 @@ cb_Backend_collection_query_index_create(VALUE self,
|
|
|
875
827
|
VALUE observability_handler)
|
|
876
828
|
{
|
|
877
829
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
830
|
+
cb_check_type(bucket_name, T_STRING);
|
|
831
|
+
cb_check_type(scope_name, T_STRING);
|
|
832
|
+
cb_check_type(collection_name, T_STRING);
|
|
833
|
+
cb_check_type(index_name, T_STRING);
|
|
834
|
+
cb_check_type(keys, T_ARRAY);
|
|
883
835
|
if (!NIL_P(options)) {
|
|
884
|
-
|
|
836
|
+
cb_check_type(options, T_HASH);
|
|
885
837
|
}
|
|
886
838
|
|
|
887
839
|
try {
|
|
@@ -913,7 +865,7 @@ cb_Backend_collection_query_index_create(VALUE self,
|
|
|
913
865
|
} /* else use backend default */
|
|
914
866
|
if (VALUE num_replicas = rb_hash_aref(options, rb_id2sym(rb_intern("num_replicas")));
|
|
915
867
|
!NIL_P(num_replicas)) {
|
|
916
|
-
req.num_replicas =
|
|
868
|
+
req.num_replicas = cb_num2uint(num_replicas);
|
|
917
869
|
} /* else use backend default */
|
|
918
870
|
if (VALUE condition = rb_hash_aref(options, rb_id2sym(rb_intern("condition")));
|
|
919
871
|
!NIL_P(condition)) {
|
|
@@ -967,10 +919,8 @@ cb_Backend_collection_query_index_create(VALUE self,
|
|
|
967
919
|
}
|
|
968
920
|
return res;
|
|
969
921
|
} catch (const std::system_error& se) {
|
|
970
|
-
|
|
922
|
+
throw ruby_exception(cb_map_error_code(
|
|
971
923
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
972
|
-
} catch (const ruby_exception& e) {
|
|
973
|
-
rb_exc_raise(e.exception_object());
|
|
974
924
|
}
|
|
975
925
|
return Qnil;
|
|
976
926
|
}
|
|
@@ -986,12 +936,12 @@ cb_Backend_collection_query_index_drop(VALUE self,
|
|
|
986
936
|
{
|
|
987
937
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
988
938
|
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
939
|
+
cb_check_type(bucket_name, T_STRING);
|
|
940
|
+
cb_check_type(scope_name, T_STRING);
|
|
941
|
+
cb_check_type(collection_name, T_STRING);
|
|
942
|
+
cb_check_type(index_name, T_STRING);
|
|
993
943
|
if (!NIL_P(options)) {
|
|
994
|
-
|
|
944
|
+
cb_check_type(options, T_HASH);
|
|
995
945
|
}
|
|
996
946
|
|
|
997
947
|
try {
|
|
@@ -1058,10 +1008,8 @@ cb_Backend_collection_query_index_drop(VALUE self,
|
|
|
1058
1008
|
}
|
|
1059
1009
|
return res;
|
|
1060
1010
|
} catch (const std::system_error& se) {
|
|
1061
|
-
|
|
1011
|
+
throw ruby_exception(cb_map_error_code(
|
|
1062
1012
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
1063
|
-
} catch (const ruby_exception& e) {
|
|
1064
|
-
rb_exc_raise(e.exception_object());
|
|
1065
1013
|
}
|
|
1066
1014
|
return Qnil;
|
|
1067
1015
|
}
|
|
@@ -1076,11 +1024,11 @@ cb_Backend_collection_query_index_create_primary(VALUE self,
|
|
|
1076
1024
|
{
|
|
1077
1025
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
1078
1026
|
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1027
|
+
cb_check_type(bucket_name, T_STRING);
|
|
1028
|
+
cb_check_type(scope_name, T_STRING);
|
|
1029
|
+
cb_check_type(collection_name, T_STRING);
|
|
1082
1030
|
if (!NIL_P(options)) {
|
|
1083
|
-
|
|
1031
|
+
cb_check_type(options, T_HASH);
|
|
1084
1032
|
}
|
|
1085
1033
|
|
|
1086
1034
|
try {
|
|
@@ -1105,7 +1053,7 @@ cb_Backend_collection_query_index_create_primary(VALUE self,
|
|
|
1105
1053
|
} /* else use backend default */
|
|
1106
1054
|
if (VALUE num_replicas = rb_hash_aref(options, rb_id2sym(rb_intern("num_replicas")));
|
|
1107
1055
|
!NIL_P(num_replicas)) {
|
|
1108
|
-
req.num_replicas =
|
|
1056
|
+
req.num_replicas = cb_num2uint(num_replicas);
|
|
1109
1057
|
} /* else use backend default */
|
|
1110
1058
|
if (VALUE index_name = rb_hash_aref(options, rb_id2sym(rb_intern("index_name")));
|
|
1111
1059
|
TYPE(index_name) == T_STRING) {
|
|
@@ -1158,10 +1106,8 @@ cb_Backend_collection_query_index_create_primary(VALUE self,
|
|
|
1158
1106
|
}
|
|
1159
1107
|
return res;
|
|
1160
1108
|
} catch (const std::system_error& se) {
|
|
1161
|
-
|
|
1109
|
+
throw ruby_exception(cb_map_error_code(
|
|
1162
1110
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
1163
|
-
} catch (const ruby_exception& e) {
|
|
1164
|
-
rb_exc_raise(e.exception_object());
|
|
1165
1111
|
}
|
|
1166
1112
|
return Qnil;
|
|
1167
1113
|
}
|
|
@@ -1176,11 +1122,11 @@ cb_Backend_collection_query_index_drop_primary(VALUE self,
|
|
|
1176
1122
|
{
|
|
1177
1123
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
1178
1124
|
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1125
|
+
cb_check_type(bucket_name, T_STRING);
|
|
1126
|
+
cb_check_type(scope_name, T_STRING);
|
|
1127
|
+
cb_check_type(collection_name, T_STRING);
|
|
1182
1128
|
if (!NIL_P(options)) {
|
|
1183
|
-
|
|
1129
|
+
cb_check_type(options, T_HASH);
|
|
1184
1130
|
}
|
|
1185
1131
|
|
|
1186
1132
|
try {
|
|
@@ -1251,10 +1197,8 @@ cb_Backend_collection_query_index_drop_primary(VALUE self,
|
|
|
1251
1197
|
}
|
|
1252
1198
|
return res;
|
|
1253
1199
|
} catch (const std::system_error& se) {
|
|
1254
|
-
|
|
1200
|
+
throw ruby_exception(cb_map_error_code(
|
|
1255
1201
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
1256
|
-
} catch (const ruby_exception& e) {
|
|
1257
|
-
rb_exc_raise(e.exception_object());
|
|
1258
1202
|
}
|
|
1259
1203
|
return Qnil;
|
|
1260
1204
|
}
|
|
@@ -1269,11 +1213,11 @@ cb_Backend_collection_query_index_build_deferred(VALUE self,
|
|
|
1269
1213
|
{
|
|
1270
1214
|
auto cluster = cb_backend_to_core_api_cluster(self);
|
|
1271
1215
|
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1216
|
+
cb_check_type(bucket_name, T_STRING);
|
|
1217
|
+
cb_check_type(scope_name, T_STRING);
|
|
1218
|
+
cb_check_type(collection_name, T_STRING);
|
|
1275
1219
|
if (!NIL_P(options)) {
|
|
1276
|
-
|
|
1220
|
+
cb_check_type(options, T_HASH);
|
|
1277
1221
|
}
|
|
1278
1222
|
|
|
1279
1223
|
try {
|
|
@@ -1320,10 +1264,8 @@ cb_Backend_collection_query_index_build_deferred(VALUE self,
|
|
|
1320
1264
|
}
|
|
1321
1265
|
return res;
|
|
1322
1266
|
} catch (const std::system_error& se) {
|
|
1323
|
-
|
|
1267
|
+
throw ruby_exception(cb_map_error_code(
|
|
1324
1268
|
se.code(), fmt::format("failed to perform {}: {}", __func__, se.what()), false));
|
|
1325
|
-
} catch (const ruby_exception& e) {
|
|
1326
|
-
rb_exc_raise(e.exception_object());
|
|
1327
1269
|
}
|
|
1328
1270
|
return Qnil;
|
|
1329
1271
|
}
|
|
@@ -1333,34 +1275,49 @@ cb_Backend_collection_query_index_build_deferred(VALUE self,
|
|
|
1333
1275
|
void
|
|
1334
1276
|
init_query(VALUE cBackend)
|
|
1335
1277
|
{
|
|
1336
|
-
rb_define_method(cBackend, "document_query", cb_Backend_document_query, 3);
|
|
1278
|
+
rb_define_method(cBackend, "document_query", cb_method<cb_Backend_document_query>::invoke, 3);
|
|
1337
1279
|
|
|
1338
|
-
rb_define_method(cBackend, "query_index_get_all", cb_Backend_query_index_get_all, 3);
|
|
1339
|
-
rb_define_method(cBackend, "query_index_create", cb_Backend_query_index_create, 5);
|
|
1340
1280
|
rb_define_method(
|
|
1341
|
-
cBackend, "
|
|
1342
|
-
rb_define_method(cBackend, "query_index_drop", cb_Backend_query_index_drop, 4);
|
|
1343
|
-
rb_define_method(cBackend, "query_index_drop_primary", cb_Backend_query_index_drop_primary, 3);
|
|
1281
|
+
cBackend, "query_index_get_all", cb_method<cb_Backend_query_index_get_all>::invoke, 3);
|
|
1344
1282
|
rb_define_method(
|
|
1345
|
-
cBackend, "
|
|
1283
|
+
cBackend, "query_index_create", cb_method<cb_Backend_query_index_create>::invoke, 5);
|
|
1284
|
+
rb_define_method(cBackend,
|
|
1285
|
+
"query_index_create_primary",
|
|
1286
|
+
cb_method<cb_Backend_query_index_create_primary>::invoke,
|
|
1287
|
+
3);
|
|
1288
|
+
rb_define_method(cBackend, "query_index_drop", cb_method<cb_Backend_query_index_drop>::invoke, 4);
|
|
1289
|
+
rb_define_method(cBackend,
|
|
1290
|
+
"query_index_drop_primary",
|
|
1291
|
+
cb_method<cb_Backend_query_index_drop_primary>::invoke,
|
|
1292
|
+
3);
|
|
1293
|
+
rb_define_method(cBackend,
|
|
1294
|
+
"query_index_build_deferred",
|
|
1295
|
+
cb_method<cb_Backend_query_index_build_deferred>::invoke,
|
|
1296
|
+
3);
|
|
1346
1297
|
|
|
1347
|
-
rb_define_method(
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1298
|
+
rb_define_method(cBackend,
|
|
1299
|
+
"collection_query_index_get_all",
|
|
1300
|
+
cb_method<cb_Backend_collection_query_index_get_all>::invoke,
|
|
1301
|
+
5);
|
|
1302
|
+
rb_define_method(cBackend,
|
|
1303
|
+
"collection_query_index_create",
|
|
1304
|
+
cb_method<cb_Backend_collection_query_index_create>::invoke,
|
|
1305
|
+
7);
|
|
1351
1306
|
rb_define_method(cBackend,
|
|
1352
1307
|
"collection_query_index_create_primary",
|
|
1353
|
-
cb_Backend_collection_query_index_create_primary,
|
|
1308
|
+
cb_method<cb_Backend_collection_query_index_create_primary>::invoke,
|
|
1354
1309
|
5);
|
|
1355
|
-
rb_define_method(
|
|
1356
|
-
|
|
1310
|
+
rb_define_method(cBackend,
|
|
1311
|
+
"collection_query_index_drop",
|
|
1312
|
+
cb_method<cb_Backend_collection_query_index_drop>::invoke,
|
|
1313
|
+
6);
|
|
1357
1314
|
rb_define_method(cBackend,
|
|
1358
1315
|
"collection_query_index_drop_primary",
|
|
1359
|
-
cb_Backend_collection_query_index_drop_primary,
|
|
1316
|
+
cb_method<cb_Backend_collection_query_index_drop_primary>::invoke,
|
|
1360
1317
|
5);
|
|
1361
1318
|
rb_define_method(cBackend,
|
|
1362
1319
|
"collection_query_index_build_deferred",
|
|
1363
|
-
cb_Backend_collection_query_index_build_deferred,
|
|
1320
|
+
cb_method<cb_Backend_collection_query_index_build_deferred>::invoke,
|
|
1364
1321
|
5);
|
|
1365
1322
|
}
|
|
1366
1323
|
} // namespace couchbase::ruby
|