Post A7kZACNjJymM4IUcoS by cy@fedicy.allowed.org
 (DIR) More posts by cy@fedicy.allowed.org
 (DIR) Post #A7kXq32iEYnNMGUQT2 by cy@fedicy.allowed.org
       2021-05-29T18:23:21.638415Z
       
       0 likes, 0 repeats
       
       I love how in #elixir’s Ecto database module, it remains completely silent when there is an error that aborts the transaction, discarding all information about the failed command, then raises an error on the next successful command that just says “current transaction is aborted, commands ignored until end of transaction block.”I mean it remains silent, period, never checking anything. My database server just manages to yell at it loud enough that Elixir finally sees fit to show me an error.
       
 (DIR) Post #A7kZACNjJymM4IUcoS by cy@fedicy.allowed.org
       2021-05-29T18:38:12.544972Z
       
       0 likes, 0 repeats
       
       Ah, here’s the problem. In #elixir’s “FlakeId” model, it gives the ID column for the database a UUID type, because it is realistic and reasonable to expect there to ever be more than 16 sextillion records. Then to determine that UUID, it runs a server that accepts an RPC call to generate new UUIDs, because globals are baaad. Then the server generates the same UUID twice in a transaction which unconditionally fails. Also it rewrites UUIDs to look like “A7kXpxzy3oApmmIG6S” because FlakeId is more hip and cool than UUID. Nothing other than elixir supports this.