Can IDENTITY COLUMNS generate UUIDs? I'm just wondering if either the spec of the implementation (PostgreSQL) provides for generating identity columns from UUIds or the like.

Is there an alternative to,

CREATE TABLE f (
  id uuid DEFAULT gen_random_uuid()
);


Especially one that can protect the column under GENERATED ALAWYS
It seems that currently PostgreSQL only provides the following

GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ]


The PostgreSQL docs go on to say


  This clause creates the column as an identity column. It will have an implicit sequence attached to it and the column in new rows will automatically have values from the sequence assigned to it.


So it seems it's sequence specific. The SLQ 2011 spec implies there is nothing more to it,


  The declared type of an identity column is either an exact numeric type with scale 0 (zero), INTEGER for example, or a distinct type whose source type is an exact numeric type with scale 0 (zero). An identity column has a start value, an increment, a maximum value, a minimum value, and a cycle option. An identity column is associated with an
  internal sequence generator SG.