unlogic
I’m trying to add a sort feature to an API which allows the user to pass the field name to sort by. I figured I could use dynamics as per Dynamic queries — Ecto v3.14.0 but I run into an issue when adding the sort order specifier. this works fine:
dynamic([q], field(q, ^String.to_atom(sortby)))
this however gives an error
dynamic([q], desc: field(q, ^String.to_atom(sortby)))
** (Ecto.Query.CompileError) Tuples can only be used in comparisons with literal tuples of the same size
In order to get this working now I’ve used order_by instead of dynamic
order_by(query, [q], desc: field(q, ^String.to_atom(sortby)))
Which works, but I’d like to understand why the dynamic isn’t working for me, as it’s pretty much the same as in the documentation
Trending in Questions
Hello!
Suppose you are building workflow (order / task / payment) processing system with the following requirements:
Each workflow con...
New
I’m aware of 2 such projects, are there others?
git: GitHub - team-alembic/realworld: A fullstack Phoenix LiveView application with back...
New
Hi all,
I’m working on a Phoenix project where I need to make external HTTP requests and I’m trying to choose between Req and HTTPoison....
New
Hi everyone.
My team and I have been working on a fairly modest app based around video streaming and chat, but we’ve landed a customer t...
New
Hi,
we run different LLM models across a cluster, with each node loading a configurable subset. Model-specific queues let nodes consume ...
New
Hi all, I’m new here and would like to hear peoples views on my Elixir/Phoenix based game-engine! :smiley:
Mutonex gamedesign was finish...
New
Hello
I’ve been coding in Elixir for almost two years now because of my current job where we implemented Elixir in our application. But ...
New
Other Trending Topics
Hey there,
I haven’t seen a list of useful Elixir specific skills for the popular AI tools yet so I’m starting one here with my first.
...
New
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself.
My main conc...
New
(I just needed to vent somewhere and LinkedIn is full of hope, or hype, I’m not sure which exactly)
AI dream has many faces, but general...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #ai
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #blog-post
- #ecto-query
- #elixirconf-us
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #security
- #hex










Showing Posts 1 to 5- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
LostKobrakai
There’s a section on
order_byin the docs fordynamic: Ecto.Query — Ecto v3.4.0unlogic
Thanks for the link, it explains using dynamics for the field in an
order_by. The example I am referring to uses a dynamic as the orderby clause. I still don’t understand why the example from the docs (see link in original post)dynamic([p], desc: p.published_at)throws an error in my code. Removing the
deschowever works as expected.LostKobrakai
So the problem is that the keyword syntax is special to the
order_bymacro.dynamicallows you to capture sql (query…) expressions.desc: fieldis not a query expression on it’s own, though. The keyword syntax is just a convenience to use elixir syntax withorder_by. If you need to put the direction in the dynamic use plain sql possibly with an fragment.unlogic
That makes sense. Thank you. Does that mean the section from the docs I linked is incorrect?
LostKobrakai
Oh, that’s interesting. Maybe this is actually supposed to work (which I wouldn’t have expected). Please open an issue on ectos github, so either docs or the bug can be fixed.