Here's an updated version of the patch. There's now just one nextval()
function, taking regclass, and backwards compatibility is handled
through an implicit text-to-regclass cast. Existing dumps will not see
any behavioral changes because nextval('foo') will be dumped as
nextval('foo'::text), but new entries of "nextval('foo')" will be
captured as regclass constants instead.
I noted that this version caused a couple more regression tests to fail;
for instance, the constraints test was expecting that it could drop and
recreate a sequence that was referenced by a default expression spelled
as "nextval('foo')". So we are paying for improved ease of use by
taking a larger backwards-compatibility risk than the original patch
did.
Last call for objections ...
regards, tom lane