@wolf480pl I know, right?
Sadly the only 1-byte type in core Postgres is a boolean, which is... not quite suitable. Using the FK approach with smallints still halves the storage requirements, but meh.
I'm almost considering hacking in support for 1-byte enums into Postgres. Even have an idea on how to do that within its current enum framework, but I doubt there's much enthusiasm among postgres devs to add the complexity unless I can motivate it with some strong use cases and benchmarks.