Sorting with calculation result giver "Argument value is required" error
I have the following query:
In my resource I have these calculations:
When I run this query, I will get this error:
The query works fine I if remove the
Any idea why?
Markets.Property.Offeror
|> Ash.Query.filter(
fragment("? <% ?", ^value, full_name) or
fragment("? <% ?", ^value, email) or fragment("? <% ?", ^value, phone_number)
)
|> Ash.Query.load(:full_name)
|> Ash.Query.load(full_name_similarity: %{value: value})
|> Ash.Query.load(email_similarity: %{value: value})
|> Ash.Query.load(phone_number_similarity: %{value: value})
|> Ash.Query.load(:similarity)
|> Ash.Query.sort(similarity: :desc, full_name: :desc)
|> Markets.read!()Markets.Property.Offeror
|> Ash.Query.filter(
fragment("? <% ?", ^value, full_name) or
fragment("? <% ?", ^value, email) or fragment("? <% ?", ^value, phone_number)
)
|> Ash.Query.load(:full_name)
|> Ash.Query.load(full_name_similarity: %{value: value})
|> Ash.Query.load(email_similarity: %{value: value})
|> Ash.Query.load(phone_number_similarity: %{value: value})
|> Ash.Query.load(:similarity)
|> Ash.Query.sort(similarity: :desc, full_name: :desc)
|> Markets.read!()In my resource I have these calculations:
calculations do
calculate :full_name, :string, expr(string_join([first_name, surname], " "))
calculate :full_name_similarity, :float, expr(trigram_similarity(full_name, ^arg(:value))) do
argument :value, :string, allow_nil?: false
end
calculate :email_similarity, :float, expr(trigram_similarity(email, ^arg(:value))) do
argument :value, :string, allow_nil?: false
end
calculate :phone_number_similarity, :float, expr(trigram_similarity(phone_number, ^arg(:value))) do
argument :value, :string, allow_nil?: false
end
calculate :similarity, :float, expr(fragment("greatest(?, ?, ?)", full_name_similarity, email_similarity, phone_number_similarity))
end calculations do
calculate :full_name, :string, expr(string_join([first_name, surname], " "))
calculate :full_name_similarity, :float, expr(trigram_similarity(full_name, ^arg(:value))) do
argument :value, :string, allow_nil?: false
end
calculate :email_similarity, :float, expr(trigram_similarity(email, ^arg(:value))) do
argument :value, :string, allow_nil?: false
end
calculate :phone_number_similarity, :float, expr(trigram_similarity(phone_number, ^arg(:value))) do
argument :value, :string, allow_nil?: false
end
calculate :similarity, :float, expr(fragment("greatest(?, ?, ?)", full_name_similarity, email_similarity, phone_number_similarity))
endWhen I run this query, I will get this error:
** (Ash.Error.Unknown) Unknown Error
* Argument value is required** (Ash.Error.Unknown) Unknown Error
* Argument value is requiredThe query works fine I if remove the
similarity: descsimilarity: desc from the sort function.Any idea why?
