Use C99 designated initializers for some structs
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 29 Aug 2018 06:36:30 +0000 (08:36 +0200)
committerPeter Eisentraut <peter_e@gmx.net>
Fri, 7 Sep 2018 09:40:03 +0000 (11:40 +0200)
These are just a few particularly egregious cases that were hard to read
and write, and error prone because of many similar adjacent types.

Discussion: https://www.postgresql.org/message-id/flat/4c9f01be-9245-2148-b569-61a8562ef190%402ndquadrant.com

src/backend/access/transam/xact.c
src/backend/catalog/heap.c
src/bin/psql/tab-complete.c
src/pl/plpython/plpy_cursorobject.c
src/pl/plpython/plpy_planobject.c
src/pl/plpython/plpy_plpymodule.c
src/pl/plpython/plpy_resultobject.c
src/pl/plpython/plpy_subxactobject.c

index cd8270d5fb04b165d101cb444ef591436ab71879..875be180fe4204c9cb4a2e89f3ae25f4c9f24a3c 100644 (file)
@@ -199,27 +199,8 @@ typedef TransactionStateData *TransactionState;
  * transaction at all, or when in a top-level transaction.
  */
 static TransactionStateData TopTransactionStateData = {
-   0,                          /* transaction id */
-   0,                          /* subtransaction id */
-   NULL,                       /* savepoint name */
-   0,                          /* savepoint level */
-   TRANS_DEFAULT,              /* transaction state */
-   TBLOCK_DEFAULT,             /* transaction block state from the client
-                                * perspective */
-   0,                          /* transaction nesting depth */
-   0,                          /* GUC context nesting depth */
-   NULL,                       /* cur transaction context */
-   NULL,                       /* cur transaction resource owner */
-   NULL,                       /* subcommitted child Xids */
-   0,                          /* # of subcommitted child Xids */
-   0,                          /* allocated size of childXids[] */
-   InvalidOid,                 /* previous CurrentUserId setting */
-   0,                          /* previous SecurityRestrictionContext */
-   false,                      /* entry-time xact r/o state */
-   false,                      /* startedInRecovery */
-   false,                      /* didLogXid */
-   0,                          /* parallelModeLevel */
-   NULL                        /* link to parent state block */
+   .state = TRANS_DEFAULT,
+   .blockState = TBLOCK_DEFAULT,
 };
 
 /*
index 5206d5e5162b38c36b2525bcbb7c97a121308e42..9176f6280b0461bc5301d394077ed333a32cdbaa 100644 (file)
@@ -145,39 +145,87 @@ static List *insert_ordered_unique_oid(List *list, Oid datum);
  */
 
 static FormData_pg_attribute a1 = {
-   0, {"ctid"}, TIDOID, 0, sizeof(ItemPointerData),
-   SelfItemPointerAttributeNumber, 0, -1, -1,
-   false, 'p', 's', true, false, false, '\0', false, true, 0
+   .attname = {"ctid"},
+   .atttypid = TIDOID,
+   .attlen = sizeof(ItemPointerData),
+   .attnum = SelfItemPointerAttributeNumber,
+   .attcacheoff = -1,
+   .atttypmod = -1,
+   .attbyval = false,
+   .attstorage = 'p',
+   .attalign = 's',
+   .attnotnull = true,
+   .attislocal = true,
 };
 
 static FormData_pg_attribute a2 = {
-   0, {"oid"}, OIDOID, 0, sizeof(Oid),
-   ObjectIdAttributeNumber, 0, -1, -1,
-   true, 'p', 'i', true, false, false, '\0', false, true, 0
+   .attname = {"oid"},
+   .atttypid = OIDOID,
+   .attlen = sizeof(Oid),
+   .attnum = ObjectIdAttributeNumber,
+   .attcacheoff = -1,
+   .atttypmod = -1,
+   .attbyval = true,
+   .attstorage = 'p',
+   .attalign = 'i',
+   .attnotnull = true,
+   .attislocal = true,
 };
 
 static FormData_pg_attribute a3 = {
-   0, {"xmin"}, XIDOID, 0, sizeof(TransactionId),
-   MinTransactionIdAttributeNumber, 0, -1, -1,
-   true, 'p', 'i', true, false, false, '\0', false, true, 0
+   .attname = {"xmin"},
+   .atttypid = XIDOID,
+   .attlen = sizeof(TransactionId),
+   .attnum = MinTransactionIdAttributeNumber,
+   .attcacheoff = -1,
+   .atttypmod = -1,
+   .attbyval = true,
+   .attstorage = 'p',
+   .attalign = 'i',
+   .attnotnull = true,
+   .attislocal = true,
 };
 
 static FormData_pg_attribute a4 = {
-   0, {"cmin"}, CIDOID, 0, sizeof(CommandId),
-   MinCommandIdAttributeNumber, 0, -1, -1,
-   true, 'p', 'i', true, false, false, '\0', false, true, 0
+   .attname = {"cmin"},
+   .atttypid = CIDOID,
+   .attlen = sizeof(CommandId),
+   .attnum = MinCommandIdAttributeNumber,
+   .attcacheoff = -1,
+   .atttypmod = -1,
+   .attbyval = true,
+   .attstorage = 'p',
+   .attalign = 'i',
+   .attnotnull = true,
+   .attislocal = true,
 };
 
 static FormData_pg_attribute a5 = {
-   0, {"xmax"}, XIDOID, 0, sizeof(TransactionId),
-   MaxTransactionIdAttributeNumber, 0, -1, -1,
-   true, 'p', 'i', true, false, false, '\0', false, true, 0
+   .attname = {"xmax"},
+   .atttypid = XIDOID,
+   .attlen = sizeof(TransactionId),
+   .attnum = MaxTransactionIdAttributeNumber,
+   .attcacheoff = -1,
+   .atttypmod = -1,
+   .attbyval = true,
+   .attstorage = 'p',
+   .attalign = 'i',
+   .attnotnull = true,
+   .attislocal = true,
 };
 
 static FormData_pg_attribute a6 = {
-   0, {"cmax"}, CIDOID, 0, sizeof(CommandId),
-   MaxCommandIdAttributeNumber, 0, -1, -1,
-   true, 'p', 'i', true, false, false, '\0', false, true, 0
+   .attname = {"cmax"},
+   .atttypid = CIDOID,
+   .attlen = sizeof(CommandId),
+   .attnum = MaxCommandIdAttributeNumber,
+   .attcacheoff = -1,
+   .atttypmod = -1,
+   .attbyval = true,
+   .attstorage = 'p',
+   .attalign = 'i',
+   .attnotnull = true,
+   .attislocal = true,
 };
 
 /*
@@ -187,9 +235,17 @@ static FormData_pg_attribute a6 = {
  * used in SQL.
  */
 static FormData_pg_attribute a7 = {
-   0, {"tableoid"}, OIDOID, 0, sizeof(Oid),
-   TableOidAttributeNumber, 0, -1, -1,
-   true, 'p', 'i', true, false, false, '\0', false, true, 0
+   .attname = {"tableoid"},
+   .atttypid = OIDOID,
+   .attlen = sizeof(Oid),
+   .attnum = TableOidAttributeNumber,
+   .attcacheoff = -1,
+   .atttypmod = -1,
+   .attbyval = true,
+   .attstorage = 'p',
+   .attalign = 'i',
+   .attnotnull = true,
+   .attislocal = true,
 };
 
 static const Form_pg_attribute SysAtt[] = {&a1, &a2, &a3, &a4, &a5, &a6, &a7};
