From 0eeb7c76cb3a8abea1a57f9bd5c93911ebbddfb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Bary=C5=82a?= Date: Wed, 25 Feb 2026 12:26:03 +0100 Subject: [PATCH 1/5] cluster: Remove cass_cluster_set_queue_size_event This function was deprecated and no-op in cpp-driver. We removed it from cassandra.h before, so it makes no sense to keep it. --- scylla-rust-wrapper/src/api.rs | 1 - scylla-rust-wrapper/src/cluster.rs | 9 --------- 2 files changed, 10 deletions(-) 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, From aa9c2a0ca7b9ef8fcd15c09d523d1644d88d14eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Bary=C5=82a?= Date: Wed, 25 Feb 2026 13:08:22 +0100 Subject: [PATCH 2/5] cass_user_type_set_custom*: Move to unimplemented We are not planning to implement those, or any other function related to custom types. Others were already moved to unimplemented, this one was forgotten. --- include/cassandra.h | 88 --------------------------- include/cassandra_deleted_functions.h | 88 +++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 88 deletions(-) diff --git a/include/cassandra.h b/include/cassandra.h index ebb92f75..bbe61370 100644 --- a/include/cassandra.h +++ b/include/cassandra.h @@ -8203,94 +8203,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. * diff --git a/include/cassandra_deleted_functions.h b/include/cassandra_deleted_functions.h index d1fbb1f6..b788adec 100644 --- a/include/cassandra_deleted_functions.h +++ b/include/cassandra_deleted_functions.h @@ -683,6 +683,94 @@ 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); + #ifdef __cplusplus } /* extern "C" */ #endif From 6fed3f8da0d9110656f0c1824c58e80201d05610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Bary=C5=82a?= Date: Wed, 25 Feb 2026 16:03:56 +0100 Subject: [PATCH 3/5] cass_cluster_set_use_hostname_resolution: Move back to cassandra.h Reasoning for removal was imo flawed because of misleading name. We should make sure that we want to remove this. Relevant issue: https://github.com/scylladb/cpp-rs-driver/issues/426 --- include/cassandra.h | 20 ++++++++++++++++++++ include/cassandra_deleted_functions.h | 20 -------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/include/cassandra.h b/include/cassandra.h index bbe61370..97e910e8 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. * diff --git a/include/cassandra_deleted_functions.h b/include/cassandra_deleted_functions.h index b788adec..f649529b 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. */ From c6792a64f31bb5424a19f8e5c3e12cc7c67ccb3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Bary=C5=82a?= Date: Wed, 25 Feb 2026 16:12:29 +0100 Subject: [PATCH 4/5] Move raw metadata accessors to deleted functions We do not plan to implement them. --- include/cassandra.h | 426 -------------------------- include/cassandra_deleted_functions.h | 426 ++++++++++++++++++++++++++ 2 files changed, 426 insertions(+), 426 deletions(-) diff --git a/include/cassandra.h b/include/cassandra.h index 97e910e8..526c690b 100644 --- a/include/cassandra.h +++ b/include/cassandra.h @@ -3250,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. * @@ -3557,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. * @@ -3741,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. * @@ -3813,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. * @@ -3907,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. * @@ -4104,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. * @@ -4270,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 @@ -9174,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. @@ -9241,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. @@ -9276,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. * @@ -9606,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 f649529b..ea64ca24 100644 --- a/include/cassandra_deleted_functions.h +++ b/include/cassandra_deleted_functions.h @@ -751,6 +751,432 @@ cass_cluster_set_prepare_on_up_or_add_host(CassCluster* cluster, 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 From 7579adf4e527e443275d83da102e49c40b03233c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Bary=C5=82a?= Date: Wed, 25 Feb 2026 16:14:30 +0100 Subject: [PATCH 5/5] README.md: Rewrite limitations section Now it describes all functions that were present in original cassandra.h, but are not implemented in our driver. Description is split into categories, and each category is described, with links to relevant issue. --- README.md | 484 +++++++++++++++++++++++++++++------------------------- 1 file changed, 263 insertions(+), 221 deletions(-) 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 ___