This article introduces the Composite library for simplifying the writing of dynamic Ecto queries. It covers the basic principles of dynamic queries, demonstrates an alternative approach using Composite, and explains how Composite can improve query efficiency through features like dependencies. Links to the Ecto docs and Composite’s source code are provided for further reading.
Main Points
Need for an alternative approach to dynamic queries
Another article is needed despite the existing one in Ecto docs because it suggests a different organization of the final code for dynamic queries.
Principles of dynamic Ecto query writing
Writing dynamic Ecto queries is about the optional application of functions, aiming for query composition based on given input parameters.
Introduction to the Composite library
The Composite library is a result of refactoring various approaches to writing dynamic Ecto queries, showcasing an alternative implementation that is simpler and more efficient.
Insights
The Composite library simplifies writing dynamic Ecto queries.
The implementation with Composite places all used parameters at the top level, which makes it easier to modify queries based on input parameters.
Composite enables efficient handling of Ecto queries.
Composite allows for dependencies, making it possible to optimize queries by joining associations only when needed based on input parameters.