in sources/cqlrt_common.c [638:712]
static void cql_multinull(cql_int32 count, va_list *_Nonnull args) {
for (cql_int32 column = 0; column < count; column++) {
cql_int32 type = va_arg(*args, cql_int32);
cql_int32 core_data_type = CQL_CORE_DATA_TYPE_OF(type);
if (type & CQL_DATA_TYPE_NOT_NULL) {
switch (core_data_type) {
case CQL_DATA_TYPE_INT32: {
cql_int32 *int32_data = va_arg(*args, cql_int32 *);
*int32_data = 0;
break;
}
case CQL_DATA_TYPE_INT64: {
cql_int64 *int64_data = va_arg(*args, cql_int64 *);
*int64_data = 0;
break;
}
case CQL_DATA_TYPE_DOUBLE: {
cql_double *double_data = va_arg(*args, cql_double *);
*double_data = 0;
break;
}
case CQL_DATA_TYPE_BOOL: {
cql_bool *bool_data = va_arg(*args, cql_bool *);
*bool_data = 0;
break;
}
case CQL_DATA_TYPE_STRING: {
cql_string_ref *str_ref = va_arg(*args, cql_string_ref *);
cql_set_string_ref(str_ref, NULL);
break;
}
case CQL_DATA_TYPE_BLOB: {
cql_blob_ref *blob_ref = va_arg(*args, cql_blob_ref *);
cql_set_blob_ref(blob_ref, NULL);
break;
}
}
}
else {
switch (core_data_type) {
case CQL_DATA_TYPE_INT32: {
cql_nullable_int32 *_Nonnull int32p = va_arg(*args, cql_nullable_int32 *_Nonnull);
cql_set_null(*int32p);
break;
}
case CQL_DATA_TYPE_INT64: {
cql_nullable_int64 *_Nonnull int64p = va_arg(*args, cql_nullable_int64 *_Nonnull);
cql_set_null(*int64p);
break;
}
case CQL_DATA_TYPE_DOUBLE: {
cql_nullable_double *_Nonnull doublep = va_arg(*args, cql_nullable_double *_Nonnull);
cql_set_null(*doublep);
break;
}
case CQL_DATA_TYPE_BOOL: {
cql_nullable_bool *_Nonnull boolp = va_arg(*args, cql_nullable_bool *_Nonnull);
cql_set_null(*boolp);
break;
}
case CQL_DATA_TYPE_STRING: {
cql_string_ref *str_ref = va_arg(*args, cql_string_ref *);
cql_set_string_ref(str_ref, NULL);
break;
}
case CQL_DATA_TYPE_BLOB: {
cql_blob_ref *blob_ref = va_arg(*args, cql_blob_ref *);
cql_set_blob_ref(blob_ref, NULL);
break;
}
}
}
}
}