This patch retrieves the argument types for similarity functions. Newly introduced `retrieve_vector_arg_types` function checks if the provided arguments are vectors of floats and if both the vector values match the same type (dimension). If so, we know the exact type and set it as the function arguments type. Otherwise, if the exact type is unkown, but we can assign to vector<float, N> then the dimensionality check will be done during execution of the similarity function. This also takes care of null values and bind variables the same way as implemented in Cassandra to stay compatible. Meaning that if we can infer the type from one argument, then the latter may be unknown (null or ?). Additionally this patch adds `test_assignment_any_vector` function which tests the weak assignment to vector<float, N> as mentioned above.
86 KiB
86 KiB