Closed zolrath closed 1 week ago
I've created a project exhibiting the issue here:
https://github.com/zolrath/typeid_test
Maybe there's something I'm missing/should be doing but if I attempt to use order_by
like: Repo.all(from c in Client, order_by: [asc: c.id])
the sorting becomes random and non sequential.
Thanks for reporting this. It looks like Ecto isn't calling TypeID.autogenerate/1
for some reason. I'll look into this further.
It looks like the binary type change is causing problems with many_to_many relationships where the query generated is trying to cast the uuid to bytea which Postgresql won’t do
(Postgrex.Error) ERROR 42846 (cannot_coerce) cannot cast type uuid to bytea
Fixed by #32 and #34
Hello, thank you very much for making this library!
I'm having an issue where it appears when I insert new rows into my database they are randomly sorted instead of utilizing the current time. I've got my schema set up with:
As a test run, I created 6 new clients with a few seconds between each and the resulting primary keys (in order of generation) were:
Autogenerated
When selecting the entries from this table ordered by the id, they do not return in the correct order and start with extremely dissimilar beginnings.
Manually generated
In iex if I use
TypeID.new("client")
the generated ids appear more immediately sensible and are correctly sorted so something seems amiss when I allow Ecto to autogenerate them.I'm using: ecto 3.11.2 ecto_psql_extras 0.7.15 ecto_sql 3.11.1 typeid_elixir 0.6.0 phoenix 1.7.12 phoenix_ecto 4.5.1 postgrex 0.17.5 with Elixir 1.16.2 (compiled with Erlang/OTP 26)
Thanks again, let me know if you need any additional information!