Closed coladarci closed 3 years ago
Greg, thats a complete pain. I've checked the ecto source at the error and its not particularly illuminating.
The underlying change is that I changed the Money.Ecto.Composite.Type
to a parameterised type which is supported in Ecto ~> 3.5 and therefore allows defaults which is a good thing. However it introduced an incompatibility I wasn't aware of until after I published the new release of ex_money_sql
.
To my knowledge, the only area that might be causing this exception is if you are calling the type
macro to cast database values in a schemaless query. Any chance that could be the issue for you? If you are using type/2
in schemaless queries there is a change to the call that needs to be made. Basically is needs to be of the form of this example from the tests:
type(sum(organization.payroll), ^Money.Ecto.Composite.Type.cast_type())
If thats not it then hopefully you can help me with a minimal failing test and I can dig into it further.
BTW, the original issue filed that links to the discussion on the ecto repo is here
Ah, I'm doing this:
where(Credit, [c], c.price < type(^value, Money.Ecto.Composite.Type))
Could this be what you are referring to?
Credit
is a normal ecto schema..
Thank you for this lead - while I couldn't get your example to work (something needs a force recompile that I can't pinpoint) doing it myself money_type = Ecto.ParameterizedType.init(Money.Ecto.Composite.Type, [])
and using that DID work. Appreciate it!
@coladarci, thanks for the update Greg. I see that I haven't documented this nearly well enough. I do note that you should (as best I understand it) be able to do:
where(Credit, [c], c.price < type(^value, c.price))
Which removes any requirement to understand the deeper plumbing.
Oh wow - I had no idea you could do this... that does work...
I just went to upgrade a few dependencies:
And all my tests are failing w/ this:
I remember seeing you get into a conversation w/ Jose about this, upstream, in ecto, but I can't seem to find that. I don't see any issues filed here so I wanted to check if I'm missing something..
Thanks, as always, Kip!