Peter Eisentraut wrote:
> On 12/19/17 19:56, Michael Paquier wrote:
> > -stringify_adefprivs_objtype(GrantObjectType objtype)
> > +stringify_adefprivs_objtype(ObjectType objtype)
> > [...]
> > + default:
> > + elog(ERROR, "unrecognized grant object type: %d", (int) objtype);
> > + return "???"; /* keep compiler quiet */
> > }
> > -
> > - elog(ERROR, "unrecognized grant object type: %d", (int) objtype);
> > - return "???"; /* keep compiler quiet */
> > Still this portion in 0001 is something that we try to avoid as much
> > as possible, no? I would have thought that all object types should be
> > listed directly so as nothing is missed in the future.
>
> But we don't really know what such future GRANT commands would actually
> look like. What would the GRANT syntax corresponding to OBJECT_CAST or
> OBJECT_STATISTIC_EXT be? I think that's best filled in when we know.
I think Michael's point is that instead of a "default:" clause, this
switch should list all the known values of the enum and throw an
"unsupported object type" error for them. So whenever somebody adds a
new object type, the compiler will complain that this switch doesn't
handle it and the developer will have to think about this function.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services