EctoNamedFragment (ecto_named_fragment v0.2.0)

EctoNamedFragment is a library for using named-params in Ecto fragments.

Instead of using Ectos fragment with ?-based interpolation, named_fragment allows you to use named params in your fragments.

named_fragment is implemented as a macro on top of Ecto's fragment macro.

So named_fragment("coalesce(a, b, a)", a: 1, b: 2) will be converted to fragment("coalesce(?, ?, ?)", 1, 2, 1) at compile-time.

defmodule TestQuery do
  import Ecto.Query
  import EctoNamedFragment

  def test_query do
    query = from u in "users",
            select: named_fragment("coalesce(left, right)", left: "example", right: "input")

    Repo.all(query)
  end
end

Summary

Functions

Link to this macro

named_fragment(query, params)

(macro)