index bb696f8ee90119ffec45d4ebd0f79d20a383c61c..ee2aac7b5880df9302ab0c031d8b3f385f9844c6 100644 (file)
@@ -391,418 +391,222 @@ do { \
 
 static const SchemaQuery Query_for_list_of_aggregates[] = {
    {
-       /* min_server_version */
-       110000,
-       /* catname */
-       "pg_catalog.pg_proc p",
-       /* selcondition */
-       "p.prokind = 'a'",
-       /* viscondition */
-       "pg_catalog.pg_function_is_visible(p.oid)",
-       /* namespace */
-       "p.pronamespace",
-       /* result */
-       "pg_catalog.quote_ident(p.proname)",
-       /* qualresult */
-       NULL
+       .min_server_version = 110000,
+       .catname = "pg_catalog.pg_proc p",
+       .selcondition = "p.prokind = 'a'",
+       .viscondition = "pg_catalog.pg_function_is_visible(p.oid)",
+       .namespace = "p.pronamespace",
+       .result = "pg_catalog.quote_ident(p.proname)",
    },
    {
-       /* min_server_version */
-       0,
-       /* catname */
-       "pg_catalog.pg_proc p",
-       /* selcondition */
-       "p.proisagg",
-       /* viscondition */
-       "pg_catalog.pg_function_is_visible(p.oid)",
-       /* namespace */
-       "p.pronamespace",
-       /* result */
-       "pg_catalog.quote_ident(p.proname)",
-       /* qualresult */
-       NULL
+       .catname = "pg_catalog.pg_proc p",
+       .selcondition = "p.proisagg",
+       .viscondition = "pg_catalog.pg_function_is_visible(p.oid)",
+       .namespace = "p.pronamespace",
+       .result = "pg_catalog.quote_ident(p.proname)",
    }
 };
 
 static const SchemaQuery Query_for_list_of_datatypes = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_type t",
+   .catname = "pg_catalog.pg_type t",
    /* selcondition --- ignore table rowtypes and array types */
-   "(t.typrelid = 0 "
+   .selcondition = "(t.typrelid = 0 "
    " OR (SELECT c.relkind = " CppAsString2(RELKIND_COMPOSITE_TYPE)
    "     FROM pg_catalog.pg_class c WHERE c.oid = t.typrelid)) "
    "AND t.typname !~ '^_'",
-   /* viscondition */
-   "pg_catalog.pg_type_is_visible(t.oid)",
-   /* namespace */
-   "t.typnamespace",
-   /* result */
-   "pg_catalog.format_type(t.oid, NULL)",
-   /* qualresult */
-   "pg_catalog.quote_ident(t.typname)"
+   .viscondition = "pg_catalog.pg_type_is_visible(t.oid)",
+   .namespace = "t.typnamespace",
+   .result = "pg_catalog.format_type(t.oid, NULL)",
+   .qualresult = "pg_catalog.quote_ident(t.typname)",
 };
 
 static const SchemaQuery Query_for_list_of_domains = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_type t",
-   /* selcondition */
-   "t.typtype = 'd'",
-   /* viscondition */
-   "pg_catalog.pg_type_is_visible(t.oid)",
-   /* namespace */
-   "t.typnamespace",
-   /* result */
-   "pg_catalog.quote_ident(t.typname)",
-   /* qualresult */
-   NULL
+   .catname = "pg_catalog.pg_type t",
+   .selcondition = "t.typtype = 'd'",
+   .viscondition = "pg_catalog.pg_type_is_visible(t.oid)",
+   .namespace = "t.typnamespace",
+   .result = "pg_catalog.quote_ident(t.typname)",
 };
 
 /* Note: this intentionally accepts aggregates as well as plain functions */
 static const SchemaQuery Query_for_list_of_functions[] = {
    {
-       /* min_server_version */
-       110000,
-       /* catname */
-       "pg_catalog.pg_proc p",
-       /* selcondition */
-       "p.prokind != 'p'",
-       /* viscondition */
-       "pg_catalog.pg_function_is_visible(p.oid)",
-       /* namespace */
-       "p.pronamespace",
-       /* result */
-       "pg_catalog.quote_ident(p.proname)",
-       /* qualresult */
-       NULL
+       .min_server_version = 110000,
+       .catname = "pg_catalog.pg_proc p",
+       .selcondition = "p.prokind != 'p'",
+       .viscondition = "pg_catalog.pg_function_is_visible(p.oid)",
+       .namespace = "p.pronamespace",
+       .result = "pg_catalog.quote_ident(p.proname)",
    },
    {
-       /* min_server_version */
-       0,
-       /* catname */
-       "pg_catalog.pg_proc p",
-       /* selcondition */
-       NULL,
-       /* viscondition */
-       "pg_catalog.pg_function_is_visible(p.oid)",
-       /* namespace */
-       "p.pronamespace",
-       /* result */
-       "pg_catalog.quote_ident(p.proname)",
-       /* qualresult */
-       NULL
+       .catname = "pg_catalog.pg_proc p",
+       .viscondition = "pg_catalog.pg_function_is_visible(p.oid)",
+       .namespace = "p.pronamespace",
+       .result = "pg_catalog.quote_ident(p.proname)",
    }
 };
 
 static const SchemaQuery Query_for_list_of_indexes = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
