Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It is kinda weird, if you don't know how it works. For instance:

Say you have a unique constraint on two columns (column_a, column_b). column_a is not nullable, column_b IS nullable. Obviously these values are unique:

(1, 2) (1, 3) (2, 2)

But these values ARE ALSO UNIQUE:

(1, NULL) (1, NULL)

It is obvious in hindsight (NULL isn't equal to NULL), but can be quite a surprise.

...

Oh wait, postgres 15 deals with just this situation. Huh.



Honestly it's what you want way more often than not. A unique index on a nullable column is usually representing some optional identifier. You wouldn't usually want only one row to be able to omit the identifier.


Oh yeah, totally. But not always. I'm very glad that we now have an option to have both behaviours.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: