Re: Improve readability by using designated initializers when possible

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: jian he <jian.universality@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Japin Li <japinli@hotmail.com>, Jelte Fennema-Nio <postgres@jeltef.nl>, Jeff Davis <pgsql@j-davis.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>, pgsql-hackers@lists.postgresql.org
Date: 2024-03-20T14:08:39Z
Lists: pgsql-hackers
On 18.03.24 11:01, jian he wrote:
> select relname from pg_class where relisshared and relkind = 'r';
>          relname
> -----------------------
>   pg_authid
>   pg_subscription
>   pg_database
>   pg_db_role_setting
>   pg_tablespace
>   pg_auth_members
>   pg_shdepend
>   pg_shdescription
>   pg_replication_origin
>   pg_shseclabel
>   pg_parameter_acl
> (11 rows)
> 
> EventTriggerSupportsObject should return false for the following:
> SharedSecLabelRelationId
> SharedDescriptionRelationId
> DbRoleSettingRelationId
> SharedDependRelationId
> 
> but I am not sure ReplicationOriginRelationId.

EventTriggerSupportsObject() (currently named 
EventTriggerSupportsObjectClass()) is only used by the deletion code, 
and these additional classes are not supported there anyway.  Also, if 
they happen to show up there for some reason, then 
EventTriggerSQLDropAddObject() would error out in 
getObjectIdentityParts() or getObjectTypeDescription().  So you wouldn't 
get an event trigger firing on a previously unsupported class by 
accident.  So I think this is robust enough.



Commits

  1. Remove ObjectClass type

  2. Simplify pg_enc2gettext_tbl[] with C99-designated initializer syntax

  3. Use C99-designated initializer syntax for arrays related to encodings

  4. Remove last NULL element in config_group_names[]

  5. Use C99-designated initializer syntax for more arrays

  6. Remove unnecessary array object_classes[] in dependency.c

  7. Add trailing commas to enum definitions