+   .catname = "pg_catalog.pg_class c",
+   .selcondition =
    "c.relkind IN (" CppAsString2(RELKIND_INDEX) ", "
    CppAsString2(RELKIND_PARTITIONED_INDEX) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_procedures[] = {
    {
-       /* min_server_version */
-       110000,
-       /* catname */
-       "pg_catalog.pg_proc p",
-       /* selcondition */
-       "p.prokind = 'p'",
-       /* viscondition */
-       "pg_catalog.pg_function_is_visible(p.oid)",
-       /* namespace */
-       "p.pronamespace",
-       /* result */
-       "pg_catalog.quote_ident(p.proname)",
-       /* qualresult */
-       NULL
+       .min_server_version = 110000,
+       .catname = "pg_catalog.pg_proc p",
+       .selcondition = "p.prokind = 'p'",
+       .viscondition = "pg_catalog.pg_function_is_visible(p.oid)",
+       .namespace = "p.pronamespace",
+       .result = "pg_catalog.quote_ident(p.proname)",
    },
-   {0, NULL}
+   {
+       /* not supported in older versions */
+       .catname = NULL,
+   }
 };
 
 static const SchemaQuery Query_for_list_of_routines = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_proc p",
-   /* selcondition */
-   NULL,
-   /* viscondition */
-   "pg_catalog.pg_function_is_visible(p.oid)",
-   /* namespace */
-   "p.pronamespace",
-   /* result */
-   "pg_catalog.quote_ident(p.proname)",
-   /* qualresult */
-   NULL
+   .catname = "pg_catalog.pg_proc p",
+   .viscondition = "pg_catalog.pg_function_is_visible(p.oid)",
+   .namespace = "p.pronamespace",
+   .result = "pg_catalog.quote_ident(p.proname)",
 };
 
 static const SchemaQuery Query_for_list_of_sequences = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
-   "c.relkind IN (" CppAsString2(RELKIND_SEQUENCE) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .catname = "pg_catalog.pg_class c",
+   .selcondition = "c.relkind IN (" CppAsString2(RELKIND_SEQUENCE) ")",
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_foreign_tables = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
-   "c.relkind IN (" CppAsString2(RELKIND_FOREIGN_TABLE) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .catname = "pg_catalog.pg_class c",
+   .selcondition = "c.relkind IN (" CppAsString2(RELKIND_FOREIGN_TABLE) ")",
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_tables = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
+   .catname = "pg_catalog.pg_class c",
+   .selcondition =
    "c.relkind IN (" CppAsString2(RELKIND_RELATION) ", "
    CppAsString2(RELKIND_PARTITIONED_TABLE) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_partitioned_tables = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
-   "c.relkind IN (" CppAsString2(RELKIND_PARTITIONED_TABLE) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .catname = "pg_catalog.pg_class c",
+   .selcondition = "c.relkind IN (" CppAsString2(RELKIND_PARTITIONED_TABLE) ")",
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_constraints_with_schema = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_constraint c",
-   /* selcondition */
-   "c.conrelid <> 0",
-   /* viscondition */
-   "true",                     /* there is no pg_constraint_is_visible */
-   /* namespace */
-   "c.connamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.conname)",
-   /* qualresult */
-   NULL
+   .catname = "pg_catalog.pg_constraint c",
+   .selcondition = "c.conrelid <> 0",
+   .viscondition = "true",     /* there is no pg_constraint_is_visible */
+   .namespace = "c.connamespace",
+   .result = "pg_catalog.quote_ident(c.conname)",
 };
 
 /* Relations supporting INSERT, UPDATE or DELETE */
 static const SchemaQuery Query_for_list_of_updatables = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
+   .catname = "pg_catalog.pg_class c",
+   .selcondition =
    "c.relkind IN (" CppAsString2(RELKIND_RELATION) ", "
    CppAsString2(RELKIND_FOREIGN_TABLE) ", "
    CppAsString2(RELKIND_VIEW) ", "
    CppAsString2(RELKIND_PARTITIONED_TABLE) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_relations = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
-   NULL,
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .catname = "pg_catalog.pg_class c",
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_tsvmf = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
+   .catname = "pg_catalog.pg_class c",
+   .selcondition =
    "c.relkind IN (" CppAsString2(RELKIND_RELATION) ", "
    CppAsString2(RELKIND_SEQUENCE) ", "
    CppAsString2(RELKIND_VIEW) ", "
    CppAsString2(RELKIND_MATVIEW) ", "
    CppAsString2(RELKIND_FOREIGN_TABLE) ", "
    CppAsString2(RELKIND_PARTITIONED_TABLE) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_tmf = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
