mongo 2.22.0 → 2.24.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/bin/mongo_console +0 -1
- data/lib/mongo/active_support.rb +1 -2
- data/lib/mongo/address/ipv4.rb +3 -6
- data/lib/mongo/address/ipv6.rb +6 -10
- data/lib/mongo/address/unix.rb +1 -4
- data/lib/mongo/address/validator.rb +16 -28
- data/lib/mongo/address.rb +30 -40
- data/lib/mongo/auth/aws/conversation.rb +6 -10
- data/lib/mongo/auth/aws/credentials.rb +0 -1
- data/lib/mongo/auth/aws/credentials_cache.rb +0 -1
- data/lib/mongo/auth/aws/credentials_retriever.rb +45 -59
- data/lib/mongo/auth/aws/request.rb +20 -35
- data/lib/mongo/auth/aws.rb +1 -2
- data/lib/mongo/auth/base.rb +20 -29
- data/lib/mongo/auth/conversation_base.rb +14 -18
- data/lib/mongo/auth/cr/conversation.rb +0 -3
- data/lib/mongo/auth/cr.rb +1 -4
- data/lib/mongo/auth/credential_cache.rb +0 -2
- data/lib/mongo/auth/gssapi/conversation.rb +3 -8
- data/lib/mongo/auth/gssapi.rb +1 -4
- data/lib/mongo/auth/ldap/conversation.rb +0 -3
- data/lib/mongo/auth/ldap.rb +1 -4
- data/lib/mongo/auth/roles.rb +16 -19
- data/lib/mongo/auth/sasl_conversation_base.rb +7 -11
- data/lib/mongo/auth/scram/conversation.rb +2 -5
- data/lib/mongo/auth/scram.rb +5 -10
- data/lib/mongo/auth/scram256/conversation.rb +2 -5
- data/lib/mongo/auth/scram256.rb +1 -3
- data/lib/mongo/auth/scram_conversation_base.rb +18 -24
- data/lib/mongo/auth/stringprep/profiles/sasl.rb +17 -18
- data/lib/mongo/auth/stringprep/tables.rb +2209 -2210
- data/lib/mongo/auth/stringprep/unicode_normalize/normalize.rb +36 -38
- data/lib/mongo/auth/stringprep/unicode_normalize/tables.rb +1142 -1150
- data/lib/mongo/auth/stringprep.rb +9 -12
- data/lib/mongo/auth/user/view.rb +3 -5
- data/lib/mongo/auth/user.rb +14 -24
- data/lib/mongo/auth/x509/conversation.rb +0 -3
- data/lib/mongo/auth/x509.rb +7 -9
- data/lib/mongo/auth.rb +18 -30
- data/lib/mongo/background_thread.rb +9 -17
- data/lib/mongo/bson.rb +0 -2
- data/lib/mongo/bulk_write/combineable.rb +0 -3
- data/lib/mongo/bulk_write/ordered_combiner.rb +1 -3
- data/lib/mongo/bulk_write/result.rb +11 -16
- data/lib/mongo/bulk_write/result_combiner.rb +9 -12
- data/lib/mongo/bulk_write/transformable.rb +16 -19
- data/lib/mongo/bulk_write/unordered_combiner.rb +1 -3
- data/lib/mongo/bulk_write/validatable.rb +11 -18
- data/lib/mongo/bulk_write.rb +76 -91
- data/lib/mongo/caching_cursor.rb +2 -7
- data/lib/mongo/client.rb +267 -276
- data/lib/mongo/client_encryption.rb +4 -5
- data/lib/mongo/cluster/periodic_executor.rb +2 -5
- data/lib/mongo/cluster/reapers/cursor_reaper.rb +21 -29
- data/lib/mongo/cluster/reapers/socket_reaper.rb +1 -6
- data/lib/mongo/cluster/sdam_flow.rb +136 -159
- data/lib/mongo/cluster/topology/base.rb +15 -18
- data/lib/mongo/cluster/topology/load_balanced.rb +24 -14
- data/lib/mongo/cluster/topology/no_replica_set_options.rb +3 -6
- data/lib/mongo/cluster/topology/replica_set_no_primary.rb +20 -23
- data/lib/mongo/cluster/topology/replica_set_with_primary.rb +0 -2
- data/lib/mongo/cluster/topology/sharded.rb +19 -9
- data/lib/mongo/cluster/topology/single.rb +24 -14
- data/lib/mongo/cluster/topology/unknown.rb +20 -10
- data/lib/mongo/cluster/topology.rb +29 -25
- data/lib/mongo/cluster.rb +152 -184
- data/lib/mongo/cluster_time.rb +14 -31
- data/lib/mongo/collection/helpers.rb +5 -8
- data/lib/mongo/collection/view/aggregation/behavior.rb +1 -1
- data/lib/mongo/collection/view/aggregation.rb +10 -12
- data/lib/mongo/collection/view/builder/aggregation.rb +6 -9
- data/lib/mongo/collection/view/builder/map_reduce.rb +18 -17
- data/lib/mongo/collection/view/builder.rb +0 -1
- data/lib/mongo/collection/view/change_stream/retryable.rb +3 -8
- data/lib/mongo/collection/view/change_stream.rb +59 -58
- data/lib/mongo/collection/view/explainable.rb +11 -20
- data/lib/mongo/collection/view/immutable.rb +1 -3
- data/lib/mongo/collection/view/iterable.rb +44 -35
- data/lib/mongo/collection/view/map_reduce.rb +20 -25
- data/lib/mongo/collection/view/readable.rb +96 -94
- data/lib/mongo/collection/view/writable.rb +104 -114
- data/lib/mongo/collection/view.rb +11 -8
- data/lib/mongo/collection.rb +103 -106
- data/lib/mongo/condition_variable.rb +4 -4
- data/lib/mongo/config/options.rb +0 -3
- data/lib/mongo/config/validators/option.rb +3 -5
- data/lib/mongo/config.rb +6 -4
- data/lib/mongo/crypt/auto_decryption_context.rb +9 -3
- data/lib/mongo/crypt/auto_encrypter.rb +34 -43
- data/lib/mongo/crypt/auto_encryption_context.rb +0 -3
- data/lib/mongo/crypt/binary.rb +5 -9
- data/lib/mongo/crypt/binding.rb +150 -156
- data/lib/mongo/crypt/context.rb +20 -17
- data/lib/mongo/crypt/data_key_context.rb +2 -7
- data/lib/mongo/crypt/encryption_io.rb +29 -39
- data/lib/mongo/crypt/explicit_decryption_context.rb +9 -3
- data/lib/mongo/crypt/explicit_encrypter.rb +1 -1
- data/lib/mongo/crypt/explicit_encryption_context.rb +19 -30
- data/lib/mongo/crypt/explicit_encryption_expression_context.rb +0 -2
- data/lib/mongo/crypt/handle.rb +42 -48
- data/lib/mongo/crypt/hooks.rb +12 -15
- data/lib/mongo/crypt/kms/aws/credentials.rb +12 -16
- data/lib/mongo/crypt/kms/aws/master_document.rb +6 -9
- data/lib/mongo/crypt/kms/aws.rb +0 -2
- data/lib/mongo/crypt/kms/azure/credentials_retriever.rb +2 -7
- data/lib/mongo/crypt/kms/azure/master_document.rb +15 -19
- data/lib/mongo/crypt/kms/azure.rb +0 -1
- data/lib/mongo/crypt/kms/credentials.rb +13 -27
- data/lib/mongo/crypt/kms/gcp/credentials.rb +12 -14
- data/lib/mongo/crypt/kms/gcp/credentials_retriever.rb +7 -9
- data/lib/mongo/crypt/kms/gcp/master_document.rb +12 -16
- data/lib/mongo/crypt/kms/gcp.rb +0 -2
- data/lib/mongo/crypt/kms/kmip/credentials.rb +7 -8
- data/lib/mongo/crypt/kms/kmip/master_document.rb +3 -5
- data/lib/mongo/crypt/kms/kmip.rb +0 -1
- data/lib/mongo/crypt/kms/local/credentials.rb +7 -8
- data/lib/mongo/crypt/kms/local/master_document.rb +2 -6
- data/lib/mongo/crypt/kms/local.rb +0 -1
- data/lib/mongo/crypt/kms/master_key_document.rb +11 -15
- data/lib/mongo/crypt/kms.rb +14 -16
- data/lib/mongo/crypt/kms_context.rb +0 -2
- data/lib/mongo/crypt/rewrap_many_data_key_context.rb +2 -7
- data/lib/mongo/crypt/rewrap_many_data_key_result.rb +2 -4
- data/lib/mongo/crypt/status.rb +12 -14
- data/lib/mongo/crypt.rb +0 -1
- data/lib/mongo/csot_timeout_holder.rb +3 -2
- data/lib/mongo/cursor/kill_spec.rb +7 -10
- data/lib/mongo/cursor.rb +74 -64
- data/lib/mongo/cursor_host.rb +8 -10
- data/lib/mongo/database/view.rb +23 -39
- data/lib/mongo/database.rb +68 -65
- data/lib/mongo/dbref.rb +0 -1
- data/lib/mongo/deprecations.rb +98 -0
- data/lib/mongo/distinguishing_semaphore.rb +0 -1
- data/lib/mongo/error/auth_error.rb +0 -2
- data/lib/mongo/error/bad_load_balancer_target.rb +0 -2
- data/lib/mongo/error/bulk_write_error.rb +7 -10
- data/lib/mongo/error/change_stream_resumable.rb +0 -2
- data/lib/mongo/error/client_closed.rb +0 -2
- data/lib/mongo/error/closed_stream.rb +1 -4
- data/lib/mongo/error/connection_check_out_timeout.rb +3 -6
- data/lib/mongo/error/connection_perished.rb +0 -2
- data/lib/mongo/error/connection_unavailable.rb +0 -2
- data/lib/mongo/error/credential_check_error.rb +0 -2
- data/lib/mongo/error/crypt_error.rb +0 -2
- data/lib/mongo/error/extra_file_chunk.rb +1 -4
- data/lib/mongo/error/failed_string_prep_validation.rb +5 -6
- data/lib/mongo/error/file_not_found.rb +0 -3
- data/lib/mongo/error/handshake_error.rb +0 -2
- data/lib/mongo/error/insufficient_iteration_count.rb +1 -4
- data/lib/mongo/error/internal_driver_error.rb +0 -2
- data/lib/mongo/error/invalid_address.rb +0 -2
- data/lib/mongo/error/invalid_application_name.rb +0 -3
- data/lib/mongo/error/invalid_bulk_operation.rb +1 -4
- data/lib/mongo/error/invalid_bulk_operation_type.rb +1 -4
- data/lib/mongo/error/invalid_collection_name.rb +1 -4
- data/lib/mongo/error/invalid_config_option.rb +0 -3
- data/lib/mongo/error/invalid_cursor_operation.rb +0 -2
- data/lib/mongo/error/invalid_database_name.rb +1 -4
- data/lib/mongo/error/invalid_document.rb +1 -4
- data/lib/mongo/error/invalid_file.rb +0 -3
- data/lib/mongo/error/invalid_file_revision.rb +0 -3
- data/lib/mongo/error/invalid_min_pool_size.rb +0 -3
- data/lib/mongo/error/invalid_nonce.rb +0 -3
- data/lib/mongo/error/invalid_read_concern.rb +2 -4
- data/lib/mongo/error/invalid_read_option.rb +0 -3
- data/lib/mongo/error/invalid_replacement_document.rb +2 -5
- data/lib/mongo/error/invalid_server_auth_host.rb +0 -2
- data/lib/mongo/error/invalid_server_auth_response.rb +0 -2
- data/lib/mongo/error/invalid_server_preference.rb +7 -16
- data/lib/mongo/error/invalid_session.rb +1 -4
- data/lib/mongo/error/invalid_signature.rb +0 -3
- data/lib/mongo/error/invalid_transaction_operation.rb +5 -8
- data/lib/mongo/error/invalid_txt_record.rb +0 -2
- data/lib/mongo/error/invalid_update_document.rb +2 -5
- data/lib/mongo/error/invalid_uri.rb +1 -4
- data/lib/mongo/error/invalid_write_concern.rb +2 -5
- data/lib/mongo/error/kms_error.rb +0 -2
- data/lib/mongo/error/labelable.rb +0 -3
- data/lib/mongo/error/lint_error.rb +0 -2
- data/lib/mongo/error/max_bson_size.rb +8 -11
- data/lib/mongo/error/max_message_size.rb +2 -5
- data/lib/mongo/error/mismatched_domain.rb +0 -2
- data/lib/mongo/error/missing_connection.rb +0 -2
- data/lib/mongo/error/missing_file_chunk.rb +0 -3
- data/lib/mongo/error/missing_password.rb +0 -2
- data/lib/mongo/error/missing_resume_token.rb +1 -4
- data/lib/mongo/error/missing_scram_server_signature.rb +2 -4
- data/lib/mongo/error/missing_service_id.rb +0 -2
- data/lib/mongo/error/mongocryptd_spawn_error.rb +0 -2
- data/lib/mongo/error/multi_index_drop.rb +0 -3
- data/lib/mongo/error/need_primary_server.rb +0 -2
- data/lib/mongo/error/no_server_available.rb +3 -8
- data/lib/mongo/error/no_service_connection_available.rb +1 -3
- data/lib/mongo/error/no_srv_records.rb +0 -2
- data/lib/mongo/error/notable.rb +8 -16
- data/lib/mongo/error/operation_failure.rb +22 -35
- data/lib/mongo/error/parser.rb +33 -75
- data/lib/mongo/error/pool_cleared_error.rb +1 -3
- data/lib/mongo/error/pool_closed_error.rb +0 -3
- data/lib/mongo/error/pool_error.rb +0 -3
- data/lib/mongo/error/pool_paused_error.rb +0 -2
- data/lib/mongo/error/raise_original_error.rb +1 -3
- data/lib/mongo/error/read_write_retryable.rb +14 -17
- data/lib/mongo/error/sdam_error_detection.rb +3 -5
- data/lib/mongo/error/server_api_conflict.rb +0 -2
- data/lib/mongo/error/server_certificate_revoked.rb +0 -2
- data/lib/mongo/error/server_not_usable.rb +0 -2
- data/lib/mongo/error/session_ended.rb +1 -3
- data/lib/mongo/error/session_not_materialized.rb +1 -3
- data/lib/mongo/error/sessions_not_supported.rb +1 -4
- data/lib/mongo/error/snapshot_session_invalid_server_version.rb +1 -4
- data/lib/mongo/error/snapshot_session_transaction_prohibited.rb +1 -4
- data/lib/mongo/error/socket_error.rb +0 -2
- data/lib/mongo/error/socket_timeout_error.rb +0 -2
- data/lib/mongo/error/transactions_not_supported.rb +3 -6
- data/lib/mongo/error/unchangeable_collection_option.rb +1 -4
- data/lib/mongo/error/unexpected_chunk_length.rb +0 -3
- data/lib/mongo/error/unexpected_response.rb +1 -4
- data/lib/mongo/error/unknown_payload_type.rb +0 -3
- data/lib/mongo/error/unmet_dependency.rb +0 -2
- data/lib/mongo/error/unsupported_array_filters.rb +3 -24
- data/lib/mongo/error/unsupported_collation.rb +3 -24
- data/lib/mongo/error/unsupported_features.rb +0 -2
- data/lib/mongo/error/unsupported_message_type.rb +0 -2
- data/lib/mongo/error/unsupported_option.rb +19 -21
- data/lib/mongo/error/write_retryable.rb +0 -2
- data/lib/mongo/error.rb +10 -24
- data/lib/mongo/event/base.rb +0 -2
- data/lib/mongo/event/listeners.rb +0 -3
- data/lib/mongo/event/publisher.rb +0 -3
- data/lib/mongo/event/subscriber.rb +0 -4
- data/lib/mongo/event.rb +4 -6
- data/lib/mongo/grid/file/chunk.rb +7 -10
- data/lib/mongo/grid/file/info.rb +20 -24
- data/lib/mongo/grid/file.rb +7 -8
- data/lib/mongo/grid/fs_bucket.rb +40 -48
- data/lib/mongo/grid/stream/read.rb +25 -35
- data/lib/mongo/grid/stream/write.rb +17 -22
- data/lib/mongo/grid/stream.rb +2 -4
- data/lib/mongo/grid.rb +0 -1
- data/lib/mongo/id.rb +0 -1
- data/lib/mongo/index/view.rb +68 -58
- data/lib/mongo/index.rb +7 -10
- data/lib/mongo/lint.rb +31 -37
- data/lib/mongo/loggable.rb +5 -8
- data/lib/mongo/logger.rb +1 -7
- data/lib/mongo/monitoring/cmap_log_subscriber.rb +0 -2
- data/lib/mongo/monitoring/command_log_subscriber.rb +25 -33
- data/lib/mongo/monitoring/event/cmap/base.rb +0 -2
- data/lib/mongo/monitoring/event/cmap/connection_check_out_failed.rb +1 -4
- data/lib/mongo/monitoring/event/cmap/connection_check_out_started.rb +0 -3
- data/lib/mongo/monitoring/event/cmap/connection_checked_in.rb +1 -4
- data/lib/mongo/monitoring/event/cmap/connection_checked_out.rb +2 -5
- data/lib/mongo/monitoring/event/cmap/connection_closed.rb +1 -4
- data/lib/mongo/monitoring/event/cmap/connection_created.rb +1 -4
- data/lib/mongo/monitoring/event/cmap/connection_ready.rb +1 -4
- data/lib/mongo/monitoring/event/cmap/pool_cleared.rb +0 -3
- data/lib/mongo/monitoring/event/cmap/pool_closed.rb +1 -4
- data/lib/mongo/monitoring/event/cmap/pool_created.rb +1 -4
- data/lib/mongo/monitoring/event/cmap/pool_ready.rb +1 -4
- data/lib/mongo/monitoring/event/cmap.rb +0 -1
- data/lib/mongo/monitoring/event/command_failed.rb +5 -9
- data/lib/mongo/monitoring/event/command_started.rb +8 -12
- data/lib/mongo/monitoring/event/command_succeeded.rb +7 -15
- data/lib/mongo/monitoring/event/secure.rb +15 -20
- data/lib/mongo/monitoring/event/server_closed.rb +1 -4
- data/lib/mongo/monitoring/event/server_description_changed.rb +4 -8
- data/lib/mongo/monitoring/event/server_heartbeat_failed.rb +5 -10
- data/lib/mongo/monitoring/event/server_heartbeat_started.rb +1 -4
- data/lib/mongo/monitoring/event/server_heartbeat_succeeded.rb +3 -8
- data/lib/mongo/monitoring/event/server_opening.rb +1 -4
- data/lib/mongo/monitoring/event/topology_changed.rb +2 -5
- data/lib/mongo/monitoring/event/topology_closed.rb +1 -4
- data/lib/mongo/monitoring/event/topology_opening.rb +1 -4
- data/lib/mongo/monitoring/event.rb +0 -1
- data/lib/mongo/monitoring/publishable.rb +20 -30
- data/lib/mongo/monitoring/sdam_log_subscriber.rb +0 -2
- data/lib/mongo/monitoring/server_closed_log_subscriber.rb +0 -3
- data/lib/mongo/monitoring/server_description_changed_log_subscriber.rb +0 -3
- data/lib/mongo/monitoring/server_opening_log_subscriber.rb +0 -3
- data/lib/mongo/monitoring/topology_changed_log_subscriber.rb +5 -8
- data/lib/mongo/monitoring/topology_closed_log_subscriber.rb +0 -3
- data/lib/mongo/monitoring/topology_opening_log_subscriber.rb +0 -3
- data/lib/mongo/monitoring/unified_sdam_log_subscriber.rb +1 -3
- data/lib/mongo/monitoring.rb +38 -39
- data/lib/mongo/operation/aggregate/op_msg.rb +0 -2
- data/lib/mongo/operation/aggregate/result.rb +3 -6
- data/lib/mongo/operation/aggregate.rb +0 -2
- data/lib/mongo/operation/collections_info/result.rb +0 -3
- data/lib/mongo/operation/collections_info.rb +0 -2
- data/lib/mongo/operation/command/op_msg.rb +1 -4
- data/lib/mongo/operation/command.rb +0 -2
- data/lib/mongo/operation/context.rb +13 -16
- data/lib/mongo/operation/count/op_msg.rb +2 -4
- data/lib/mongo/operation/count.rb +0 -2
- data/lib/mongo/operation/create/op_msg.rb +2 -5
- data/lib/mongo/operation/create.rb +4 -2
- data/lib/mongo/operation/create_index/op_msg.rb +3 -7
- data/lib/mongo/operation/create_index.rb +0 -2
- data/lib/mongo/operation/create_user/op_msg.rb +2 -4
- data/lib/mongo/operation/create_user.rb +0 -2
- data/lib/mongo/operation/delete/bulk_result.rb +2 -3
- data/lib/mongo/operation/delete/op_msg.rb +3 -10
- data/lib/mongo/operation/delete/result.rb +0 -3
- data/lib/mongo/operation/delete.rb +1 -5
- data/lib/mongo/operation/distinct/op_msg.rb +2 -5
- data/lib/mongo/operation/distinct.rb +0 -2
- data/lib/mongo/operation/drop/op_msg.rb +0 -2
- data/lib/mongo/operation/drop.rb +0 -2
- data/lib/mongo/operation/drop_database/op_msg.rb +0 -2
- data/lib/mongo/operation/drop_database.rb +0 -2
- data/lib/mongo/operation/drop_index/op_msg.rb +4 -6
- data/lib/mongo/operation/drop_index.rb +0 -2
- data/lib/mongo/operation/explain/op_msg.rb +0 -2
- data/lib/mongo/operation/explain/result.rb +0 -3
- data/lib/mongo/operation/explain.rb +0 -2
- data/lib/mongo/operation/find/builder/command.rb +4 -12
- data/lib/mongo/operation/find/builder/flags.rb +9 -15
- data/lib/mongo/operation/find/builder/modifiers.rb +1 -4
- data/lib/mongo/operation/find/builder.rb +0 -1
- data/lib/mongo/operation/find/op_msg.rb +4 -12
- data/lib/mongo/operation/find/result.rb +0 -3
- data/lib/mongo/operation/find.rb +0 -2
- data/lib/mongo/operation/get_more/command_builder.rb +1 -6
- data/lib/mongo/operation/get_more/op_msg.rb +10 -4
- data/lib/mongo/operation/get_more/result.rb +0 -3
- data/lib/mongo/operation/get_more.rb +0 -2
- data/lib/mongo/operation/indexes/op_msg.rb +0 -2
- data/lib/mongo/operation/indexes/result.rb +1 -5
- data/lib/mongo/operation/indexes.rb +0 -2
- data/lib/mongo/operation/insert/bulk_result.rb +2 -6
- data/lib/mongo/operation/insert/op_msg.rb +7 -6
- data/lib/mongo/operation/insert/result.rb +0 -3
- data/lib/mongo/operation/insert.rb +2 -5
- data/lib/mongo/operation/kill_cursors/command_builder.rb +0 -3
- data/lib/mongo/operation/kill_cursors/op_msg.rb +1 -3
- data/lib/mongo/operation/kill_cursors.rb +0 -2
- data/lib/mongo/operation/list_collections/op_msg.rb +4 -6
- data/lib/mongo/operation/list_collections/result.rb +1 -4
- data/lib/mongo/operation/list_collections.rb +0 -2
- data/lib/mongo/operation/map_reduce/op_msg.rb +0 -2
- data/lib/mongo/operation/map_reduce/result.rb +3 -6
- data/lib/mongo/operation/map_reduce.rb +0 -2
- data/lib/mongo/operation/op_msg_base.rb +0 -1
- data/lib/mongo/operation/parallel_scan/op_msg.rb +4 -5
- data/lib/mongo/operation/parallel_scan/result.rb +2 -5
- data/lib/mongo/operation/parallel_scan.rb +0 -2
- data/lib/mongo/operation/remove_user/op_msg.rb +2 -4
- data/lib/mongo/operation/remove_user.rb +0 -2
- data/lib/mongo/operation/result.rb +38 -48
- data/lib/mongo/operation/shared/bypass_document_validation.rb +3 -7
- data/lib/mongo/operation/shared/causal_consistency_supported.rb +0 -3
- data/lib/mongo/operation/shared/executable.rb +29 -31
- data/lib/mongo/operation/shared/executable_no_validate.rb +0 -3
- data/lib/mongo/operation/shared/executable_transaction_label.rb +0 -2
- data/lib/mongo/operation/shared/idable.rb +3 -6
- data/lib/mongo/operation/shared/limited.rb +0 -3
- data/lib/mongo/operation/shared/object_id_generator.rb +0 -3
- data/lib/mongo/operation/shared/op_msg_executable.rb +0 -2
- data/lib/mongo/operation/shared/polymorphic_lookup.rb +0 -2
- data/lib/mongo/operation/shared/polymorphic_result.rb +2 -4
- data/lib/mongo/operation/shared/read_preference_supported.rb +10 -15
- data/lib/mongo/operation/shared/response_handling.rb +13 -26
- data/lib/mongo/operation/shared/result/aggregatable.rb +12 -13
- data/lib/mongo/operation/shared/sessions_supported.rb +87 -99
- data/lib/mongo/operation/shared/specifiable.rb +37 -59
- data/lib/mongo/operation/shared/write.rb +12 -17
- data/lib/mongo/operation/shared/write_concern_supported.rb +4 -7
- data/lib/mongo/operation/update/bulk_result.rb +13 -17
- data/lib/mongo/operation/update/op_msg.rb +2 -5
- data/lib/mongo/operation/update/result.rb +5 -5
- data/lib/mongo/operation/update.rb +1 -5
- data/lib/mongo/operation/update_user/op_msg.rb +2 -4
- data/lib/mongo/operation/update_user.rb +0 -2
- data/lib/mongo/operation/users_info/op_msg.rb +2 -4
- data/lib/mongo/operation/users_info/result.rb +1 -4
- data/lib/mongo/operation/users_info.rb +0 -2
- data/lib/mongo/operation/write_command/op_msg.rb +2 -10
- data/lib/mongo/operation/write_command.rb +0 -2
- data/lib/mongo/operation.rb +9 -14
- data/lib/mongo/options/mapper.rb +8 -15
- data/lib/mongo/options/redacted.rb +7 -9
- data/lib/mongo/options.rb +0 -1
- data/lib/mongo/protocol/bit_vector.rb +3 -5
- data/lib/mongo/protocol/caching_hash.rb +2 -7
- data/lib/mongo/protocol/compressed.rb +5 -10
- data/lib/mongo/protocol/get_more.rb +2 -8
- data/lib/mongo/protocol/kill_cursors.rb +2 -8
- data/lib/mongo/protocol/message.rb +103 -105
- data/lib/mongo/protocol/msg.rb +48 -63
- data/lib/mongo/protocol/query.rb +32 -41
- data/lib/mongo/protocol/registry.rb +2 -5
- data/lib/mongo/protocol/reply.rb +10 -16
- data/lib/mongo/protocol/serializers.rb +41 -59
- data/lib/mongo/protocol.rb +0 -1
- data/lib/mongo/query_cache.rb +7 -15
- data/lib/mongo/retryable/backpressure.rb +31 -0
- data/lib/mongo/retryable/base_worker.rb +39 -13
- data/lib/mongo/retryable/read_worker.rb +77 -21
- data/lib/mongo/retryable/retry_policy.rb +59 -0
- data/lib/mongo/retryable/write_worker.rb +155 -56
- data/lib/mongo/retryable.rb +70 -9
- data/lib/mongo/search_index/view.rb +30 -10
- data/lib/mongo/semaphore.rb +0 -1
- data/lib/mongo/server/app_metadata/environment.rb +3 -3
- data/lib/mongo/server/app_metadata/platform.rb +17 -4
- data/lib/mongo/server/app_metadata.rb +4 -5
- data/lib/mongo/server/connection.rb +79 -61
- data/lib/mongo/server/connection_base.rb +43 -53
- data/lib/mongo/server/connection_common.rb +41 -64
- data/lib/mongo/server/connection_pool/generation_manager.rb +6 -11
- data/lib/mongo/server/connection_pool/populator.rb +1 -4
- data/lib/mongo/server/connection_pool.rb +195 -167
- data/lib/mongo/server/description/features.rb +51 -59
- data/lib/mongo/server/description/load_balancer.rb +0 -2
- data/lib/mongo/server/description.rb +117 -138
- data/lib/mongo/server/monitor/app_metadata.rb +3 -4
- data/lib/mongo/server/monitor/connection.rb +28 -35
- data/lib/mongo/server/monitor.rb +65 -60
- data/lib/mongo/server/pending_connection.rb +70 -71
- data/lib/mongo/server/push_monitor/connection.rb +0 -3
- data/lib/mongo/server/push_monitor.rb +21 -29
- data/lib/mongo/server/round_trip_time_calculator.rb +11 -17
- data/lib/mongo/server.rb +62 -94
- data/lib/mongo/server_selector/base.rb +133 -157
- data/lib/mongo/server_selector/nearest.rb +2 -5
- data/lib/mongo/server_selector/primary.rb +1 -5
- data/lib/mongo/server_selector/primary_preferred.rb +2 -6
- data/lib/mongo/server_selector/secondary.rb +2 -6
- data/lib/mongo/server_selector/secondary_preferred.rb +1 -5
- data/lib/mongo/server_selector.rb +3 -4
- data/lib/mongo/session/server_session.rb +6 -7
- data/lib/mongo/session/session_pool.rb +20 -34
- data/lib/mongo/session.rb +334 -199
- data/lib/mongo/socket/ocsp_cache.rb +8 -13
- data/lib/mongo/socket/ocsp_verifier.rb +69 -70
- data/lib/mongo/socket/ssl.rb +44 -43
- data/lib/mongo/socket/tcp.rb +5 -8
- data/lib/mongo/socket/unix.rb +0 -4
- data/lib/mongo/socket.rb +80 -102
- data/lib/mongo/srv/monitor.rb +10 -11
- data/lib/mongo/srv/resolver.rb +15 -24
- data/lib/mongo/srv/result.rb +25 -21
- data/lib/mongo/srv.rb +0 -1
- data/lib/mongo/timeout.rb +4 -11
- data/lib/mongo/topology_version.rb +8 -13
- data/lib/mongo/tracing/open_telemetry/command_tracer.rb +320 -0
- data/lib/mongo/tracing/open_telemetry/operation_tracer.rb +227 -0
- data/lib/mongo/tracing/open_telemetry/tracer.rb +236 -0
- data/lib/mongo/{error/server_api_not_supported.rb → tracing/open_telemetry.rb} +10 -10
- data/lib/mongo/tracing.rb +42 -0
- data/lib/mongo/uri/options_mapper.rb +135 -126
- data/lib/mongo/uri/srv_protocol.rb +34 -42
- data/lib/mongo/uri.rb +95 -139
- data/lib/mongo/utils.rb +5 -12
- data/lib/mongo/version.rb +1 -1
- data/lib/mongo/write_concern/acknowledged.rb +0 -2
- data/lib/mongo/write_concern/base.rb +6 -6
- data/lib/mongo/write_concern/unacknowledged.rb +0 -2
- data/lib/mongo/write_concern.rb +14 -15
- data/lib/mongo.rb +4 -3
- data/mongo.gemspec +17 -17
- metadata +11 -5
- data/lib/mongo/operation/shared/result/use_legacy_error_parser.rb +0 -32
- data/lib/mongo/operation/shared/validatable.rb +0 -87
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# rubocop:todo all
|
|
3
2
|
|
|
4
3
|
# Copyright (C) 2021 MongoDB Inc.
|
|
5
4
|
#
|
|
@@ -18,23 +17,16 @@
|
|
|
18
17
|
module Mongo
|
|
19
18
|
module Operation
|
|
20
19
|
class WriteCommand
|
|
21
|
-
|
|
22
20
|
# A MongoDB write command operation sent as an op message.
|
|
23
21
|
#
|
|
24
22
|
# @api private
|
|
25
23
|
class OpMsg < OpMsgBase
|
|
26
|
-
include Validatable
|
|
27
|
-
|
|
28
24
|
private
|
|
29
25
|
|
|
30
26
|
def selector(connection)
|
|
31
27
|
super.tap do |selector|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
end
|
|
35
|
-
if wc = spec[:write_concern]
|
|
36
|
-
selector[:writeConcern] = wc.options
|
|
37
|
-
end
|
|
28
|
+
wc = spec[:write_concern]
|
|
29
|
+
selector[:writeConcern] = wc.options if wc
|
|
38
30
|
end
|
|
39
31
|
end
|
|
40
32
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# rubocop:todo all
|
|
3
2
|
|
|
4
3
|
# Copyright (C) 2021 MongoDB Inc.
|
|
5
4
|
#
|
|
@@ -19,7 +18,6 @@ require 'mongo/operation/write_command/op_msg'
|
|
|
19
18
|
|
|
20
19
|
module Mongo
|
|
21
20
|
module Operation
|
|
22
|
-
|
|
23
21
|
# A MongoDB general command operation.
|
|
24
22
|
#
|
|
25
23
|
# @api private
|
data/lib/mongo/operation.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# rubocop:todo all
|
|
3
2
|
|
|
4
3
|
require 'mongo/operation/context'
|
|
5
4
|
require 'mongo/operation/result'
|
|
@@ -19,7 +18,6 @@ require 'mongo/operation/shared/causal_consistency_supported'
|
|
|
19
18
|
require 'mongo/operation/shared/write'
|
|
20
19
|
require 'mongo/operation/shared/idable'
|
|
21
20
|
require 'mongo/operation/shared/specifiable'
|
|
22
|
-
require 'mongo/operation/shared/validatable'
|
|
23
21
|
require 'mongo/operation/shared/object_id_generator'
|
|
24
22
|
require 'mongo/operation/shared/op_msg_executable'
|
|
25
23
|
require 'mongo/operation/shared/timed'
|
|
@@ -28,7 +26,6 @@ require 'mongo/operation/op_msg_base'
|
|
|
28
26
|
require 'mongo/operation/command'
|
|
29
27
|
require 'mongo/operation/write_command'
|
|
30
28
|
require 'mongo/operation/aggregate'
|
|
31
|
-
require 'mongo/operation/result'
|
|
32
29
|
require 'mongo/operation/collections_info'
|
|
33
30
|
require 'mongo/operation/list_collections'
|
|
34
31
|
require 'mongo/operation/update'
|
|
@@ -57,7 +54,6 @@ require 'mongo/operation/drop_search_index'
|
|
|
57
54
|
require 'mongo/operation/update_search_index'
|
|
58
55
|
|
|
59
56
|
module Mongo
|
|
60
|
-
|
|
61
57
|
# This module encapsulates all of the operation classes defined by the driver.
|
|
62
58
|
#
|
|
63
59
|
# The operation classes take Ruby options as constructor parameters.
|
|
@@ -68,51 +64,50 @@ module Mongo
|
|
|
68
64
|
#
|
|
69
65
|
# @api private
|
|
70
66
|
module Operation
|
|
71
|
-
|
|
72
67
|
# The q field constant.
|
|
73
68
|
#
|
|
74
69
|
# @since 2.1.0
|
|
75
|
-
Q = 'q'
|
|
70
|
+
Q = 'q'
|
|
76
71
|
|
|
77
72
|
# The u field constant.
|
|
78
73
|
#
|
|
79
74
|
# @since 2.1.0
|
|
80
|
-
U = 'u'
|
|
75
|
+
U = 'u'
|
|
81
76
|
|
|
82
77
|
# The limit field constant.
|
|
83
78
|
#
|
|
84
79
|
# @since 2.1.0
|
|
85
|
-
LIMIT = 'limit'
|
|
80
|
+
LIMIT = 'limit'
|
|
86
81
|
|
|
87
82
|
# The multi field constant.
|
|
88
83
|
#
|
|
89
84
|
# @since 2.1.0
|
|
90
|
-
MULTI = 'multi'
|
|
85
|
+
MULTI = 'multi'
|
|
91
86
|
|
|
92
87
|
# The upsert field constant.
|
|
93
88
|
#
|
|
94
89
|
# @since 2.1.0
|
|
95
|
-
UPSERT = 'upsert'
|
|
90
|
+
UPSERT = 'upsert'
|
|
96
91
|
|
|
97
92
|
# The collation field constant.
|
|
98
93
|
#
|
|
99
94
|
# @since 2.4.0
|
|
100
|
-
COLLATION = 'collation'
|
|
95
|
+
COLLATION = 'collation'
|
|
101
96
|
|
|
102
97
|
# The array filters field constant.
|
|
103
98
|
#
|
|
104
99
|
# @since 2.5.0
|
|
105
|
-
ARRAY_FILTERS = 'arrayFilters'
|
|
100
|
+
ARRAY_FILTERS = 'arrayFilters'
|
|
106
101
|
|
|
107
102
|
# The operation time field constant.
|
|
108
103
|
#
|
|
109
104
|
# @since 2.5.0
|
|
110
|
-
OPERATION_TIME = 'operationTime'
|
|
105
|
+
OPERATION_TIME = 'operationTime'
|
|
111
106
|
|
|
112
107
|
# The cluster time field constant.
|
|
113
108
|
#
|
|
114
109
|
# @since 2.5.0
|
|
115
110
|
# @deprecated
|
|
116
|
-
CLUSTER_TIME = '$clusterTime'
|
|
111
|
+
CLUSTER_TIME = '$clusterTime'
|
|
117
112
|
end
|
|
118
113
|
end
|
data/lib/mongo/options/mapper.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# rubocop:todo all
|
|
3
2
|
|
|
4
3
|
# Copyright (C) 2015-2020 MongoDB Inc.
|
|
5
4
|
#
|
|
@@ -17,7 +16,6 @@
|
|
|
17
16
|
|
|
18
17
|
module Mongo
|
|
19
18
|
module Options
|
|
20
|
-
|
|
21
19
|
# Utility class for various options mapping behavior.
|
|
22
20
|
#
|
|
23
21
|
# @since 2.0.0
|
|
@@ -42,13 +40,12 @@ module Mongo
|
|
|
42
40
|
def transform(options, mappings)
|
|
43
41
|
map = transform_keys_to_strings(mappings)
|
|
44
42
|
opts = transform_keys_to_strings(options)
|
|
45
|
-
opts.
|
|
43
|
+
opts.each_with_object({}) do |(key, value), transformed|
|
|
46
44
|
if map[key]
|
|
47
45
|
transformed[map[key]] = value
|
|
48
46
|
else
|
|
49
47
|
transformed[key] = value
|
|
50
48
|
end
|
|
51
|
-
transformed
|
|
52
49
|
end
|
|
53
50
|
end
|
|
54
51
|
|
|
@@ -67,14 +64,13 @@ module Mongo
|
|
|
67
64
|
#
|
|
68
65
|
# @since 2.0.0
|
|
69
66
|
def transform_documents(options, mappings, document = BSON::Document.new)
|
|
70
|
-
options.
|
|
67
|
+
options.each_with_object(document) do |(key, value), transformed|
|
|
71
68
|
name = mappings[key]
|
|
72
69
|
transformed[name] = value if name && !value.nil?
|
|
73
|
-
transformed
|
|
74
70
|
end
|
|
75
71
|
end
|
|
76
72
|
|
|
77
|
-
#
|
|
73
|
+
# Converts all the keys of the options to strings.
|
|
78
74
|
#
|
|
79
75
|
# @example Convert all option keys to strings.
|
|
80
76
|
# Mapper.transform({ :name => 1 })
|
|
@@ -85,13 +81,12 @@ module Mongo
|
|
|
85
81
|
#
|
|
86
82
|
# @since 2.0.0
|
|
87
83
|
def transform_keys_to_strings(options)
|
|
88
|
-
options.
|
|
84
|
+
options.each_with_object({}) do |(key, value), transformed|
|
|
89
85
|
transformed[key.to_s] = value
|
|
90
|
-
transformed
|
|
91
86
|
end
|
|
92
87
|
end
|
|
93
88
|
|
|
94
|
-
#
|
|
89
|
+
# Converts all the keys of the options to symbols.
|
|
95
90
|
#
|
|
96
91
|
# @example Convert all option keys to symbols.
|
|
97
92
|
# Mapper.transform({ 'name' => 1 })
|
|
@@ -102,13 +97,12 @@ module Mongo
|
|
|
102
97
|
#
|
|
103
98
|
# @since 2.2.2
|
|
104
99
|
def transform_keys_to_symbols(options)
|
|
105
|
-
options.
|
|
100
|
+
options.each_with_object({}) do |(key, value), transformed|
|
|
106
101
|
transformed[key.to_sym] = value
|
|
107
|
-
transformed
|
|
108
102
|
end
|
|
109
103
|
end
|
|
110
104
|
|
|
111
|
-
#
|
|
105
|
+
# Converts all the symbol values to strings.
|
|
112
106
|
#
|
|
113
107
|
# @example Convert all option symbol values to strings.
|
|
114
108
|
# Mapper.transform({ :name => 1 })
|
|
@@ -119,9 +113,8 @@ module Mongo
|
|
|
119
113
|
#
|
|
120
114
|
# @since 2.0.0
|
|
121
115
|
def transform_values_to_strings(options)
|
|
122
|
-
options.
|
|
116
|
+
options.each_with_object({}) do |(key, value), transformed|
|
|
123
117
|
transformed[key] = value.is_a?(Symbol) ? value.to_s : value
|
|
124
|
-
transformed
|
|
125
118
|
end
|
|
126
119
|
end
|
|
127
120
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# rubocop:todo all
|
|
3
2
|
|
|
4
3
|
# Copyright (C) 2015-2020 MongoDB Inc.
|
|
5
4
|
#
|
|
@@ -17,23 +16,21 @@
|
|
|
17
16
|
|
|
18
17
|
module Mongo
|
|
19
18
|
module Options
|
|
20
|
-
|
|
21
19
|
# Class for wrapping options that could be sensitive.
|
|
22
20
|
# When printed, the sensitive values will be redacted.
|
|
23
21
|
#
|
|
24
22
|
# @since 2.1.0
|
|
25
23
|
class Redacted < BSON::Document
|
|
26
|
-
|
|
27
24
|
# The options whose values will be redacted.
|
|
28
25
|
#
|
|
29
26
|
# @since 2.1.0
|
|
30
|
-
SENSITIVE_OPTIONS = [
|
|
31
|
-
|
|
27
|
+
SENSITIVE_OPTIONS = %i[password
|
|
28
|
+
pwd].freeze
|
|
32
29
|
|
|
33
30
|
# The replacement string used in place of the value for sensitive keys.
|
|
34
31
|
#
|
|
35
32
|
# @since 2.1.0
|
|
36
|
-
STRING_REPLACEMENT = '<REDACTED>'
|
|
33
|
+
STRING_REPLACEMENT = '<REDACTED>'
|
|
37
34
|
|
|
38
35
|
# Get a string representation of the options.
|
|
39
36
|
#
|
|
@@ -66,7 +63,7 @@ module Mongo
|
|
|
66
63
|
def has_key?(key)
|
|
67
64
|
super(convert_key(key))
|
|
68
65
|
end
|
|
69
|
-
|
|
66
|
+
alias key? has_key?
|
|
70
67
|
|
|
71
68
|
# Returns a new options object consisting of pairs for which the block returns false.
|
|
72
69
|
#
|
|
@@ -99,7 +96,7 @@ module Mongo
|
|
|
99
96
|
keys.each do |key|
|
|
100
97
|
delete(key) if yield(key, self[key])
|
|
101
98
|
end
|
|
102
|
-
n_keys == keys.size ? nil : self
|
|
99
|
+
(n_keys == keys.size) ? nil : self
|
|
103
100
|
else
|
|
104
101
|
to_enum
|
|
105
102
|
end
|
|
@@ -136,7 +133,7 @@ module Mongo
|
|
|
136
133
|
keys.each do |key|
|
|
137
134
|
delete(key) unless yield(key, self[key])
|
|
138
135
|
end
|
|
139
|
-
n_keys == keys.size ? nil : self
|
|
136
|
+
(n_keys == keys.size) ? nil : self
|
|
140
137
|
else
|
|
141
138
|
to_enum
|
|
142
139
|
end
|
|
@@ -152,6 +149,7 @@ module Mongo
|
|
|
152
149
|
|
|
153
150
|
def redact(k, v, method)
|
|
154
151
|
return STRING_REPLACEMENT if SENSITIVE_OPTIONS.include?(k.to_sym)
|
|
152
|
+
|
|
155
153
|
v.send(method)
|
|
156
154
|
end
|
|
157
155
|
end
|
data/lib/mongo/options.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# rubocop:todo all
|
|
3
2
|
|
|
4
3
|
# Copyright (C) 2014-2020 MongoDB Inc.
|
|
5
4
|
#
|
|
@@ -24,7 +23,6 @@ module Mongo
|
|
|
24
23
|
#
|
|
25
24
|
# @api private
|
|
26
25
|
class BitVector
|
|
27
|
-
|
|
28
26
|
# Initializes a BitVector with a layout
|
|
29
27
|
#
|
|
30
28
|
# @param layout [ Array<Symbol> ] the array of fields in the bit vector
|
|
@@ -43,9 +41,9 @@ module Mongo
|
|
|
43
41
|
# This option is deprecated and will not be used. It will removed in version 3.0.
|
|
44
42
|
#
|
|
45
43
|
# @return [ String ] Buffer that received the serialized vector
|
|
46
|
-
def serialize(buffer, value,
|
|
44
|
+
def serialize(buffer, value, _validating_keys = nil)
|
|
47
45
|
bits = 0
|
|
48
|
-
value.each { |flag| bits |=
|
|
46
|
+
value.each { |flag| bits |= @masks[flag] || 0 }
|
|
49
47
|
buffer.put_int32(bits)
|
|
50
48
|
end
|
|
51
49
|
|
|
@@ -55,7 +53,7 @@ module Mongo
|
|
|
55
53
|
# @param [ Hash ] options This method does not currently accept any options.
|
|
56
54
|
#
|
|
57
55
|
# @return [ Array<Symbol> ] Flags contained in the vector
|
|
58
|
-
def deserialize(buffer,
|
|
56
|
+
def deserialize(buffer, _options = {})
|
|
59
57
|
vector = buffer.get_int32
|
|
60
58
|
flags = []
|
|
61
59
|
@masks.each do |flag, mask|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# rubocop:todo all
|
|
3
2
|
|
|
4
3
|
# Copyright (C) 2014-2022 MongoDB Inc.
|
|
5
4
|
#
|
|
@@ -17,12 +16,10 @@
|
|
|
17
16
|
|
|
18
17
|
module Mongo
|
|
19
18
|
module Protocol
|
|
20
|
-
|
|
21
19
|
# A Hash that caches the results of #to_bson.
|
|
22
20
|
#
|
|
23
21
|
# @api private
|
|
24
22
|
class CachingHash
|
|
25
|
-
|
|
26
23
|
def initialize(hash)
|
|
27
24
|
@hash = hash
|
|
28
25
|
end
|
|
@@ -41,10 +38,8 @@ module Mongo
|
|
|
41
38
|
# This option is deprecated and will not be used. It will removed in version 3.0.
|
|
42
39
|
#
|
|
43
40
|
# @return [ BSON::ByteBuffer ] The buffer with the encoded object.
|
|
44
|
-
def to_bson(buffer = BSON::ByteBuffer.new,
|
|
45
|
-
|
|
46
|
-
@bytes = @hash.to_bson(BSON::ByteBuffer.new).to_s
|
|
47
|
-
end
|
|
41
|
+
def to_bson(buffer = BSON::ByteBuffer.new, _validating_keys = nil)
|
|
42
|
+
@bytes ||= @hash.to_bson(BSON::ByteBuffer.new).to_s
|
|
48
43
|
buffer.put_bytes(@bytes)
|
|
49
44
|
end
|
|
50
45
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# rubocop:todo all
|
|
3
2
|
|
|
4
3
|
# Copyright (C) 2017-2020 MongoDB Inc.
|
|
5
4
|
#
|
|
@@ -17,7 +16,6 @@
|
|
|
17
16
|
|
|
18
17
|
module Mongo
|
|
19
18
|
module Protocol
|
|
20
|
-
|
|
21
19
|
# MongoDB Wire protocol Compressed message.
|
|
22
20
|
#
|
|
23
21
|
# This is a bi-directional message that compresses another opcode.
|
|
@@ -27,15 +25,14 @@ module Mongo
|
|
|
27
25
|
#
|
|
28
26
|
# @since 2.5.0
|
|
29
27
|
class Compressed < Message
|
|
30
|
-
|
|
31
28
|
# The noop compressor identifier.
|
|
32
|
-
NOOP = 'noop'
|
|
29
|
+
NOOP = 'noop'
|
|
33
30
|
|
|
34
31
|
# The byte signaling that the message has not been compressed (test mode).
|
|
35
32
|
NOOP_BYTE = 0.chr.force_encoding(BSON::BINARY).freeze
|
|
36
33
|
|
|
37
34
|
# The snappy compressor identifier.
|
|
38
|
-
SNAPPY = 'snappy'
|
|
35
|
+
SNAPPY = 'snappy'
|
|
39
36
|
|
|
40
37
|
# The byte signaling that the message has been compressed with snappy.
|
|
41
38
|
SNAPPY_BYTE = 1.chr.force_encoding(BSON::BINARY).freeze
|
|
@@ -48,10 +45,10 @@ module Mongo
|
|
|
48
45
|
# The Zlib compressor identifier.
|
|
49
46
|
#
|
|
50
47
|
# @since 2.5.0
|
|
51
|
-
ZLIB = 'zlib'
|
|
48
|
+
ZLIB = 'zlib'
|
|
52
49
|
|
|
53
50
|
# The zstd compressor identifier.
|
|
54
|
-
ZSTD = 'zstd'
|
|
51
|
+
ZSTD = 'zstd'
|
|
55
52
|
|
|
56
53
|
# The byte signaling that the message has been compressed with zstd.
|
|
57
54
|
ZSTD_BYTE = 3.chr.force_encoding(BSON::BINARY).freeze
|
|
@@ -103,9 +100,7 @@ module Mongo
|
|
|
103
100
|
Message.deserialize_field(message, buf, field)
|
|
104
101
|
end
|
|
105
102
|
end
|
|
106
|
-
if message.is_a?(Msg)
|
|
107
|
-
message.fix_after_deserialization
|
|
108
|
-
end
|
|
103
|
+
message.fix_after_deserialization if message.is_a?(Msg)
|
|
109
104
|
message
|
|
110
105
|
end
|
|
111
106
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# rubocop:todo all
|
|
3
2
|
|
|
4
3
|
# Copyright (C) 2014-2020 MongoDB Inc.
|
|
5
4
|
#
|
|
@@ -17,7 +16,6 @@
|
|
|
17
16
|
|
|
18
17
|
module Mongo
|
|
19
18
|
module Protocol
|
|
20
|
-
|
|
21
19
|
# MongoDB Wire protocol getMore message.
|
|
22
20
|
#
|
|
23
21
|
# This is a client request message that is sent to the server in order
|
|
@@ -29,7 +27,6 @@ module Mongo
|
|
|
29
27
|
#
|
|
30
28
|
# @api semipublic
|
|
31
29
|
class GetMore < Message
|
|
32
|
-
|
|
33
30
|
# Creates a new getMore message
|
|
34
31
|
#
|
|
35
32
|
# @example Get 15 additional documents from cursor 123 in 'xgen.users'.
|
|
@@ -81,8 +78,6 @@ module Mongo
|
|
|
81
78
|
|
|
82
79
|
attr_reader :upconverter
|
|
83
80
|
|
|
84
|
-
private
|
|
85
|
-
|
|
86
81
|
# The operation code required to specify a getMore message.
|
|
87
82
|
# @return [Fixnum] the operation code.
|
|
88
83
|
#
|
|
@@ -104,17 +99,16 @@ module Mongo
|
|
|
104
99
|
# @return [Fixnum] The cursor id to get more documents from.
|
|
105
100
|
field :cursor_id, Int64
|
|
106
101
|
|
|
107
|
-
# Converts legacy getMore messages to the
|
|
102
|
+
# Converts legacy getMore messages to the appropriate OP_COMMAND style
|
|
108
103
|
# message.
|
|
109
104
|
#
|
|
110
105
|
# @since 2.1.0
|
|
111
106
|
class Upconverter
|
|
112
|
-
|
|
113
107
|
# The get more constant.
|
|
114
108
|
#
|
|
115
109
|
# @since 2.2.0
|
|
116
110
|
# @deprecated
|
|
117
|
-
GET_MORE = 'getMore'
|
|
111
|
+
GET_MORE = 'getMore'
|
|
118
112
|
|
|
119
113
|
# @return [ String ] collection The name of the collection.
|
|
120
114
|
attr_reader :collection
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# rubocop:todo all
|
|
3
2
|
|
|
4
3
|
# Copyright (C) 2014-2020 MongoDB Inc.
|
|
5
4
|
#
|
|
@@ -17,7 +16,6 @@
|
|
|
17
16
|
|
|
18
17
|
module Mongo
|
|
19
18
|
module Protocol
|
|
20
|
-
|
|
21
19
|
# MongoDB Wire protocol KillCursors message.
|
|
22
20
|
#
|
|
23
21
|
# This is a client request message that is sent to the server in order
|
|
@@ -25,7 +23,6 @@ module Mongo
|
|
|
25
23
|
#
|
|
26
24
|
# @api semipublic
|
|
27
25
|
class KillCursors < Message
|
|
28
|
-
|
|
29
26
|
# Creates a new KillCursors message
|
|
30
27
|
#
|
|
31
28
|
# @example Kill the cursor on the server with id 1.
|
|
@@ -55,7 +52,7 @@ module Mongo
|
|
|
55
52
|
command_name: 'killCursors',
|
|
56
53
|
database_name: @database,
|
|
57
54
|
command: upconverter.command,
|
|
58
|
-
request_id: request_id
|
|
55
|
+
request_id: request_id
|
|
59
56
|
)
|
|
60
57
|
end
|
|
61
58
|
|
|
@@ -63,8 +60,6 @@ module Mongo
|
|
|
63
60
|
|
|
64
61
|
attr_reader :upconverter
|
|
65
62
|
|
|
66
|
-
private
|
|
67
|
-
|
|
68
63
|
# The operation code required to specify +KillCursors+ message.
|
|
69
64
|
# @return [Fixnum] the operation code.
|
|
70
65
|
#
|
|
@@ -82,12 +77,11 @@ module Mongo
|
|
|
82
77
|
# @return [Array<Fixnum>] Cursors to kill.
|
|
83
78
|
field :cursor_ids, Int64, true
|
|
84
79
|
|
|
85
|
-
# Converts legacy insert messages to the
|
|
80
|
+
# Converts legacy insert messages to the appropriate OP_COMMAND style
|
|
86
81
|
# message.
|
|
87
82
|
#
|
|
88
83
|
# @since 2.1.0
|
|
89
84
|
class Upconverter
|
|
90
|
-
|
|
91
85
|
# @return [ String ] collection The name of the collection.
|
|
92
86
|
attr_reader :collection
|
|
93
87
|
|