Code of Conduct
AI Policy
Is your feature request related to a problem? Please describe.
Filtering or sorting on a range attribute fails: Unsupported expression in Elixir.AshPostgres.SqlImplementation query: ... Ash.Query.Function.RangeLower.
A range is stored natively since #817, but none of its expressions render, so the column's own operators are unreachable.
Describe the solution you'd like
Render the range expressions to their Postgres equivalents: range_overlaps/2 to &&, range_lower/1 and range_upper/1 to lower() and upper(), and range_contains/2 and range_adjacent/2 to @> and -|- once ash#2877 lands.
The rendering belongs in ash_sql, and the tests here, as ash_sql#245 and #814 did for Duration.
Describe alternatives you've considered
No response
Additional context
No response
Code of Conduct
AI Policy
Is your feature request related to a problem? Please describe.
Filtering or sorting on a range attribute fails:
Unsupported expression in Elixir.AshPostgres.SqlImplementation query: ... Ash.Query.Function.RangeLower.A range is stored natively since #817, but none of its expressions render, so the column's own operators are unreachable.
Describe the solution you'd like
Render the range expressions to their Postgres equivalents:
range_overlaps/2to&&,range_lower/1andrange_upper/1tolower()andupper(), andrange_contains/2andrange_adjacent/2to@>and-|-once ash#2877 lands.The rendering belongs in ash_sql, and the tests here, as ash_sql#245 and #814 did for Duration.
Describe alternatives you've considered
No response
Additional context
No response