diff --git a/README.md b/README.md index 601d1366..cb06f117 100644 --- a/README.md +++ b/README.md @@ -153,235 +153,277 @@ The driver inherits almost all the features of C/C++ and Rust drivers, such as: # Limitations -##### Note: This section may be incomplete, so not everything that is not fully supported is mentioned here. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunctionDescription
Statement
cass_statement_bind_custom[by_name]Binding is not implemented for custom types in the Rust driver.
Collection
cass_collection_append_custom[_n]Unimplemented because of the same reasons as binding for statements.
Note: The driver does not check whether the type of the appended value is compatible with the type of the collection items.
User Defined Type
cass_user_type_set_custom[by_name]Unimplemented because of the same reasons as binding for statements.
Note: The driver does not check whether the type of the value being set for a field of the UDT is compatible with the field's actual type.
Metadata
cass_keyspace_meta_is_virtual UDF, Aggregate and Index are not supported in the Rust driver, yet.
cass_table_meta_is_virtual
cass_table_meta_clustering_key_order
cass_materialized_view_meta_clustering_key_order
cass_function_*
cass_aggregate_*
cass_index_*
- -## Unimplemented functions from `cassandra.h` - -#### CassAggregate: -- cass_aggregate_meta_argument_count -- cass_aggregate_meta_argument_type -- cass_aggregate_meta_field_by_name -- cass_aggregate_meta_field_by_name_n -- cass_aggregate_meta_final_func -- cass_aggregate_meta_full_name -- cass_aggregate_meta_init_cond -- cass_aggregate_meta_name -- cass_aggregate_meta_return_type -- cass_aggregate_meta_state_func -- cass_aggregate_meta_state_type - -#### CassAlloc: -- cass_alloc_set_functions - -#### CassAuthenticator: -- cass_authenticator_address -- cass_authenticator_class_name -- cass_authenticator_exchange_data -- cass_authenticator_hostname -- cass_authenticator_response -- cass_authenticator_set_error -- cass_authenticator_set_error_n -- cass_authenticator_set_exchange_data -- cass_authenticator_set_response - -#### CassBatch: -- cass_batch_set_custom_payload -- cass_batch_set_keyspace -- cass_batch_set_keyspace_n - -#### CassCluster: -- cass_cluster_set_authenticator_callbacks -- 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_host_listener_callback -- cass_cluster_set_max_concurrent_creation -- cass_cluster_set_max_concurrent_requests_threshold -- cass_cluster_set_max_connections_per_host -- cass_cluster_set_max_requests_per_flush -- cass_cluster_set_max_reusable_write_objects -- cass_cluster_set_monitor_reporting_interval -- cass_cluster_set_new_request_ratio -- cass_cluster_set_no_compact -- cass_cluster_set_pending_requests_high_water_mark -- cass_cluster_set_pending_requests_low_water_mark -- cass_cluster_set_prepare_on_all_hosts -- cass_cluster_set_prepare_on_up_or_add_host -- cass_cluster_set_queue_size_event -- cass_cluster_set_queue_size_io -- cass_cluster_set_tracing_consistency -- cass_cluster_set_tracing_max_wait_time -- cass_cluster_set_tracing_retry_wait_time -- cass_cluster_set_use_hostname_resolution -- cass_cluster_set_use_randomized_contact_points -- cass_cluster_set_write_bytes_high_water_mark -- cass_cluster_set_write_bytes_low_water_mark - -#### CassCollection: -- cass_collection_append_custom -- cass_collection_append_custom_n - -#### CassColumnMeta: +This section covers all the functions that were present in old cpp-driver but are not present in this driver, and current status / reasons. + +## Not done (yet) + +Functions here are simply not (yet) implemented. We may implement them at some point. +External contributions for those are welcome. + +
+ Index metadata + +Issue: https://github.com/scylladb/cpp-rs-driver/issues/272 +Implementation will need support in Rust Driver first. Issue: https://github.com/scylladb/scylla-rust-driver/issues/1034 + - cass_index_meta_name + - cass_index_meta_options + - cass_index_meta_target + - cass_index_meta_type + - cass_table_meta_index + - cass_table_meta_index_by_name + - cass_table_meta_index_by_name_n + - cass_table_meta_index_count + - cass_iterator_get_index_meta + - cass_iterator_indexes_from_table_meta +
+
+ Custom allocator + +Function: cass_alloc_set_functions +Issue: https://github.com/scylladb/cpp-rs-driver/issues/277 +
+
+ cass_cluster_set_prepare_on_all_hosts + +Issue: https://github.com/scylladb/cpp-rs-driver/issues/278 +Will need Rust Driver support first: https://github.com/scylladb/scylla-rust-driver/issues/1284 +
+
+ cass_session_get_speculative_execution_metrics + +Issue: https://github.com/scylladb/cpp-rs-driver/issues/266 +Will need Rust Driver support first: https://github.com/scylladb/scylla-rust-driver/issues/1041 +
+
+ Clustering key order + +Issue: https://github.com/scylladb/cpp-rs-driver/issues/271 + - cass_materialized_view_meta_clustering_key_order + - cass_table_meta_clustering_key_order +
+
+ Schema version + +Issue: https://github.com/scylladb/cpp-rs-driver/issues/270 +Rust Driver issue: https://github.com/scylladb/scylla-rust-driver/pull/1307 + - cass_schema_meta_snapshot_version + - cass_schema_meta_version +
+
+ Custom authenticator + +Issue: https://github.com/scylladb/cpp-rs-driver/issues/265 + - cass_authenticator_address + - cass_authenticator_class_name + - cass_authenticator_exchange_data + - cass_authenticator_hostname + - cass_authenticator_response + - cass_authenticator_set_error + - cass_authenticator_set_error_n + - cass_authenticator_set_exchange_data + - cass_authenticator_set_response + - cass_cluster_set_authenticator_callbacks +
+
+ cass_cluster_set_use_hostname_resolution + +We need to understand use cases for this, and decide if we want this or not. +Issue: https://github.com/scylladb/cpp-rs-driver/issues/426 +
+ + +## Features not supported by ScyllaDB + +Those functions need features that are not supported by ScyllaDB, or are only experimental. +We will most likely not work on them (until ScyllaDB supports those features), but we +may consider external contributions. + +
+ Custom payload + +ScyllaDB has basically no support for custom payload. +They are only used for Tablets support in drivers: https://github.com/scylladb/scylladb/blob/master/docs/dev/protocol-extensions.md#negotiate-sending-tablets-info-to-the-drivers +Issue: https://github.com/scylladb/cpp-rs-driver/issues/261 +Implementation will need support in Rust Driver first. No issue for that yet. + - cass_custom_payload_free + - cass_custom_payload_new + - cass_custom_payload_remove + - cass_custom_payload_remove_n + - cass_custom_payload_set + - cass_custom_payload_set_n + - cass_future_custom_payload_item + - cass_future_custom_payload_item_count + - cass_batch_set_custom_payload + - cass_statement_set_custom_payload +
+
+ Set keyspace on statement + +This requires CQLv5 protocol, not yet supported by ScyllaDB or Rust Driver. +Issue: https://github.com/scylladb/cpp-rs-driver/issues/279 +Implementation will need support in Rust Driver first. No issue for that yet. + - cass_batch_set_keyspace + - cass_batch_set_keyspace_n + - cass_statement_set_keyspace + - cass_statement_set_keyspace_n +
+
+ UDF metadata + +UDFs are experimental in ScyllaDB +Issue: https://github.com/scylladb/cpp-rs-driver/issues/275 +Implementation will need support in Rust Driver first. Issue: https://github.com/scylladb/scylla-rust-driver/issues/1034 + - cass_function_meta_argument + - cass_function_meta_argument_count + - cass_function_meta_argument_type_by_name + - cass_function_meta_argument_type_by_name_n + - cass_function_meta_body + - cass_function_meta_called_on_null_input + - cass_function_meta_full_name + - cass_function_meta_language + - cass_function_meta_name + - cass_function_meta_return_type + - cass_iterator_functions_from_keyspace_meta + - cass_iterator_get_function_meta + - cass_keyspace_meta_function_by_name + - cass_keyspace_meta_function_by_name_n +
+
+ UDA metadata + +UDAs are experimental in ScyllaDB +Issue: https://github.com/scylladb/cpp-rs-driver/issues/273 +Implementation will need support in Rust Driver first. Issue: https://github.com/scylladb/scylla-rust-driver/issues/1034 + - cass_aggregate_meta_argument_count + - cass_aggregate_meta_argument_type + - cass_aggregate_meta_final_func + - cass_aggregate_meta_full_name + - cass_aggregate_meta_init_cond + - cass_aggregate_meta_name + - cass_aggregate_meta_return_type + - cass_aggregate_meta_state_func + - cass_aggregate_meta_state_type + - cass_iterator_aggregates_from_keyspace_meta + - cass_iterator_get_aggregate_meta + - cass_keyspace_meta_aggregate_by_name + - cass_keyspace_meta_aggregate_by_name_n +
+
+ Table / Keyspace metadata: is_virtual + +Scylla does not have the same system tables that Cassandra exposes this information in. +Issue: https://github.com/scylladb/cpp-rs-driver/issues/268 + - cass_keyspace_meta_is_virtual + - cass_table_meta_is_virtual +
+ +## Not planned + +Functions in this section were intentionally not implemented. +They may be incompatible with driver architecture, deprecated / no-op in the old driver, +or footguns that make no sense. +We do not plan to implement those, unless there is a very good reason to. +If you require some of those functionalities, please open an issue, and we'll discuss how we can solve this. + +
+ Raw metadata accessors + +Those APIs are not really compatible with the driver architecture, implementing it would be difficult. +If you need some of it, please open an issue, so that we can learn about your use case and figure out +how we can address it. +- cass_keyspace_meta_field_by_name +- cass_keyspace_meta_field_by_name_n +- cass_table_meta_field_by_name +- cass_table_meta_field_by_name_n +- cass_materialized_view_meta_field_by_name +- cass_materialized_view_meta_field_by_name_n - cass_column_meta_field_by_name - cass_column_meta_field_by_name_n - -#### CassCustomPayload: -- cass_custom_payload_free -- cass_custom_payload_new -- cass_custom_payload_remove -- cass_custom_payload_remove_n -- cass_custom_payload_set -- cass_custom_payload_set_n - -#### CassFunctionMeta: -- cass_function_meta_argument -- cass_function_meta_argument_count -- cass_function_meta_argument_type_by_name -- cass_function_meta_argument_type_by_name_n -- cass_function_meta_body -- cass_function_meta_body -- cass_function_meta_called_on_null_input -- cass_function_meta_field_by_name -- cass_function_meta_field_by_name_n -- cass_function_meta_full_name -- cass_function_meta_language -- cass_function_meta_name -- cass_function_meta_return_type - -#### CassFuture: -- cass_future_custom_payload_item -- cass_future_custom_payload_item_count - -#### CassIndexMeta: -- cass_index_meta_field_by_name -- cass_index_meta_field_by_name_n -- cass_index_meta_name -- cass_index_meta_options -- cass_index_meta_target -- cass_index_meta_type - -#### CassIterator: -- cass_iterator_aggregates_from_keyspace_meta -- cass_iterator_fields_from_aggregate_meta - cass_iterator_fields_from_column_meta -- cass_iterator_fields_from_function_meta -- cass_iterator_fields_from_index_meta - cass_iterator_fields_from_keyspace_meta - cass_iterator_fields_from_materialized_view_meta - cass_iterator_fields_from_table_meta -- cass_iterator_functions_from_keyspace_meta -- cass_iterator_get_aggregate_meta -- cass_iterator_get_function_meta -- cass_iterator_get_index_meta - cass_iterator_get_meta_field_name - cass_iterator_get_meta_field_value -- cass_iterator_indexes_from_table_meta - -#### CassKeyspaceMeta: -- cass_keyspace_meta_aggregate_by_name -- cass_keyspace_meta_aggregate_by_name_n -- cass_keyspace_meta_field_by_name -- cass_keyspace_meta_field_by_name_n -- cass_keyspace_meta_function_by_name -- cass_keyspace_meta_function_by_name_n -- cass_keyspace_meta_is_virtual - -#### CassMaterializedViewMeta: -- cass_materialized_view_meta_clustering_key_order -- cass_materialized_view_meta_field_by_name -- cass_materialized_view_meta_field_by_name_n - -#### CassSchemaMeta: -- cass_schema_meta_snapshot_version -- cass_schema_meta_version - -#### CassSession: -- cass_session_get_speculative_execution_metrics - -#### CassStatement: -- cass_statement_add_key_index -- cass_statement_bind_custom -- cass_statement_bind_custom_by_name -- cass_statement_bind_custom_by_name_n -- cass_statement_bind_custom_n -- cass_statement_set_custom_payload -- cass_statement_set_keyspace -- cass_statement_set_keyspace_n - -#### CassTableMeta: -- cass_table_meta_clustering_key_order -- cass_table_meta_field_by_name -- cass_table_meta_field_by_name_n -- cass_table_meta_index -- cass_table_meta_index_by_name -- cass_table_meta_index_by_name_n -- cass_table_meta_index_count -- cass_table_meta_is_virtual - -#### CassTuple: -- cass_tuple_set_custom -- cass_tuple_set_custom_n - -#### CassValue: -- cass_value_get_custom +- cass_function_meta_field_by_name +- cass_function_meta_field_by_name_n +- cass_iterator_fields_from_function_meta +- cass_aggregate_meta_field_by_name +- cass_aggregate_meta_field_by_name_n +- cass_iterator_fields_from_aggregate_meta +- cass_index_meta_field_by_name +- cass_index_meta_field_by_name_n +- cass_iterator_fields_from_index_meta +
+
+ Meaningless for our driver + +Because of different architectures of new and old driver, those configurations can't be directly translated. + - cass_cluster_set_max_reusable_write_objects + - cass_cluster_set_new_request_ratio + - cass_cluster_set_queue_size_io +
+
+ Footguns, ancient APIs + +Those API are simply bad in our opinion, and have good replacements. + - cass_statement_add_key_index: Prepared statements should be used instead + - cass_cluster_set_prepare_on_up_or_add_host: Driver automatically reprepares statements, and events are unreliable. + - cass_cluster_set_no_compact: Ancient feature, we see no point in supporting it. +
+
+ Tracing + +Semantics of those functions are really weird. Old driver fetches tracing data in order to wait until it +becomes available, but has no API to expose it to the user, who must fetch the data again. +If some users need tracing APIs, we'll prefer to implement new ones that actually expose tracing info. + - cass_cluster_set_tracing_consistency + - cass_cluster_set_tracing_max_wait_time + - cass_cluster_set_tracing_retry_wait_time +
+
+ "Custom" type + +This is deprecated basically everywhere and has no good use, especially with Scylla. + - 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_user_type_set_custom + - cass_user_type_set_custom_by_name + - cass_user_type_set_custom_by_name_n + - cass_user_type_set_custom_n +
+
+ Deprecated and no-op in old driver + +Those APIs were already deprecated, and not doing anything. We see no reason to keep them. + - cass_cluster_set_max_concurrent_creation + - cass_cluster_set_max_concurrent_requests_threshold + - cass_cluster_set_max_connections_per_host + - cass_cluster_set_max_requests_per_flush + - cass_cluster_set_pending_requests_high_water_mark + - cass_cluster_set_pending_requests_low_water_mark + - cass_cluster_set_queue_size_event + - cass_cluster_set_write_bytes_high_water_mark + - cass_cluster_set_write_bytes_low_water_mark + - cass_log_cleanup + - cass_log_set_queue_size +
+
+ DSE functions + +Our driver doesn't support DSE-exclusive 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 +
# Testing ___ diff --git a/include/cassandra.h b/include/cassandra.h index ebb92f75..526c690b 100644 --- a/include/cassandra.h +++ b/include/cassandra.h @@ -2476,6 +2476,26 @@ CASS_EXPORT void cass_cluster_set_use_schema(CassCluster* cluster, cass_bool_t enabled); +/** + * Enable/Disable retrieving hostnames for IP addresses using reverse IP lookup. + * + * This is useful for authentication (Kerberos) or encryption (SSL) services + * that require a valid hostname for verification. + * + * Default: cass_false (disabled). + * + * @public @memberof CassCluster + * + * @param[in] cluster + * @param[in] enabled + * @return CASS_OK if successful, otherwise an error occurred + * + * @see cass_cluster_set_resolve_timeout() + */ +CASS_EXPORT CassError +cass_cluster_set_use_hostname_resolution(CassCluster* cluster, + cass_bool_t enabled); + /** * Enable/Disable the randomization of the contact points list. * @@ -3230,42 +3250,6 @@ cass_keyspace_meta_aggregate_by_name_n(const CassKeyspaceMeta* keyspace_meta, const char* arguments, size_t arguments_length); -/** - * Gets a metadata field for the provided name. Metadata fields allow direct - * access to the column data found in the underlying "keyspaces" metadata table. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassKeyspaceMeta - * - * @param[in] keyspace_meta - * @param[in] name - * @return A metadata field value. NULL if the field does not exist. - */ -CASS_EXPORT const CassValue* -cass_keyspace_meta_field_by_name(const CassKeyspaceMeta* keyspace_meta, - const char* name); - -/** - * Same as cass_keyspace_meta_field_by_name(), but with lengths for string - * parameters. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassKeyspaceMeta - * - * @param[in] keyspace_meta - * @param[in] name - * @param[in] name_length - * @return same as cass_keyspace_meta_field_by_name() - * - * @see cass_keyspace_meta_field_by_name() - */ -CASS_EXPORT const CassValue* -cass_keyspace_meta_field_by_name_n(const CassKeyspaceMeta* keyspace_meta, - const char* name, - size_t name_length); - /** * Gets the name of the table. * @@ -3537,42 +3521,6 @@ CASS_EXPORT CassClusteringOrder cass_table_meta_clustering_key_order(const CassTableMeta* table_meta, size_t index); -/** - * Gets a metadata field for the provided name. Metadata fields allow direct - * access to the column data found in the underlying "tables" metadata table. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassTableMeta - * - * @param[in] table_meta - * @param[in] name - * @return A metadata field value. NULL if the field does not exist. - */ -CASS_EXPORT const CassValue* -cass_table_meta_field_by_name(const CassTableMeta* table_meta, - const char* name); - -/** - * Same as cass_table_meta_field_by_name(), but with lengths for string - * parameters. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassTableMeta - * - * @param[in] table_meta - * @param[in] name - * @param[in] name_length - * @return same as cass_table_meta_field_by_name() - * - * @see cass_table_meta_field_by_name() - */ -CASS_EXPORT const CassValue* -cass_table_meta_field_by_name_n(const CassTableMeta* table_meta, - const char* name, - size_t name_length); - /** * Gets the column metadata for the provided column name. * @@ -3721,42 +3669,6 @@ CASS_EXPORT CassClusteringOrder cass_materialized_view_meta_clustering_key_order(const CassMaterializedViewMeta* view_meta, size_t index); -/** - * Gets a metadata field for the provided name. Metadata fields allow direct - * access to the column data found in the underlying "views" metadata view. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassMaterializedViewMeta - * - * @param[in] view_meta - * @param[in] name - * @return A metadata field value. NULL if the field does not exist. - */ -CASS_EXPORT const CassValue* -cass_materialized_view_meta_field_by_name(const CassMaterializedViewMeta* view_meta, - const char* name); - -/** - * Same as cass_materialized_view_meta_field_by_name(), but with lengths for string - * parameters. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassMaterializedViewMeta - * - * @param[in] view_meta - * @param[in] name - * @param[in] name_length - * @return same as cass_materialized_view_meta_field_by_name() - * - * @see cass_materialized_view_meta_field_by_name() - */ -CASS_EXPORT const CassValue* -cass_materialized_view_meta_field_by_name_n(const CassMaterializedViewMeta* view_meta, - const char* name, - size_t name_length); - /** * Gets the name of the column. * @@ -3793,42 +3705,6 @@ cass_column_meta_type(const CassColumnMeta* column_meta); CASS_EXPORT const CassDataType* cass_column_meta_data_type(const CassColumnMeta* column_meta); -/** - * Gets a metadata field for the provided name. Metadata fields allow direct - * access to the column data found in the underlying "columns" metadata table. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassColumnMeta - * - * @param[in] column_meta - * @param[in] name - * @return A metadata field value. NULL if the field does not exist. - */ -CASS_EXPORT const CassValue* -cass_column_meta_field_by_name(const CassColumnMeta* column_meta, - const char* name); - -/** - * Same as cass_column_meta_field_by_name(), but with lengths for string - * parameters. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassColumnMeta - * - * @param[in] column_meta - * @param[in] name - * @param[in] name_length - * @return same as cass_column_meta_field_by_name() - * - * @see cass_column_meta_field_by_name() - */ -CASS_EXPORT const CassValue* -cass_column_meta_field_by_name_n(const CassColumnMeta* column_meta, - const char* name, - size_t name_length); - /** * Gets the name of the index. * @@ -3887,42 +3763,6 @@ cass_index_meta_target(const CassIndexMeta* index_meta, CASS_EXPORT const CassValue* cass_index_meta_options(const CassIndexMeta* index_meta); -/** - * Gets a metadata field for the provided name. Metadata fields allow direct - * access to the index data found in the underlying "indexes" metadata table. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassIndexMeta - * - * @param[in] index_meta - * @param[in] name - * @return A metadata field value. NULL if the field does not exist. - */ -CASS_EXPORT const CassValue* -cass_index_meta_field_by_name(const CassIndexMeta* index_meta, - const char* name); - -/** - * Same as cass_index_meta_field_by_name(), but with lengths for string - * parameters. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassIndexMeta - * - * @param[in] index_meta - * @param[in] name - * @param[in] name_length - * @return same as cass_index_meta_field_by_name() - * - * @see cass_index_meta_field_by_name() - */ -CASS_EXPORT const CassValue* -cass_index_meta_field_by_name_n(const CassIndexMeta* index_meta, - const char* name, - size_t name_length); - /** * Gets the name of the function. * @@ -4084,42 +3924,6 @@ cass_function_meta_argument_type_by_name_n(const CassFunctionMeta* function_meta CASS_EXPORT const CassDataType* cass_function_meta_return_type(const CassFunctionMeta* function_meta); -/** - * Gets a metadata field for the provided name. Metadata fields allow direct - * access to the column data found in the underlying "functions" metadata table. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassFunctionMeta - * - * @param[in] function_meta - * @param[in] name - * @return A metadata field value. NULL if the field does not exist. - */ -CASS_EXPORT const CassValue* -cass_function_meta_field_by_name(const CassFunctionMeta* function_meta, - const char* name); - -/** - * Same as cass_function_meta_field_by_name(), but with lengths for string - * parameters. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassFunctionMeta - * - * @param[in] function_meta - * @param[in] name - * @param[in] name_length - * @return same as cass_function_meta_field_by_name() - * - * @see cass_function_meta_field_by_name() - */ -CASS_EXPORT const CassValue* -cass_function_meta_field_by_name_n(const CassFunctionMeta* function_meta, - const char* name, - size_t name_length); - /** * Gets the name of the aggregate. * @@ -4250,42 +4054,6 @@ cass_aggregate_meta_final_func(const CassAggregateMeta* aggregate_meta); CASS_EXPORT const CassValue* cass_aggregate_meta_init_cond(const CassAggregateMeta* aggregate_meta); -/** - * Gets a metadata field for the provided name. Metadata fields allow direct - * access to the column data found in the underlying "aggregates" metadata table. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassAggregateMeta - * - * @param[in] aggregate_meta - * @param[in] name - * @return A metadata field value. NULL if the field does not exist. - */ -CASS_EXPORT const CassValue* -cass_aggregate_meta_field_by_name(const CassAggregateMeta* aggregate_meta, - const char* name); - -/** - * Same as cass_aggregate_meta_field_by_name(), but with lengths for string - * parameters. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassAggregateMeta - * - * @param[in] aggregate_meta - * @param[in] name - * @param[in] name_length - * @return same as cass_aggregate_meta_field_by_name() - * - * @see cass_aggregate_meta_field_by_name() - */ -CASS_EXPORT const CassValue* -cass_aggregate_meta_field_by_name_n(const CassAggregateMeta* aggregate_meta, - const char* name, - size_t name_length); - /*********************************************************************************** * * SSL @@ -8203,94 +7971,6 @@ cass_user_type_set_bytes_by_name_n(CassUserType* user_type, const cass_byte_t* value, size_t value_size); -/** - * Sets a "custom" in a user defined type at the specified index. - * - * @public @memberof CassUserType - * - * @param[in] user_type - * @param[in] index - * @param[in] class_name - * @param[in] value - * @param[in] value_size - * @return CASS_OK if successful, otherwise an error occurred. - */ -CASS_EXPORT CassError -cass_user_type_set_custom(CassUserType* user_type, - size_t index, - const char* class_name, - const cass_byte_t* value, - size_t value_size); - -/** - * Same as cass_user_type_set_custom(), but with lengths for string - * parameters. - * - * @public @memberof CassUserType - * - * @param[in] user_type - * @param[in] index - * @param[in] class_name - * @param[in] class_name_length - * @param[in] value - * @param[in] value_size - * @return same as cass_user_type_set_custom() - * - * @see cass_user_type_set_custom() - */ -CASS_EXPORT CassError -cass_user_type_set_custom_n(CassUserType* user_type, - size_t index, - const char* class_name, - size_t class_name_length, - const cass_byte_t* value, - size_t value_size); - -/** - * Sets a "custom" in a user defined type at the specified name. - * - * @public @memberof CassUserType - * - * @param[in] user_type - * @param[in] name - * @param[in] class_name - * @param[in] value - * @param[in] value_size - * @return CASS_OK if successful, otherwise an error occurred. - */ -CASS_EXPORT CassError -cass_user_type_set_custom_by_name(CassUserType* user_type, - const char* name, - const char* class_name, - const cass_byte_t* value, - size_t value_size); - -/** - * Same as cass_user_type_set_custom_by_name(), but with lengths for string - * parameters. - * - * @public @memberof CassUserType - * - * @param[in] user_type - * @param[in] name - * @param[in] name_length - * @param[in] class_name - * @param[in] class_name_length - * @param[in] value - * @param[in] value_size - * @return same as cass_user_type_set_custom_by_name() - * - * @see cass_user_type_set_custom_by_name() - */ -CASS_EXPORT CassError -cass_user_type_set_custom_by_name_n(CassUserType* user_type, - const char* name, - size_t name_length, - const char* class_name, - size_t class_name_length, - const cass_byte_t* value, - size_t value_size); - /** * Sets a "uuid" or "timeuuid" in a user defined type at the specified index. * @@ -9242,26 +8922,6 @@ cass_iterator_functions_from_keyspace_meta(const CassKeyspaceMeta* keyspace_meta CASS_EXPORT CassIterator* cass_iterator_aggregates_from_keyspace_meta(const CassKeyspaceMeta* keyspace_meta); -/** - * Creates a new fields iterator for the specified keyspace metadata. Metadata - * fields allow direct access to the column data found in the underlying - * "keyspaces" metadata table. This can be used to iterate those metadata - * field entries. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassKeyspaceMeta - * - * @param[in] keyspace_meta - * @return A new iterator that must be freed. - * - * @see cass_iterator_get_meta_field_name() - * @see cass_iterator_get_meta_field_value() - * @see cass_iterator_free() - */ -CASS_EXPORT CassIterator* -cass_iterator_fields_from_keyspace_meta(const CassKeyspaceMeta* keyspace_meta); - /** * Creates a new iterator for the specified table metadata. * This can be used to iterate over columns. @@ -9309,26 +8969,6 @@ cass_iterator_indexes_from_table_meta(const CassTableMeta* table_meta); CASS_EXPORT CassIterator* cass_iterator_materialized_views_from_table_meta(const CassTableMeta* table_meta); -/** - * Creates a new fields iterator for the specified table metadata. Metadata - * fields allow direct access to the column data found in the underlying - * "tables" metadata table. This can be used to iterate those metadata - * field entries. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassTableMeta - * - * @param[in] table_meta - * @return A new iterator that must be freed. - * - * @see cass_iterator_get_meta_field_name() - * @see cass_iterator_get_meta_field_value() - * @see cass_iterator_free() - */ -CASS_EXPORT CassIterator* -cass_iterator_fields_from_table_meta(const CassTableMeta* table_meta); - /** * Creates a new iterator for the specified materialized view metadata. * This can be used to iterate over columns. @@ -9344,104 +8984,6 @@ cass_iterator_fields_from_table_meta(const CassTableMeta* table_meta); CASS_EXPORT CassIterator* cass_iterator_columns_from_materialized_view_meta(const CassMaterializedViewMeta* view_meta); -/** - * Creates a new fields iterator for the specified materialized view metadata. - * Metadata fields allow direct access to the column data found in the - * underlying "views" metadata view. This can be used to iterate those metadata - * field entries. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassMaterializedViewMeta - * - * @param[in] view_meta - * @return A new iterator that must be freed. - * - * @see cass_iterator_get_meta_field_name() - * @see cass_iterator_get_meta_field_value() - * @see cass_iterator_free() - */ -CASS_EXPORT CassIterator* -cass_iterator_fields_from_materialized_view_meta(const CassMaterializedViewMeta* view_meta); - -/** - * Creates a new fields iterator for the specified column metadata. Metadata - * fields allow direct access to the column data found in the underlying - * "columns" metadata table. This can be used to iterate those metadata - * field entries. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassColumnMeta - * - * @param[in] column_meta - * @return A new iterator that must be freed. - * - * @see cass_iterator_get_meta_field_name() - * @see cass_iterator_get_meta_field_value() - * @see cass_iterator_free() - */ -CASS_EXPORT CassIterator* -cass_iterator_fields_from_column_meta(const CassColumnMeta* column_meta); - -/** - * Creates a new fields iterator for the specified index metadata. Metadata - * fields allow direct access to the index data found in the underlying - * "indexes" metadata table. This can be used to iterate those metadata - * field entries. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassIndexMeta - * - * @param[in] index_meta - * @return A new iterator that must be freed. - * - * @see cass_iterator_get_meta_field_name() - * @see cass_iterator_get_meta_field_value() - * @see cass_iterator_free() - */ -CASS_EXPORT CassIterator* -cass_iterator_fields_from_index_meta(const CassIndexMeta* index_meta); - -/** - * Creates a new fields iterator for the specified function metadata. Metadata - * fields allow direct access to the column data found in the underlying - * "functions" metadata table. This can be used to iterate those metadata - * field entries. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassFunctionMeta - * - * @param[in] function_meta - * @return A new iterator that must be freed. - * - * @see cass_iterator_get_meta_field() - * @see cass_iterator_free() - */ -CASS_EXPORT CassIterator* -cass_iterator_fields_from_function_meta(const CassFunctionMeta* function_meta); - -/** - * Creates a new fields iterator for the specified aggregate metadata. Metadata - * fields allow direct access to the column data found in the underlying - * "aggregates" metadata table. This can be used to iterate those metadata - * field entries. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassAggregateMeta - * - * @param[in] aggregate_meta - * @return A new iterator that must be freed. - * - * @see cass_iterator_get_meta_field() - * @see cass_iterator_free() - */ -CASS_EXPORT CassIterator* -cass_iterator_fields_from_aggregate_meta(const CassAggregateMeta* aggregate_meta); - /** * Advance the iterator to the next row, column or collection item. * @@ -9674,42 +9216,6 @@ cass_iterator_get_column_meta(const CassIterator* iterator); CASS_EXPORT const CassIndexMeta* cass_iterator_get_index_meta(const CassIterator* iterator); -/** - * Gets the metadata field name at the iterator's current position. - * - * Calling cass_iterator_next() will invalidate the previous - * value returned by this method. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassIterator - * - * @param[in] iterator - * @param[out] name - * @param[out] name_length - * @return CASS_OK if successful, otherwise error occurred - */ -CASS_EXPORT CassError -cass_iterator_get_meta_field_name(const CassIterator* iterator, - const char** name, - size_t* name_length); - -/** - * Gets the metadata field value at the iterator's current position. - * - * Calling cass_iterator_next() will invalidate the previous - * value returned by this method. - * - * Warning: This function is not yet implemented. - * - * @public @memberof CassIterator - * - * @param[in] iterator - * @return A metadata field value - */ -CASS_EXPORT const CassValue* -cass_iterator_get_meta_field_value(const CassIterator* iterator); - /*********************************************************************************** * * Row diff --git a/include/cassandra_deleted_functions.h b/include/cassandra_deleted_functions.h index d1fbb1f6..ea64ca24 100644 --- a/include/cassandra_deleted_functions.h +++ b/include/cassandra_deleted_functions.h @@ -300,26 +300,6 @@ CASS_EXPORT CassError cass_cluster_set_no_compact(CassCluster* cluster, cass_bool_t enabled); -/** - * Enable/Disable retrieving hostnames for IP addresses using reverse IP lookup. - * - * This is useful for authentication (Kerberos) or encryption (SSL) services - * that require a valid hostname for verification. - * - * Default: cass_false (disabled). - * - * @public @memberof CassCluster - * - * @param[in] cluster - * @param[in] enabled - * @return CASS_OK if successful, otherwise an error occurred - * - * @see cass_cluster_set_resolve_timeout() - */ -CASS_EXPORT CassError -cass_cluster_set_use_hostname_resolution(CassCluster* cluster, - cass_bool_t enabled); - /* Functions deprecated by the CPP Driver, which would do nothing even there. */ @@ -683,6 +663,520 @@ cass_cluster_set_prepare_on_up_or_add_host(CassCluster* cluster, cass_cluster_set_tracing_consistency(CassCluster* cluster, CassConsistency consistency); + /** + * Sets a "custom" in a user defined type at the specified index. + * + * @public @memberof CassUserType + * + * @param[in] user_type + * @param[in] index + * @param[in] class_name + * @param[in] value + * @param[in] value_size + * @return CASS_OK if successful, otherwise an error occurred. + */ + CASS_EXPORT CassError + cass_user_type_set_custom(CassUserType* user_type, + size_t index, + const char* class_name, + const cass_byte_t* value, + size_t value_size); + + /** + * Same as cass_user_type_set_custom(), but with lengths for string + * parameters. + * + * @public @memberof CassUserType + * + * @param[in] user_type + * @param[in] index + * @param[in] class_name + * @param[in] class_name_length + * @param[in] value + * @param[in] value_size + * @return same as cass_user_type_set_custom() + * + * @see cass_user_type_set_custom() + */ + CASS_EXPORT CassError + cass_user_type_set_custom_n(CassUserType* user_type, + size_t index, + const char* class_name, + size_t class_name_length, + const cass_byte_t* value, + size_t value_size); + + /** + * Sets a "custom" in a user defined type at the specified name. + * + * @public @memberof CassUserType + * + * @param[in] user_type + * @param[in] name + * @param[in] class_name + * @param[in] value + * @param[in] value_size + * @return CASS_OK if successful, otherwise an error occurred. + */ + CASS_EXPORT CassError + cass_user_type_set_custom_by_name(CassUserType* user_type, + const char* name, + const char* class_name, + const cass_byte_t* value, + size_t value_size); + + /** + * Same as cass_user_type_set_custom_by_name(), but with lengths for string + * parameters. + * + * @public @memberof CassUserType + * + * @param[in] user_type + * @param[in] name + * @param[in] name_length + * @param[in] class_name + * @param[in] class_name_length + * @param[in] value + * @param[in] value_size + * @return same as cass_user_type_set_custom_by_name() + * + * @see cass_user_type_set_custom_by_name() + */ + CASS_EXPORT CassError + cass_user_type_set_custom_by_name_n(CassUserType* user_type, + const char* name, + size_t name_length, + const char* class_name, + size_t class_name_length, + const cass_byte_t* value, + size_t value_size); + + /** + * Gets a metadata field for the provided name. Metadata fields allow direct + * access to the column data found in the underlying "keyspaces" metadata table. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassKeyspaceMeta + * + * @param[in] keyspace_meta + * @param[in] name + * @return A metadata field value. NULL if the field does not exist. + */ + CASS_EXPORT const CassValue* + cass_keyspace_meta_field_by_name(const CassKeyspaceMeta* keyspace_meta, + const char* name); + + /** + * Same as cass_keyspace_meta_field_by_name(), but with lengths for string + * parameters. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassKeyspaceMeta + * + * @param[in] keyspace_meta + * @param[in] name + * @param[in] name_length + * @return same as cass_keyspace_meta_field_by_name() + * + * @see cass_keyspace_meta_field_by_name() + */ + CASS_EXPORT const CassValue* + cass_keyspace_meta_field_by_name_n(const CassKeyspaceMeta* keyspace_meta, + const char* name, + size_t name_length); + + /** + * Gets a metadata field for the provided name. Metadata fields allow direct + * access to the column data found in the underlying "tables" metadata table. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassTableMeta + * + * @param[in] table_meta + * @param[in] name + * @return A metadata field value. NULL if the field does not exist. + */ + CASS_EXPORT const CassValue* + cass_table_meta_field_by_name(const CassTableMeta* table_meta, + const char* name); + + /** + * Same as cass_table_meta_field_by_name(), but with lengths for string + * parameters. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassTableMeta + * + * @param[in] table_meta + * @param[in] name + * @param[in] name_length + * @return same as cass_table_meta_field_by_name() + * + * @see cass_table_meta_field_by_name() + */ + CASS_EXPORT const CassValue* + cass_table_meta_field_by_name_n(const CassTableMeta* table_meta, + const char* name, + size_t name_length); + + /** + * Gets a metadata field for the provided name. Metadata fields allow direct + * access to the column data found in the underlying "views" metadata view. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassMaterializedViewMeta + * + * @param[in] view_meta + * @param[in] name + * @return A metadata field value. NULL if the field does not exist. + */ + CASS_EXPORT const CassValue* + cass_materialized_view_meta_field_by_name(const CassMaterializedViewMeta* view_meta, + const char* name); + + /** + * Same as cass_materialized_view_meta_field_by_name(), but with lengths for string + * parameters. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassMaterializedViewMeta + * + * @param[in] view_meta + * @param[in] name + * @param[in] name_length + * @return same as cass_materialized_view_meta_field_by_name() + * + * @see cass_materialized_view_meta_field_by_name() + */ + CASS_EXPORT const CassValue* + cass_materialized_view_meta_field_by_name_n(const CassMaterializedViewMeta* view_meta, + const char* name, + size_t name_length); + + /** + * Gets a metadata field for the provided name. Metadata fields allow direct + * access to the column data found in the underlying "columns" metadata table. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassColumnMeta + * + * @param[in] column_meta + * @param[in] name + * @return A metadata field value. NULL if the field does not exist. + */ + CASS_EXPORT const CassValue* + cass_column_meta_field_by_name(const CassColumnMeta* column_meta, + const char* name); + + /** + * Same as cass_column_meta_field_by_name(), but with lengths for string + * parameters. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassColumnMeta + * + * @param[in] column_meta + * @param[in] name + * @param[in] name_length + * @return same as cass_column_meta_field_by_name() + * + * @see cass_column_meta_field_by_name() + */ + CASS_EXPORT const CassValue* + cass_column_meta_field_by_name_n(const CassColumnMeta* column_meta, + const char* name, + size_t name_length); + + /** + * Creates a new fields iterator for the specified column metadata. Metadata + * fields allow direct access to the column data found in the underlying + * "columns" metadata table. This can be used to iterate those metadata + * field entries. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassColumnMeta + * + * @param[in] column_meta + * @return A new iterator that must be freed. + * + * @see cass_iterator_get_meta_field_name() + * @see cass_iterator_get_meta_field_value() + * @see cass_iterator_free() + */ + CASS_EXPORT CassIterator* + cass_iterator_fields_from_column_meta(const CassColumnMeta* column_meta); + + /** + * Creates a new fields iterator for the specified keyspace metadata. Metadata + * fields allow direct access to the column data found in the underlying + * "keyspaces" metadata table. This can be used to iterate those metadata + * field entries. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassKeyspaceMeta + * + * @param[in] keyspace_meta + * @return A new iterator that must be freed. + * + * @see cass_iterator_get_meta_field_name() + * @see cass_iterator_get_meta_field_value() + * @see cass_iterator_free() + */ + CASS_EXPORT CassIterator* + cass_iterator_fields_from_keyspace_meta(const CassKeyspaceMeta* keyspace_meta); + + /** + * Creates a new fields iterator for the specified materialized view metadata. + * Metadata fields allow direct access to the column data found in the + * underlying "views" metadata view. This can be used to iterate those metadata + * field entries. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassMaterializedViewMeta + * + * @param[in] view_meta + * @return A new iterator that must be freed. + * + * @see cass_iterator_get_meta_field_name() + * @see cass_iterator_get_meta_field_value() + * @see cass_iterator_free() + */ + CASS_EXPORT CassIterator* + cass_iterator_fields_from_materialized_view_meta(const CassMaterializedViewMeta* view_meta); + + /** + * Creates a new fields iterator for the specified table metadata. Metadata + * fields allow direct access to the column data found in the underlying + * "tables" metadata table. This can be used to iterate those metadata + * field entries. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassTableMeta + * + * @param[in] table_meta + * @return A new iterator that must be freed. + * + * @see cass_iterator_get_meta_field_name() + * @see cass_iterator_get_meta_field_value() + * @see cass_iterator_free() + */ + CASS_EXPORT CassIterator* + cass_iterator_fields_from_table_meta(const CassTableMeta* table_meta); + + /** + * Gets the metadata field name at the iterator's current position. + * + * Calling cass_iterator_next() will invalidate the previous + * value returned by this method. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassIterator + * + * @param[in] iterator + * @param[out] name + * @param[out] name_length + * @return CASS_OK if successful, otherwise error occurred + */ + CASS_EXPORT CassError + cass_iterator_get_meta_field_name(const CassIterator* iterator, + const char** name, + size_t* name_length); + + /** + * Gets the metadata field value at the iterator's current position. + * + * Calling cass_iterator_next() will invalidate the previous + * value returned by this method. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassIterator + * + * @param[in] iterator + * @return A metadata field value + */ + CASS_EXPORT const CassValue* + cass_iterator_get_meta_field_value(const CassIterator* iterator); + + /** + * Gets a metadata field for the provided name. Metadata fields allow direct + * access to the column data found in the underlying "functions" metadata table. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassFunctionMeta + * + * @param[in] function_meta + * @param[in] name + * @return A metadata field value. NULL if the field does not exist. + */ + CASS_EXPORT const CassValue* + cass_function_meta_field_by_name(const CassFunctionMeta* function_meta, + const char* name); + + /** + * Same as cass_function_meta_field_by_name(), but with lengths for string + * parameters. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassFunctionMeta + * + * @param[in] function_meta + * @param[in] name + * @param[in] name_length + * @return same as cass_function_meta_field_by_name() + * + * @see cass_function_meta_field_by_name() + */ + CASS_EXPORT const CassValue* + cass_function_meta_field_by_name_n(const CassFunctionMeta* function_meta, + const char* name, + size_t name_length); + + /** + * Creates a new fields iterator for the specified function metadata. Metadata + * fields allow direct access to the column data found in the underlying + * "functions" metadata table. This can be used to iterate those metadata + * field entries. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassFunctionMeta + * + * @param[in] function_meta + * @return A new iterator that must be freed. + * + * @see cass_iterator_get_meta_field() + * @see cass_iterator_free() + */ + CASS_EXPORT CassIterator* + cass_iterator_fields_from_function_meta(const CassFunctionMeta* function_meta); + + /** + * Gets a metadata field for the provided name. Metadata fields allow direct + * access to the column data found in the underlying "aggregates" metadata table. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassAggregateMeta + * + * @param[in] aggregate_meta + * @param[in] name + * @return A metadata field value. NULL if the field does not exist. + */ + CASS_EXPORT const CassValue* + cass_aggregate_meta_field_by_name(const CassAggregateMeta* aggregate_meta, + const char* name); + + /** + * Same as cass_aggregate_meta_field_by_name(), but with lengths for string + * parameters. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassAggregateMeta + * + * @param[in] aggregate_meta + * @param[in] name + * @param[in] name_length + * @return same as cass_aggregate_meta_field_by_name() + * + * @see cass_aggregate_meta_field_by_name() + */ + CASS_EXPORT const CassValue* + cass_aggregate_meta_field_by_name_n(const CassAggregateMeta* aggregate_meta, + const char* name, + size_t name_length); + + /** + * Creates a new fields iterator for the specified aggregate metadata. Metadata + * fields allow direct access to the column data found in the underlying + * "aggregates" metadata table. This can be used to iterate those metadata + * field entries. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassAggregateMeta + * + * @param[in] aggregate_meta + * @return A new iterator that must be freed. + * + * @see cass_iterator_get_meta_field() + * @see cass_iterator_free() + */ + CASS_EXPORT CassIterator* + cass_iterator_fields_from_aggregate_meta(const CassAggregateMeta* aggregate_meta); + + /** + * Gets a metadata field for the provided name. Metadata fields allow direct + * access to the index data found in the underlying "indexes" metadata table. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassIndexMeta + * + * @param[in] index_meta + * @param[in] name + * @return A metadata field value. NULL if the field does not exist. + */ + CASS_EXPORT const CassValue* + cass_index_meta_field_by_name(const CassIndexMeta* index_meta, + const char* name); + + /** + * Same as cass_index_meta_field_by_name(), but with lengths for string + * parameters. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassIndexMeta + * + * @param[in] index_meta + * @param[in] name + * @param[in] name_length + * @return same as cass_index_meta_field_by_name() + * + * @see cass_index_meta_field_by_name() + */ + CASS_EXPORT const CassValue* + cass_index_meta_field_by_name_n(const CassIndexMeta* index_meta, + const char* name, + size_t name_length); + + /** + * Creates a new fields iterator for the specified index metadata. Metadata + * fields allow direct access to the index data found in the underlying + * "indexes" metadata table. This can be used to iterate those metadata + * field entries. + * + * Warning: This function is not yet implemented. + * + * @public @memberof CassIndexMeta + * + * @param[in] index_meta + * @return A new iterator that must be freed. + * + * @see cass_iterator_get_meta_field_name() + * @see cass_iterator_get_meta_field_value() + * @see cass_iterator_free() + */ + CASS_EXPORT CassIterator* + cass_iterator_fields_from_index_meta(const CassIndexMeta* index_meta); + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/scylla-rust-wrapper/src/api.rs b/scylla-rust-wrapper/src/api.rs index be9387c7..f8ea485e 100644 --- a/scylla-rust-wrapper/src/api.rs +++ b/scylla-rust-wrapper/src/api.rs @@ -111,7 +111,6 @@ pub mod cluster { // cass_cluster_set_prepare_on_all_hosts, UNIMPLEMENTED // cass_cluster_set_prepare_on_up_or_add_host, UNIMPLEMENTED cass_cluster_set_protocol_version, - cass_cluster_set_queue_size_event, // No-op both in CPP and in the wrapper. // cass_cluster_set_queue_size_io, UNIMPLEMENTED cass_cluster_set_reconnect_wait_time, cass_cluster_set_request_timeout, diff --git a/scylla-rust-wrapper/src/cluster.rs b/scylla-rust-wrapper/src/cluster.rs index 7e3c3dd0..5a4756b3 100644 --- a/scylla-rust-wrapper/src/cluster.rs +++ b/scylla-rust-wrapper/src/cluster.rs @@ -1185,15 +1185,6 @@ pub unsafe extern "C" fn cass_cluster_set_protocol_version( } } -#[unsafe(no_mangle)] -pub extern "C" fn cass_cluster_set_queue_size_event( - _cluster: CassBorrowedExclusivePtr, - _queue_size: c_uint, -) -> CassError { - // In Cpp Driver this function is also a no-op... - CassError::CASS_OK -} - #[unsafe(no_mangle)] pub unsafe extern "C" fn cass_cluster_set_constant_speculative_execution_policy( cluster_raw: CassBorrowedExclusivePtr,