+   .catname = "pg_catalog.pg_class c",
+   .selcondition =
    "c.relkind IN (" CppAsString2(RELKIND_RELATION) ", "
    CppAsString2(RELKIND_MATVIEW) ", "
    CppAsString2(RELKIND_FOREIGN_TABLE) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_tpm = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
+   .catname = "pg_catalog.pg_class c",
+   .selcondition =
    "c.relkind IN (" CppAsString2(RELKIND_RELATION) ", "
    CppAsString2(RELKIND_PARTITIONED_TABLE) ", "
    CppAsString2(RELKIND_MATVIEW) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_tm = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
+   .catname = "pg_catalog.pg_class c",
+   .selcondition =
    "c.relkind IN (" CppAsString2(RELKIND_RELATION) ", "
    CppAsString2(RELKIND_MATVIEW) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_views = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
-   "c.relkind IN (" CppAsString2(RELKIND_VIEW) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .catname = "pg_catalog.pg_class c",
+   .selcondition = "c.relkind IN (" CppAsString2(RELKIND_VIEW) ")",
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_matviews = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_class c",
-   /* selcondition */
-   "c.relkind IN (" CppAsString2(RELKIND_MATVIEW) ")",
-   /* viscondition */
-   "pg_catalog.pg_table_is_visible(c.oid)",
-   /* namespace */
-   "c.relnamespace",
-   /* result */
-   "pg_catalog.quote_ident(c.relname)",
-   /* qualresult */
-   NULL
+   .catname = "pg_catalog.pg_class c",
+   .selcondition = "c.relkind IN (" CppAsString2(RELKIND_MATVIEW) ")",
+   .viscondition = "pg_catalog.pg_table_is_visible(c.oid)",
+   .namespace = "c.relnamespace",
+   .result = "pg_catalog.quote_ident(c.relname)",
 };
 
 static const SchemaQuery Query_for_list_of_statistics = {
-   /* min_server_version */
-   0,
-   /* catname */
-   "pg_catalog.pg_statistic_ext s",
-   /* selcondition */
-   NULL,
-   /* viscondition */
-   "pg_catalog.pg_statistics_obj_is_visible(s.oid)",
-   /* namespace */
-   "s.stxnamespace",
-   /* result */
-   "pg_catalog.quote_ident(s.stxname)",
-   /* qualresult */
-   NULL
+   .catname = "pg_catalog.pg_statistic_ext s",
+   .viscondition = "pg_catalog.pg_statistics_obj_is_visible(s.oid)",
+   .namespace = "s.stxnamespace",
+   .result = "pg_catalog.quote_ident(s.stxname)",
 };
 
 
