Hi, > Function to extract timestamp does not provide any guarantees at all. > Standard states this, see Kyzer answers upthread. > Moreover, standard urges against relying on that if uuidX was generated > before uuidY, then uuidX<uuid. The standard is doing a lot to make this > happen, but does not guaranty that. > All what is guaranteed is the uniqueness at certain conditions. > > > Otherwise you can calculate crc64(X) or sha256(X) > > internally in order to generate an unique ID and claim that it's fine. > > > > Values that violate named invariants should be rejected with an error. > > Think about the value that you pass to uuid generation function as an > entropy. It’s there to ensure uniqueness and promote ordering (but not > guarantee).
If the standard doesn't guarantee something it doesn't mean it forbids us to give stronger guarantees. I'm convinced that these guarantees will be useful in real-world applications, at least the ones acting exclusively within Postgres. This being said, I understand your point of view too. Let's see what other people think. -- Best regards, Aleksander Alekseev