Skip to content

Commit 4adcdae

Browse files
committed
cassandra.h: delete never-to-be-implemented functions
There is a set of functions in cassandra.h that are never going to be implemented in the CPP RS Driver. The reasons vary and are described below. These functions are moved to a separate header file, `cassandra_deleted_functions.h`, which is only included by the tests (to allow building them with Rust stubs of those functions). The driver code, as well as the public header `cassandra.h`, do not include `cassandra_deleted_functions.h`, so these functions are effectively removed from the public API. This is the full list of those functions, together with a short description of why they are not planned: **Never to be implemented functions** **Custom types** - `cass_collection_append_custom` - `cass_collection_append_custom_n` - `cass_statement_bind_custom` - `cass_statement_bind_custom_by_name` - `cass_statement_bind_custom_by_name_n` - `cass_statement_bind_custom_n` - `cass_tuple_set_custom` - `cass_tuple_set_custom_n` - `cass_value_get_custom` **DataStax-specific features** - `cass_cluster_set_cloud_secure_connection_bundle` - `cass_cluster_set_cloud_secure_connection_bundle_n` - `cass_cluster_set_cloud_secure_connection_bundle_no_ssl_lib_init` - `cass_cluster_set_cloud_secure_connection_bundle_no_ssl_lib_init_n` - `cass_cluster_set_monitor_reporting_interval` **Deprecated in CPP Driver** - `cass_cluster_set_queue_size_event` - `cass_cluster_set_max_connections_per_host` - `cass_cluster_set_reconnect_wait_time` - `cass_cluster_set_max_concurrent_creation` - `cass_cluster_set_max_concurrent_requests_threshold` - `cass_cluster_set_max_requests_per_flush` - `cass_cluster_set_write_bytes_high_water_mark` - `cass_cluster_set_write_bytes_low_water_mark` - `cass_cluster_set_pending_requests_high_water_mark` - `cass_cluster_set_pending_requests_low_water_mark` - `cass_log_cleanup` - `cass_log_set_queue_size` **Ancient features** - `cass_cluster_set_no_compact` - `cass_cluster_set_use_hostname_resolution` - I see no point in disabling hostname resolution. **Incompatible with the Rust Driver's architecture** - `cass_cluster_set_new_request_ratio` - `cass_cluster_set_max_reusable_write_objects` - `cass_cluster_set_queue_size_io` **Purposely unimplemented** - `cass_statement_add_key_index` - binding values to unprepared statements is risky and unsupported. - `cass_cluster_set_prepare_on_up_or_add_host` - cluster events are unreliable and this optimisation is unlikely to work well. **Request tracing** Explanation: the semantics is weird. CPP Driver waits for tracing info to become available by performing queries to tracing tables with the parameters specified by the following functions. The problem is, **it does not expose** the results of the query; it's the user's responsibility to fetch them themselves again. This is inefficient and real pain. Therefore, we prefer the driver to provide no functionalities regarding server-side tracing, so the user must query tracing tables themselves, than to provide such a weird and incomplete semantics. - `cass_cluster_set_tracing_consistency` - `cass_cluster_set_tracing_max_wait_time` - `cass_cluster_set_tracing_retry_wait_time`
1 parent 8a1ffd9 commit 4adcdae

File tree

7 files changed

+693
-647
lines changed

7 files changed

+693
-647
lines changed

0 commit comments

Comments
 (0)