index e32bc568bc284cd28cb188fbb8a91606c11ba256..45ac25b2ae0a0234afdaffcf6573471c6855c98f 100644 (file)
@@ -43,37 +43,14 @@ static PyMethodDef PLy_cursor_methods[] = {
 
 static PyTypeObject PLy_CursorType = {
    PyVarObject_HEAD_INIT(NULL, 0)
-   "PLyCursor",                /* tp_name */
-   sizeof(PLyCursorObject),    /* tp_size */
-   0,                          /* tp_itemsize */
-
-   /*
-    * methods
-    */
-   PLy_cursor_dealloc,         /* tp_dealloc */
-   0,                          /* tp_print */
-   0,                          /* tp_getattr */
-   0,                          /* tp_setattr */
-   0,                          /* tp_compare */
-   0,                          /* tp_repr */
-   0,                          /* tp_as_number */
-   0,                          /* tp_as_sequence */
-   0,                          /* tp_as_mapping */
-   0,                          /* tp_hash */
-   0,                          /* tp_call */
-   0,                          /* tp_str */
-   0,                          /* tp_getattro */
-   0,                          /* tp_setattro */
-   0,                          /* tp_as_buffer */
-   Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_ITER,    /* tp_flags */
-   PLy_cursor_doc,             /* tp_doc */
-   0,                          /* tp_traverse */
-   0,                          /* tp_clear */
-   0,                          /* tp_richcompare */
-   0,                          /* tp_weaklistoffset */
-   PyObject_SelfIter,          /* tp_iter */
-   PLy_cursor_iternext,        /* tp_iternext */
-   PLy_cursor_methods,         /* tp_tpmethods */
+   .tp_name = "PLyCursor",
+   .tp_basicsize = sizeof(PLyCursorObject),
+   .tp_dealloc = PLy_cursor_dealloc,
+   .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_ITER,
+   .tp_doc = PLy_cursor_doc,
+   .tp_iter = PyObject_SelfIter,
+   .tp_iternext = PLy_cursor_iternext,
+   .tp_methods = PLy_cursor_methods,
 };
 
 void
index 390b4e90d45bba9eb0a53bb8f45d63c4a28845e3..96ea24cbcf55aabe6d8cf3d8c35c22ec2195ddc5 100644 (file)
@@ -34,37 +34,12 @@ static PyMethodDef PLy_plan_methods[] = {
 
 static PyTypeObject PLy_PlanType = {
    PyVarObject_HEAD_INIT(NULL, 0)
-   "PLyPlan",                  /* tp_name */
-   sizeof(PLyPlanObject),      /* tp_size */
-   0,                          /* tp_itemsize */
-
-   /*
-    * methods
-    */
-   PLy_plan_dealloc,           /* tp_dealloc */
-   0,                          /* tp_print */
-   0,                          /* tp_getattr */
-   0,                          /* tp_setattr */
-   0,                          /* tp_compare */
-   0,                          /* tp_repr */
-   0,                          /* tp_as_number */
-   0,                          /* tp_as_sequence */
-   0,                          /* tp_as_mapping */
-   0,                          /* tp_hash */
-   0,                          /* tp_call */
-   0,                          /* tp_str */
-   0,                          /* tp_getattro */
-   0,                          /* tp_setattro */
-   0,                          /* tp_as_buffer */
-   Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,   /* tp_flags */
-   PLy_plan_doc,               /* tp_doc */
-   0,                          /* tp_traverse */
-   0,                          /* tp_clear */
-   0,                          /* tp_richcompare */
-   0,                          /* tp_weaklistoffset */
-   0,                          /* tp_iter */
-   0,                          /* tp_iternext */
-   PLy_plan_methods,           /* tp_tpmethods */
+   .tp_name = "PLyPlan",
+   .tp_basicsize = sizeof(PLyPlanObject),
+   .tp_dealloc = PLy_plan_dealloc,
+   .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+   .tp_doc = PLy_plan_doc,
+   .tp_methods = PLy_plan_methods,
 };
 
 void
index c55cd959c29248b1dfc4f4b4fa5b024eb16c89fd..23e49e4b754a7c275c74b9908811e02a611023dd 100644 (file)
@@ -115,23 +115,17 @@ static PyMethodDef PLy_exc_methods[] = {
 
 #if PY_MAJOR_VERSION >= 3
 static PyModuleDef PLy_module = {
-   PyModuleDef_HEAD_INIT,      /* m_base */
-   "plpy",                     /* m_name */
-   NULL,                       /* m_doc */
-   -1,                         /* m_size */
-   PLy_methods,                /* m_methods */
+   PyModuleDef_HEAD_INIT,
+   .m_name = "plpy",
+   .m_size = -1,
+   .m_methods = PLy_methods,
 };
 
 static PyModuleDef PLy_exc_module = {
-   PyModuleDef_HEAD_INIT,      /* m_base */
-   "spiexceptions",            /* m_name */
-   NULL,                       /* m_doc */
-   -1,                         /* m_size */
-   PLy_exc_methods,            /* m_methods */
-   NULL,                       /* m_reload */
-   NULL,                       /* m_traverse */
-   NULL,                       /* m_clear */
-   NULL                        /* m_free */
+   PyModuleDef_HEAD_INIT,
+   .m_name = "spiexceptions",
+   .m_size = -1,
+   .m_methods = PLy_exc_methods,
 };
 
 /*
index 4064f6a7a264253fe0df37e99052795128dd0b9d..20cf3edea878e63b248baf333ae1dc2fad871cb8 100644 (file)
@@ -29,19 +29,14 @@ static char PLy_result_doc[] = {
 };
 
 static PySequenceMethods PLy_result_as_sequence = {
-   PLy_result_length,          /* sq_length */
-   NULL,                       /* sq_concat */
-   NULL,                       /* sq_repeat */
-   PLy_result_item,            /* sq_item */
-   NULL,                       /* sq_slice */
-   NULL,                       /* sq_ass_item */
-   NULL,                       /* sq_ass_slice */
+   .sq_length = PLy_result_length,
+   .sq_item = PLy_result_item,
 };
 
 static PyMappingMethods PLy_result_as_mapping = {
-   PLy_result_length,          /* mp_length */
-   PLy_result_subscript,       /* mp_subscript */
-   PLy_result_ass_subscript,   /* mp_ass_subscript */
+   .mp_length = PLy_result_length,
+   .mp_subscript = PLy_result_subscript,
+   .mp_ass_subscript = PLy_result_ass_subscript,
 };
 
 static PyMethodDef PLy_result_methods[] = {
@@ -55,37 +50,15 @@ static PyMethodDef PLy_result_methods[] = {
 
 static PyTypeObject PLy_ResultType = {
    PyVarObject_HEAD_INIT(NULL, 0)
-   "PLyResult",                /* tp_name */
-   sizeof(PLyResultObject),    /* tp_size */
-   0,                          /* tp_itemsize */
-
-   /*
-    * methods
-    */
-   PLy_result_dealloc,         /* tp_dealloc */
-   0,                          /* tp_print */
-   0,                          /* tp_getattr */
-   0,                          /* tp_setattr */
-   0,                          /* tp_compare */
-   0,                          /* tp_repr */
-   0,                          /* tp_as_number */
-   &PLy_result_as_sequence,    /* tp_as_sequence */
-   &PLy_result_as_mapping,     /* tp_as_mapping */
-   0,                          /* tp_hash */
-   0,                          /* tp_call */
-   &PLy_result_str,            /* tp_str */
-   0,                          /* tp_getattro */
-   0,                          /* tp_setattro */
-   0,                          /* tp_as_buffer */
-   Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,   /* tp_flags */
-   PLy_result_doc,             /* tp_doc */
-   0,                          /* tp_traverse */
-   0,                          /* tp_clear */
-   0,                          /* tp_richcompare */
-   0,                          /* tp_weaklistoffset */
-   0,                          /* tp_iter */
-   0,                          /* tp_iternext */
-   PLy_result_methods,         /* tp_tpmethods */
+   .tp_name = "PLyResult",
+   .tp_basicsize = sizeof(PLyResultObject),
+   .tp_dealloc = PLy_result_dealloc,
+   .tp_as_sequence = &PLy_result_as_sequence,
+   .tp_as_mapping = &PLy_result_as_mapping,
+   .tp_str = &PLy_result_str,
+   .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+   .tp_doc = PLy_result_doc,
+   .tp_methods = PLy_result_methods,
 };
 
 void
index 331d2b859c0eedb92e4a594aac909cd0ab48bc70..53fd36edba166207a8908e32a7fc7772d32ae651 100644 (file)
@@ -38,37 +38,12 @@ static PyMethodDef PLy_subtransaction_methods[] = {
 
 static PyTypeObject PLy_SubtransactionType = {
    PyVarObject_HEAD_INIT(NULL, 0)
-   "PLySubtransaction",        /* tp_name */
-   sizeof(PLySubtransactionObject),    /* tp_size */
-   0,                          /* tp_itemsize */
-
-   /*
-    * methods
-    */
-   PLy_subtransaction_dealloc, /* tp_dealloc */
-   0,                          /* tp_print */
-   0,                          /* tp_getattr */
-   0,                          /* tp_setattr */
-   0,                          /* tp_compare */
-   0,                          /* tp_repr */
-   0,                          /* tp_as_number */
-   0,                          /* tp_as_sequence */
-   0,                          /* tp_as_mapping */
-   0,                          /* tp_hash */
-   0,                          /* tp_call */
-   0,                          /* tp_str */
-   0,                          /* tp_getattro */
-   0,                          /* tp_setattro */
-   0,                          /* tp_as_buffer */
-   Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,   /* tp_flags */
-   PLy_subtransaction_doc,     /* tp_doc */
-   0,                          /* tp_traverse */
-   0,                          /* tp_clear */
-   0,                          /* tp_richcompare */
-   0,                          /* tp_weaklistoffset */
-   0,                          /* tp_iter */
-   0,                          /* tp_iternext */
-   PLy_subtransaction_methods, /* tp_tpmethods */
+   .tp_name = "PLySubtransaction",
+   .tp_basicsize = sizeof(PLySubtransactionObject),
+   .tp_dealloc = PLy_subtransaction_dealloc,
+   .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+   .tp_doc = PLy_subtransaction_doc,
+   .tp_methods = PLy_subtransaction_methods,
 };