Ash FrameworkAF
Ash Framework3y ago
20 replies
Blibs

Sorting with calculation result giver "Argument value is required" error

I have the following query:

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


When I run this query, I will get this error:

** (Ash.Error.Unknown) Unknown Error

* Argument value is required


The query works fine I if remove the similarity: desc from the sort function.

Any idea why?
Was this page helpful?