Are you using a sequence on it? Alla __PACKAGE__->sequence('cd_id_seq'). I think you need to do that for Pg but I could be wrong.
Good observation, but I'm not using any such data type in the particular table that I tried testing.
You also might give Class::DBI::Pg (has sample code for non-CDBI::Pg use too) a try as the base instead, just to see if it makes any difference.
Yet another good suggestion, but it results in the same syntax error as before because it's not properly quoting the User column.