diff --git a/src/backend/access/transam/commit_ts.c b/src/backend/access/transam/commit_ts.c index 3316734..0d501e0 100644 --- a/src/backend/access/transam/commit_ts.c +++ b/src/backend/access/transam/commit_ts.c @@ -422,8 +422,8 @@ pg_last_committed_xact(PG_FUNCTION_ARGS) { TransactionId xid; TimestampTz ts; - Datum values[2]; - bool nulls[2]; + Datum values[2] = {0}; + bool nulls[2] = {0}; TupleDesc tupdesc; HeapTuple htup; @@ -448,10 +448,7 @@ pg_last_committed_xact(PG_FUNCTION_ARGS) else { values[0] = TransactionIdGetDatum(xid); - nulls[0] = false; - values[1] = TimestampTzGetDatum(ts); - nulls[1] = false; } htup = heap_form_tuple(tupdesc, values, nulls); diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c index 546bd43..87f5824 100644 --- a/src/backend/access/transam/twophase.c +++ b/src/backend/access/transam/twophase.c @@ -770,8 +770,8 @@ pg_prepared_xact(PG_FUNCTION_ARGS) GlobalTransaction gxact = &status->array[status->currIdx++]; PGPROC *proc = &ProcGlobal->allProcs[gxact->pgprocno]; PGXACT *pgxact = &ProcGlobal->allPgXact[gxact->pgprocno]; - Datum values[5]; - bool nulls[5]; + Datum values[5] = {0}; + bool nulls[5] = {0}; HeapTuple tuple; Datum result; @@ -781,9 +781,6 @@ pg_prepared_xact(PG_FUNCTION_ARGS) /* * Form tuple with appropriate data. */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, 0, sizeof(nulls)); - values[0] = TransactionIdGetDatum(pgxact->xid); values[1] = CStringGetTextDatum(gxact->gid); values[2] = TimestampTzGetDatum(gxact->prepared_at); diff --git a/src/backend/access/transam/xlogfuncs.c b/src/backend/access/transam/xlogfuncs.c index 8f17988..049f221 100644 --- a/src/backend/access/transam/xlogfuncs.c +++ b/src/backend/access/transam/xlogfuncs.c @@ -183,8 +183,8 @@ pg_stop_backup_v2(PG_FUNCTION_ARGS) Tuplestorestate *tupstore; MemoryContext per_query_ctx; MemoryContext oldcontext; - Datum values[3]; - bool nulls[3]; + Datum values[3] = {0}; + bool nulls[3] = {0}; bool exclusive = PG_GETARG_BOOL(0); bool waitforarchive = PG_GETARG_BOOL(1); @@ -216,9 +216,6 @@ pg_stop_backup_v2(PG_FUNCTION_ARGS) MemoryContextSwitchTo(oldcontext); - MemSet(values, 0, sizeof(values)); - MemSet(nulls, 0, sizeof(nulls)); - if (exclusive) { if (status == SESSION_BACKUP_NON_EXCLUSIVE) diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c index 88ce37c..8a6b669 100644 --- a/src/backend/catalog/aclchk.c +++ b/src/backend/catalog/aclchk.c @@ -1158,9 +1158,9 @@ SetDefaultACL(InternalDefaultACL *iacls) Acl *old_acl; Acl *new_acl; HeapTuple newtuple; - Datum values[Natts_pg_default_acl]; - bool nulls[Natts_pg_default_acl]; - bool replaces[Natts_pg_default_acl]; + Datum values[Natts_pg_default_acl] = {0}; + bool nulls[Natts_pg_default_acl] = {0}; + bool replaces[Natts_pg_default_acl] = {0}; int noldmembers; int nnewmembers; Oid *oldmembers; @@ -1314,9 +1314,6 @@ SetDefaultACL(InternalDefaultACL *iacls) Oid defAclOid; /* Prepare to insert or update pg_default_acl entry */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); if (isNew) { @@ -1659,9 +1656,9 @@ ExecGrant_Attribute(InternalGrant *istmt, Oid relOid, const char *relname, AclMode avail_goptions; bool need_update; HeapTuple newtuple; - Datum values[Natts_pg_attribute]; - bool nulls[Natts_pg_attribute]; - bool replaces[Natts_pg_attribute]; + Datum values[Natts_pg_attribute] = {0}; + bool nulls[Natts_pg_attribute] = {0}; + bool replaces[Natts_pg_attribute] = {0}; int noldmembers; int nnewmembers; Oid *oldmembers; @@ -1742,9 +1739,6 @@ ExecGrant_Attribute(InternalGrant *istmt, Oid relOid, const char *relname, nnewmembers = aclmembers(new_acl, &newmembers); /* finished building new ACL value, now insert it */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); /* * If the updated ACL is empty, we can set attacl to null, and maybe even @@ -1972,9 +1966,9 @@ ExecGrant_Relation(InternalGrant *istmt) Acl *new_acl; Oid grantorId; HeapTuple newtuple; - Datum values[Natts_pg_class]; - bool nulls[Natts_pg_class]; - bool replaces[Natts_pg_class]; + Datum values[Natts_pg_class] = {0}; + bool nulls[Natts_pg_class] = {0}; + bool replaces[Natts_pg_class] = {0}; int nnewmembers; Oid *newmembers; ObjectType objtype; @@ -2024,9 +2018,6 @@ ExecGrant_Relation(InternalGrant *istmt) nnewmembers = aclmembers(new_acl, &newmembers); /* finished building new ACL value, now insert it */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_class_relacl - 1] = true; values[Anum_pg_class_relacl - 1] = PointerGetDatum(new_acl); @@ -2147,9 +2138,9 @@ ExecGrant_Database(InternalGrant *istmt) Oid grantorId; Oid ownerId; HeapTuple newtuple; - Datum values[Natts_pg_database]; - bool nulls[Natts_pg_database]; - bool replaces[Natts_pg_database]; + Datum values[Natts_pg_database] = {0}; + bool nulls[Natts_pg_database] = {0}; + bool replaces[Natts_pg_database] = {0}; int noldmembers; int nnewmembers; Oid *oldmembers; @@ -2214,9 +2205,6 @@ ExecGrant_Database(InternalGrant *istmt) nnewmembers = aclmembers(new_acl, &newmembers); /* finished building new ACL value, now insert it */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_database_datacl - 1] = true; values[Anum_pg_database_datacl - 1] = PointerGetDatum(new_acl); @@ -2268,9 +2256,9 @@ ExecGrant_Fdw(InternalGrant *istmt) Oid ownerId; HeapTuple tuple; HeapTuple newtuple; - Datum values[Natts_pg_foreign_data_wrapper]; - bool nulls[Natts_pg_foreign_data_wrapper]; - bool replaces[Natts_pg_foreign_data_wrapper]; + Datum values[Natts_pg_foreign_data_wrapper] = {0}; + bool nulls[Natts_pg_foreign_data_wrapper] = {0}; + bool replaces[Natts_pg_foreign_data_wrapper] = {0}; int noldmembers; int nnewmembers; Oid *oldmembers; @@ -2336,9 +2324,6 @@ ExecGrant_Fdw(InternalGrant *istmt) nnewmembers = aclmembers(new_acl, &newmembers); /* finished building new ACL value, now insert it */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_foreign_data_wrapper_fdwacl - 1] = true; values[Anum_pg_foreign_data_wrapper_fdwacl - 1] = PointerGetDatum(new_acl); @@ -2395,9 +2380,9 @@ ExecGrant_ForeignServer(InternalGrant *istmt) Oid ownerId; HeapTuple tuple; HeapTuple newtuple; - Datum values[Natts_pg_foreign_server]; - bool nulls[Natts_pg_foreign_server]; - bool replaces[Natts_pg_foreign_server]; + Datum values[Natts_pg_foreign_server] = {0}; + bool nulls[Natts_pg_foreign_server] = {0}; + bool replaces[Natts_pg_foreign_server] = {0}; int noldmembers; int nnewmembers; Oid *oldmembers; @@ -2462,9 +2447,6 @@ ExecGrant_ForeignServer(InternalGrant *istmt) nnewmembers = aclmembers(new_acl, &newmembers); /* finished building new ACL value, now insert it */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_foreign_server_srvacl - 1] = true; values[Anum_pg_foreign_server_srvacl - 1] = PointerGetDatum(new_acl); @@ -2520,9 +2502,9 @@ ExecGrant_Function(InternalGrant *istmt) Oid ownerId; HeapTuple tuple; HeapTuple newtuple; - Datum values[Natts_pg_proc]; - bool nulls[Natts_pg_proc]; - bool replaces[Natts_pg_proc]; + Datum values[Natts_pg_proc] = {0}; + bool nulls[Natts_pg_proc] = {0}; + bool replaces[Natts_pg_proc] = {0}; int noldmembers; int nnewmembers; Oid *oldmembers; @@ -2586,9 +2568,6 @@ ExecGrant_Function(InternalGrant *istmt) nnewmembers = aclmembers(new_acl, &newmembers); /* finished building new ACL value, now insert it */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_proc_proacl - 1] = true; values[Anum_pg_proc_proacl - 1] = PointerGetDatum(new_acl); @@ -2643,9 +2622,9 @@ ExecGrant_Language(InternalGrant *istmt) Oid ownerId; HeapTuple tuple; HeapTuple newtuple; - Datum values[Natts_pg_language]; - bool nulls[Natts_pg_language]; - bool replaces[Natts_pg_language]; + Datum values[Natts_pg_language] = {0}; + bool nulls[Natts_pg_language] = {0}; + bool replaces[Natts_pg_language] = {0}; int noldmembers; int nnewmembers; Oid *oldmembers; @@ -2717,9 +2696,6 @@ ExecGrant_Language(InternalGrant *istmt) nnewmembers = aclmembers(new_acl, &newmembers); /* finished building new ACL value, now insert it */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_language_lanacl - 1] = true; values[Anum_pg_language_lanacl - 1] = PointerGetDatum(new_acl); @@ -2775,9 +2751,9 @@ ExecGrant_Largeobject(InternalGrant *istmt) Oid grantorId; Oid ownerId; HeapTuple newtuple; - Datum values[Natts_pg_largeobject_metadata]; - bool nulls[Natts_pg_largeobject_metadata]; - bool replaces[Natts_pg_largeobject_metadata]; + Datum values[Natts_pg_largeobject_metadata] = {0}; + bool nulls[Natts_pg_largeobject_metadata] = {0}; + bool replaces[Natts_pg_largeobject_metadata] = {0}; int noldmembers; int nnewmembers; Oid *oldmembers; @@ -2855,9 +2831,6 @@ ExecGrant_Largeobject(InternalGrant *istmt) nnewmembers = aclmembers(new_acl, &newmembers); /* finished building new ACL value, now insert it */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_largeobject_metadata_lomacl - 1] = true; values[Anum_pg_largeobject_metadata_lomacl - 1] @@ -2914,9 +2887,9 @@ ExecGrant_Namespace(InternalGrant *istmt) Oid ownerId; HeapTuple tuple; HeapTuple newtuple; - Datum values[Natts_pg_namespace]; - bool nulls[Natts_pg_namespace]; - bool replaces[Natts_pg_namespace]; + Datum values[Natts_pg_namespace] = {0}; + bool nulls[Natts_pg_namespace] = {0}; + bool replaces[Natts_pg_namespace] = {0}; int noldmembers; int nnewmembers; Oid *oldmembers; @@ -2981,9 +2954,6 @@ ExecGrant_Namespace(InternalGrant *istmt) nnewmembers = aclmembers(new_acl, &newmembers); /* finished building new ACL value, now insert it */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_namespace_nspacl - 1] = true; values[Anum_pg_namespace_nspacl - 1] = PointerGetDatum(new_acl); @@ -3037,9 +3007,9 @@ ExecGrant_Tablespace(InternalGrant *istmt) Oid grantorId; Oid ownerId; HeapTuple newtuple; - Datum values[Natts_pg_tablespace]; - bool nulls[Natts_pg_tablespace]; - bool replaces[Natts_pg_tablespace]; + Datum values[Natts_pg_tablespace] = {0}; + bool nulls[Natts_pg_tablespace] = {0}; + bool replaces[Natts_pg_tablespace] = {0}; int noldmembers; int nnewmembers; Oid *oldmembers; @@ -3105,9 +3075,6 @@ ExecGrant_Tablespace(InternalGrant *istmt) nnewmembers = aclmembers(new_acl, &newmembers); /* finished building new ACL value, now insert it */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_tablespace_spcacl - 1] = true; values[Anum_pg_tablespace_spcacl - 1] = PointerGetDatum(new_acl); @@ -3157,9 +3124,9 @@ ExecGrant_Type(InternalGrant *istmt) Oid grantorId; Oid ownerId; HeapTuple newtuple; - Datum values[Natts_pg_type]; - bool nulls[Natts_pg_type]; - bool replaces[Natts_pg_type]; + Datum values[Natts_pg_type] = {0}; + bool nulls[Natts_pg_type] = {0}; + bool replaces[Natts_pg_type] = {0}; int noldmembers; int nnewmembers; Oid *oldmembers; @@ -3239,9 +3206,6 @@ ExecGrant_Type(InternalGrant *istmt) nnewmembers = aclmembers(new_acl, &newmembers); /* finished building new ACL value, now insert it */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_type_typacl - 1] = true; values[Anum_pg_type_typacl - 1] = PointerGetDatum(new_acl); @@ -5992,17 +5956,13 @@ recordExtensionInitPrivWorker(Oid objoid, Oid classoid, int objsubid, Acl *new_a /* If we find an entry, update it with the latest ACL. */ if (HeapTupleIsValid(oldtuple)) { - Datum values[Natts_pg_init_privs]; - bool nulls[Natts_pg_init_privs]; - bool replace[Natts_pg_init_privs]; + Datum values[Natts_pg_init_privs] = {0}; + bool nulls[Natts_pg_init_privs] = {0}; + bool replace[Natts_pg_init_privs] = {0}; /* If we have a new ACL to set, then update the row with it. */ if (new_acl) { - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - MemSet(replace, false, sizeof(replace)); - values[Anum_pg_init_privs_initprivs - 1] = PointerGetDatum(new_acl); replace[Anum_pg_init_privs_initprivs - 1] = true; @@ -6020,7 +5980,7 @@ recordExtensionInitPrivWorker(Oid objoid, Oid classoid, int objsubid, Acl *new_a else { Datum values[Natts_pg_init_privs]; - bool nulls[Natts_pg_init_privs]; + bool nulls[Natts_pg_init_privs] = {0}; /* * Only add a new entry if the new ACL is non-NULL. @@ -6031,8 +5991,6 @@ recordExtensionInitPrivWorker(Oid objoid, Oid classoid, int objsubid, Acl *new_a if (new_acl) { /* No entry found, so add it. */ - MemSet(nulls, false, sizeof(nulls)); - values[Anum_pg_init_privs_objoid - 1] = ObjectIdGetDatum(objoid); values[Anum_pg_init_privs_classoid - 1] = ObjectIdGetDatum(classoid); values[Anum_pg_init_privs_objsubid - 1] = Int32GetDatum(objsubid); diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index b7bcdd9..235bc4e 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -695,14 +695,10 @@ InsertPgAttributeTuple(Relation pg_attribute_rel, Form_pg_attribute new_attribute, CatalogIndexState indstate) { - Datum values[Natts_pg_attribute]; - bool nulls[Natts_pg_attribute]; + Datum values[Natts_pg_attribute] = {0}; + bool nulls[Natts_pg_attribute] = {0}; HeapTuple tup; - /* This is a tad tedious, but way cleaner than what we used to do... */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - values[Anum_pg_attribute_attrelid - 1] = ObjectIdGetDatum(new_attribute->attrelid); values[Anum_pg_attribute_attname - 1] = NameGetDatum(&new_attribute->attname); values[Anum_pg_attribute_atttypid - 1] = ObjectIdGetDatum(new_attribute->atttypid); @@ -852,14 +848,10 @@ InsertPgClassTuple(Relation pg_class_desc, Datum reloptions) { Form_pg_class rd_rel = new_rel_desc->rd_rel; - Datum values[Natts_pg_class]; - bool nulls[Natts_pg_class]; + Datum values[Natts_pg_class] = {0}; + bool nulls[Natts_pg_class] = {0}; HeapTuple tup; - /* This is a tad tedious, but way cleaner than what we used to do... */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - values[Anum_pg_class_oid - 1] = ObjectIdGetDatum(new_rel_oid); values[Anum_pg_class_relname - 1] = NameGetDatum(&rd_rel->relname); values[Anum_pg_class_relnamespace - 1] = ObjectIdGetDatum(rd_rel->relnamespace); @@ -1645,14 +1637,11 @@ RemoveAttributeById(Oid relid, AttrNumber attnum) /* clear the missing value if any */ if (attStruct->atthasmissing) { - Datum valuesAtt[Natts_pg_attribute]; - bool nullsAtt[Natts_pg_attribute]; - bool replacesAtt[Natts_pg_attribute]; + Datum valuesAtt[Natts_pg_attribute] = {0}; + bool nullsAtt[Natts_pg_attribute] = {0}; + bool replacesAtt[Natts_pg_attribute] = {0}; /* update the tuple - set atthasmissing and attmissingval */ - MemSet(valuesAtt, 0, sizeof(valuesAtt)); - MemSet(nullsAtt, false, sizeof(nullsAtt)); - MemSet(replacesAtt, false, sizeof(replacesAtt)); valuesAtt[Anum_pg_attribute_atthasmissing - 1] = BoolGetDatum(false); @@ -2064,9 +2053,9 @@ RelationClearMissing(Relation rel) void SetAttrMissing(Oid relid, char *attname, char *value) { - Datum valuesAtt[Natts_pg_attribute]; - bool nullsAtt[Natts_pg_attribute]; - bool replacesAtt[Natts_pg_attribute]; + Datum valuesAtt[Natts_pg_attribute] = {0}; + bool nullsAtt[Natts_pg_attribute] = {0}; + bool replacesAtt[Natts_pg_attribute] = {0}; Datum missingval; Form_pg_attribute attStruct; Relation attrrel, @@ -2092,10 +2081,7 @@ SetAttrMissing(Oid relid, char *attname, char *value) Int32GetDatum(attStruct->atttypmod)); /* update the tuple - set atthasmissing and attmissingval */ - MemSet(valuesAtt, 0, sizeof(valuesAtt)); - MemSet(nullsAtt, false, sizeof(nullsAtt)); - MemSet(replacesAtt, false, sizeof(replacesAtt)); - + valuesAtt[Anum_pg_attribute_atthasmissing - 1] = BoolGetDatum(true); replacesAtt[Anum_pg_attribute_atthasmissing - 1] = true; valuesAtt[Anum_pg_attribute_attmissingval - 1] = missingval; @@ -2191,15 +2177,12 @@ StoreAttrDefault(Relation rel, AttrNumber attnum, Expr *expr2 = (Expr *) expr; EState *estate = NULL; ExprContext *econtext; - Datum valuesAtt[Natts_pg_attribute]; - bool nullsAtt[Natts_pg_attribute]; - bool replacesAtt[Natts_pg_attribute]; + Datum valuesAtt[Natts_pg_attribute] = {0}; + bool nullsAtt[Natts_pg_attribute] = {0}; + bool replacesAtt[Natts_pg_attribute] = {0}; Datum missingval = (Datum) 0; bool missingIsNull = true; - MemSet(valuesAtt, 0, sizeof(valuesAtt)); - MemSet(nullsAtt, false, sizeof(nullsAtt)); - MemSet(replacesAtt, false, sizeof(replacesAtt)); valuesAtt[Anum_pg_attribute_atthasdef - 1] = true; replacesAtt[Anum_pg_attribute_atthasdef - 1] = true; @@ -3419,7 +3402,7 @@ StorePartitionKey(Relation rel, Relation pg_partitioned_table; HeapTuple tuple; Datum values[Natts_pg_partitioned_table]; - bool nulls[Natts_pg_partitioned_table]; + bool nulls[Natts_pg_partitioned_table] = {0}; ObjectAddress myself; ObjectAddress referenced; @@ -3444,8 +3427,6 @@ StorePartitionKey(Relation rel, pg_partitioned_table = table_open(PartitionedRelationId, RowExclusiveLock); - MemSet(nulls, false, sizeof(nulls)); - /* Only this can ever be NULL */ if (!partexprDatum) nulls[Anum_pg_partitioned_table_partexprs - 1] = true; diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 098732c..b138fbe 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -546,7 +546,7 @@ UpdateIndexRelation(Oid indexoid, Datum exprsDatum; Datum predDatum; Datum values[Natts_pg_index]; - bool nulls[Natts_pg_index]; + bool nulls[Natts_pg_index] = {0}; Relation pg_index; HeapTuple tuple; int i; @@ -599,7 +599,6 @@ UpdateIndexRelation(Oid indexoid, /* * Build a pg_index tuple */ - MemSet(nulls, false, sizeof(nulls)); values[Anum_pg_index_indexrelid - 1] = ObjectIdGetDatum(indexoid); values[Anum_pg_index_indrelid - 1] = ObjectIdGetDatum(heapoid); diff --git a/src/backend/catalog/pg_collation.c b/src/backend/catalog/pg_collation.c index dd99d53..54840de 100644 --- a/src/backend/catalog/pg_collation.c +++ b/src/backend/catalog/pg_collation.c @@ -57,7 +57,7 @@ CollationCreate(const char *collname, Oid collnamespace, TupleDesc tupDesc; HeapTuple tup; Datum values[Natts_pg_collation]; - bool nulls[Natts_pg_collation]; + bool nulls[Natts_pg_collation] = {0}; NameData name_name, name_collate, name_ctype; @@ -151,7 +151,6 @@ CollationCreate(const char *collname, Oid collnamespace, tupDesc = RelationGetDescr(rel); /* form a tuple */ - memset(nulls, 0, sizeof(nulls)); namestrcpy(&name_name, collname); oid = GetNewOidWithIndex(rel, CollationOidIndexId, diff --git a/src/backend/catalog/pg_db_role_setting.c b/src/backend/catalog/pg_db_role_setting.c index 20acac2..2632de9 100644 --- a/src/backend/catalog/pg_db_role_setting.c +++ b/src/backend/catalog/pg_db_role_setting.c @@ -136,11 +136,9 @@ AlterSetting(Oid databaseid, Oid roleid, VariableSetStmt *setstmt) /* non-null valuestr means it's not RESET, so insert a new tuple */ HeapTuple newtuple; Datum values[Natts_pg_db_role_setting]; - bool nulls[Natts_pg_db_role_setting]; + bool nulls[Natts_pg_db_role_setting] = {0}; ArrayType *a; - memset(nulls, false, sizeof(nulls)); - a = GUCArrayAdd(NULL, setstmt->name, valuestr); values[Anum_pg_db_role_setting_setdatabase - 1] = diff --git a/src/backend/catalog/pg_depend.c b/src/backend/catalog/pg_depend.c index a060c25..c78fd38 100644 --- a/src/backend/catalog/pg_depend.c +++ b/src/backend/catalog/pg_depend.c @@ -61,7 +61,7 @@ recordMultipleDependencies(const ObjectAddress *depender, CatalogIndexState indstate; HeapTuple tup; int i; - bool nulls[Natts_pg_depend]; + bool nulls[Natts_pg_depend] = {0}; Datum values[Natts_pg_depend]; if (nreferenced <= 0) @@ -79,8 +79,6 @@ recordMultipleDependencies(const ObjectAddress *depender, /* Don't open indexes unless we need to make an update */ indstate = NULL; - memset(nulls, false, sizeof(nulls)); - for (i = 0; i < nreferenced; i++, referenced++) { /* diff --git a/src/backend/catalog/pg_enum.c b/src/backend/catalog/pg_enum.c index d0ff802..0ae47dd 100644 --- a/src/backend/catalog/pg_enum.c +++ b/src/backend/catalog/pg_enum.c @@ -66,7 +66,7 @@ EnumValuesCreate(Oid enumTypeOid, List *vals) int elemno, num_elems; Datum values[Natts_pg_enum]; - bool nulls[Natts_pg_enum]; + bool nulls[Natts_pg_enum] = {0}; ListCell *lc; HeapTuple tup; @@ -111,8 +111,6 @@ EnumValuesCreate(Oid enumTypeOid, List *vals) qsort(oids, num_elems, sizeof(Oid), oid_cmp); /* and make the entries */ - memset(nulls, false, sizeof(nulls)); - elemno = 0; foreach(lc, vals) { @@ -215,7 +213,7 @@ AddEnumLabel(Oid enumTypeOid, Relation pg_enum; Oid newOid; Datum values[Natts_pg_enum]; - bool nulls[Natts_pg_enum]; + bool nulls[Natts_pg_enum] = {0}; NameData enumlabel; HeapTuple enum_tup; float4 newelemorder; @@ -480,7 +478,6 @@ restart: ReleaseCatCacheList(list); /* Create the new pg_enum entry */ - memset(nulls, false, sizeof(nulls)); values[Anum_pg_enum_oid - 1] = ObjectIdGetDatum(newOid); values[Anum_pg_enum_enumtypid - 1] = ObjectIdGetDatum(enumTypeOid); values[Anum_pg_enum_enumsortorder - 1] = Float4GetDatum(newelemorder); diff --git a/src/backend/catalog/pg_inherits.c b/src/backend/catalog/pg_inherits.c index 59af162..e71e442 100644 --- a/src/backend/catalog/pg_inherits.c +++ b/src/backend/catalog/pg_inherits.c @@ -417,7 +417,7 @@ void StoreSingleInheritance(Oid relationId, Oid parentOid, int32 seqNumber) { Datum values[Natts_pg_inherits]; - bool nulls[Natts_pg_inherits]; + bool nulls[Natts_pg_inherits] = {0}; HeapTuple tuple; Relation inhRelation; @@ -430,8 +430,6 @@ StoreSingleInheritance(Oid relationId, Oid parentOid, int32 seqNumber) values[Anum_pg_inherits_inhparent - 1] = ObjectIdGetDatum(parentOid); values[Anum_pg_inherits_inhseqno - 1] = Int32GetDatum(seqNumber); - memset(nulls, 0, sizeof(nulls)); - tuple = heap_form_tuple(RelationGetDescr(inhRelation), values, nulls); CatalogTupleInsert(inhRelation, tuple); diff --git a/src/backend/catalog/pg_largeobject.c b/src/backend/catalog/pg_largeobject.c index 1a68702..ef8afb0 100644 --- a/src/backend/catalog/pg_largeobject.c +++ b/src/backend/catalog/pg_largeobject.c @@ -42,8 +42,8 @@ LargeObjectCreate(Oid loid) Relation pg_lo_meta; HeapTuple ntup; Oid loid_new; - Datum values[Natts_pg_largeobject_metadata]; - bool nulls[Natts_pg_largeobject_metadata]; + Datum values[Natts_pg_largeobject_metadata] = {0}; + bool nulls[Natts_pg_largeobject_metadata] = {0}; pg_lo_meta = table_open(LargeObjectMetadataRelationId, RowExclusiveLock); @@ -51,8 +51,6 @@ LargeObjectCreate(Oid loid) /* * Insert metadata of the largeobject */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); if (OidIsValid(loid)) loid_new = loid; diff --git a/src/backend/catalog/pg_publication.c b/src/backend/catalog/pg_publication.c index fd5da7d..6e996f9 100644 --- a/src/backend/catalog/pg_publication.c +++ b/src/backend/catalog/pg_publication.c @@ -154,8 +154,8 @@ publication_add_relation(Oid pubid, Relation targetrel, { Relation rel; HeapTuple tup; - Datum values[Natts_pg_publication_rel]; - bool nulls[Natts_pg_publication_rel]; + Datum values[Natts_pg_publication_rel] = {0}; + bool nulls[Natts_pg_publication_rel] = {0}; Oid relid = RelationGetRelid(targetrel); Oid prrelid; Publication *pub = GetPublication(pubid); @@ -186,8 +186,6 @@ publication_add_relation(Oid pubid, Relation targetrel, check_publication_add_relation(targetrel); /* Form a tuple. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); prrelid = GetNewOidWithIndex(rel, PublicationRelObjectIndexId, Anum_pg_publication_rel_oid); diff --git a/src/backend/catalog/pg_range.c b/src/backend/catalog/pg_range.c index e6e138b..fe46639 100644 --- a/src/backend/catalog/pg_range.c +++ b/src/backend/catalog/pg_range.c @@ -39,15 +39,13 @@ RangeCreate(Oid rangeTypeOid, Oid rangeSubType, Oid rangeCollation, { Relation pg_range; Datum values[Natts_pg_range]; - bool nulls[Natts_pg_range]; + bool nulls[Natts_pg_range] = {0}; HeapTuple tup; ObjectAddress myself; ObjectAddress referenced; pg_range = table_open(RangeRelationId, RowExclusiveLock); - memset(nulls, 0, sizeof(nulls)); - values[Anum_pg_range_rngtypid - 1] = ObjectIdGetDatum(rangeTypeOid); values[Anum_pg_range_rngsubtype - 1] = ObjectIdGetDatum(rangeSubType); values[Anum_pg_range_rngcollation - 1] = ObjectIdGetDatum(rangeCollation); diff --git a/src/backend/catalog/pg_shdepend.c b/src/backend/catalog/pg_shdepend.c index fb7f8dd..34c39b3 100644 --- a/src/backend/catalog/pg_shdepend.c +++ b/src/backend/catalog/pg_shdepend.c @@ -273,9 +273,7 @@ shdepChangeDep(Relation sdepRel, { /* Need to insert new entry */ Datum values[Natts_pg_shdepend]; - bool nulls[Natts_pg_shdepend]; - - memset(nulls, false, sizeof(nulls)); + bool nulls[Natts_pg_shdepend] = {0}; values[Anum_pg_shdepend_dbid - 1] = ObjectIdGetDatum(dbid); values[Anum_pg_shdepend_classid - 1] = ObjectIdGetDatum(classid); @@ -801,9 +799,9 @@ copyTemplateDependencies(Oid templateDbId, Oid newDbId) SysScanDesc scan; HeapTuple tup; CatalogIndexState indstate; - Datum values[Natts_pg_shdepend]; - bool nulls[Natts_pg_shdepend]; - bool replace[Natts_pg_shdepend]; + Datum values[Natts_pg_shdepend] = {0}; + bool nulls[Natts_pg_shdepend] = {0}; + bool replace[Natts_pg_shdepend] = {0}; sdepRel = table_open(SharedDependRelationId, RowExclusiveLock); sdepDesc = RelationGetDescr(sdepRel); @@ -820,10 +818,6 @@ copyTemplateDependencies(Oid templateDbId, Oid newDbId) NULL, 1, key); /* Set up to copy the tuples except for inserting newDbId */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - memset(replace, false, sizeof(replace)); - replace[Anum_pg_shdepend_dbid - 1] = true; values[Anum_pg_shdepend_dbid - 1] = ObjectIdGetDatum(newDbId); @@ -934,7 +928,7 @@ shdepAddDependency(Relation sdepRel, { HeapTuple tup; Datum values[Natts_pg_shdepend]; - bool nulls[Natts_pg_shdepend]; + bool nulls[Natts_pg_shdepend] = {0}; /* * Make sure the object doesn't go away while we record the dependency on @@ -943,8 +937,6 @@ shdepAddDependency(Relation sdepRel, */ shdepLockAndCheckObject(refclassId, refobjId); - memset(nulls, false, sizeof(nulls)); - /* * Form the new tuple and record the dependency. */ diff --git a/src/backend/catalog/pg_subscription.c b/src/backend/catalog/pg_subscription.c index afee283..e3b9261 100644 --- a/src/backend/catalog/pg_subscription.c +++ b/src/backend/catalog/pg_subscription.c @@ -243,8 +243,8 @@ AddSubscriptionRelState(Oid subid, Oid relid, char state, { Relation rel; HeapTuple tup; - bool nulls[Natts_pg_subscription_rel]; - Datum values[Natts_pg_subscription_rel]; + bool nulls[Natts_pg_subscription_rel] = {0}; + Datum values[Natts_pg_subscription_rel] = {0}; LockSharedObject(SubscriptionRelationId, subid, 0, AccessShareLock); @@ -259,8 +259,6 @@ AddSubscriptionRelState(Oid subid, Oid relid, char state, relid, subid); /* Form the tuple. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); values[Anum_pg_subscription_rel_srsubid - 1] = ObjectIdGetDatum(subid); values[Anum_pg_subscription_rel_srrelid - 1] = ObjectIdGetDatum(relid); values[Anum_pg_subscription_rel_srsubstate - 1] = CharGetDatum(state); @@ -289,9 +287,9 @@ UpdateSubscriptionRelState(Oid subid, Oid relid, char state, { Relation rel; HeapTuple tup; - bool nulls[Natts_pg_subscription_rel]; - Datum values[Natts_pg_subscription_rel]; - bool replaces[Natts_pg_subscription_rel]; + bool nulls[Natts_pg_subscription_rel] = {0}; + Datum values[Natts_pg_subscription_rel] = {0}; + bool replaces[Natts_pg_subscription_rel] = {0}; LockSharedObject(SubscriptionRelationId, subid, 0, AccessShareLock); @@ -306,10 +304,6 @@ UpdateSubscriptionRelState(Oid subid, Oid relid, char state, relid, subid); /* Update the tuple. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - memset(replaces, false, sizeof(replaces)); - replaces[Anum_pg_subscription_rel_srsubstate - 1] = true; values[Anum_pg_subscription_rel_srsubstate - 1] = CharGetDatum(state); diff --git a/src/backend/commands/amcmds.c b/src/backend/commands/amcmds.c index c0e4098..d4e0b1c 100644 --- a/src/backend/commands/amcmds.c +++ b/src/backend/commands/amcmds.c @@ -46,8 +46,8 @@ CreateAccessMethod(CreateAmStmt *stmt) ObjectAddress referenced; Oid amoid; Oid amhandler; - bool nulls[Natts_pg_am]; - Datum values[Natts_pg_am]; + bool nulls[Natts_pg_am] = {0}; + Datum values[Natts_pg_am] = {0}; HeapTuple tup; rel = table_open(AccessMethodRelationId, RowExclusiveLock); @@ -79,9 +79,6 @@ CreateAccessMethod(CreateAmStmt *stmt) /* * Insert tuple into pg_am. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - amoid = GetNewOidWithIndex(rel, AmOidIndexId, Anum_pg_am_oid); values[Anum_pg_am_oid - 1] = ObjectIdGetDatum(amoid); values[Anum_pg_am_amname - 1] = diff --git a/src/backend/commands/collationcmds.c b/src/backend/commands/collationcmds.c index 919e092..8047ee6 100644 --- a/src/backend/commands/collationcmds.c +++ b/src/backend/commands/collationcmds.c @@ -315,18 +315,14 @@ AlterCollation(AlterCollationStmt *stmt) elog(ERROR, "invalid collation version change"); else if (oldversion && newversion && strcmp(newversion, oldversion) != 0) { - bool nulls[Natts_pg_collation]; - bool replaces[Natts_pg_collation]; - Datum values[Natts_pg_collation]; + bool nulls[Natts_pg_collation] = {0}; + bool replaces[Natts_pg_collation] = {0}; + Datum values[Natts_pg_collation] = {0}; ereport(NOTICE, (errmsg("changing version from %s to %s", oldversion, newversion))); - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - memset(replaces, false, sizeof(replaces)); - values[Anum_pg_collation_collversion - 1] = CStringGetTextDatum(newversion); replaces[Anum_pg_collation_collversion - 1] = true; diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c index f7ee983..54e1122 100644 --- a/src/backend/commands/event_trigger.c +++ b/src/backend/commands/event_trigger.c @@ -381,7 +381,7 @@ insert_event_trigger_tuple(const char *trigname, const char *eventname, Oid evtO Oid trigoid; HeapTuple tuple; Datum values[Natts_pg_trigger]; - bool nulls[Natts_pg_trigger]; + bool nulls[Natts_pg_trigger] = {0}; NameData evtnamedata, evteventdata; ObjectAddress myself, @@ -394,7 +394,6 @@ insert_event_trigger_tuple(const char *trigname, const char *eventname, Oid evtO trigoid = GetNewOidWithIndex(tgrel, EventTriggerOidIndexId, Anum_pg_event_trigger_oid); values[Anum_pg_event_trigger_oid - 1] = ObjectIdGetDatum(trigoid); - memset(nulls, false, sizeof(nulls)); namestrcpy(&evtnamedata, trigname); values[Anum_pg_event_trigger_evtname - 1] = NameGetDatum(&evtnamedata); namestrcpy(&evteventdata, eventname); @@ -1494,14 +1493,11 @@ pg_event_trigger_dropped_objects(PG_FUNCTION_ARGS) { SQLDropObject *obj; int i = 0; - Datum values[12]; - bool nulls[12]; + Datum values[12] = {0}; + bool nulls[12] = {0}; obj = slist_container(SQLDropObject, next, iter.cur); - MemSet(values, 0, sizeof(values)); - MemSet(nulls, 0, sizeof(nulls)); - /* classid */ values[i++] = ObjectIdGetDatum(obj->address.classId); @@ -2046,7 +2042,7 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS) { CollectedCommand *cmd = lfirst(lc); Datum values[9]; - bool nulls[9]; + bool nulls[9] = {0}; ObjectAddress addr; int i = 0; @@ -2064,8 +2060,6 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS) !OidIsValid(cmd->d.simple.address.objectId)) continue; - MemSet(nulls, 0, sizeof(nulls)); - switch (cmd->type) { case SCT_Simple: diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c index f7202cc..8e343fd 100644 --- a/src/backend/commands/extension.c +++ b/src/backend/commands/extension.c @@ -1771,8 +1771,8 @@ InsertExtensionTuple(const char *extName, Oid extOwner, { Oid extensionOid; Relation rel; - Datum values[Natts_pg_extension]; - bool nulls[Natts_pg_extension]; + Datum values[Natts_pg_extension] = {0}; + bool nulls[Natts_pg_extension] = {0}; HeapTuple tuple; ObjectAddress myself; ObjectAddress nsp; @@ -1783,9 +1783,6 @@ InsertExtensionTuple(const char *extName, Oid extOwner, */ rel = table_open(ExtensionRelationId, RowExclusiveLock); - memset(values, 0, sizeof(values)); - memset(nulls, 0, sizeof(nulls)); - extensionOid = GetNewOidWithIndex(rel, ExtensionOidIndexId, Anum_pg_extension_oid); values[Anum_pg_extension_oid - 1] = ObjectIdGetDatum(extensionOid); @@ -1960,8 +1957,8 @@ pg_available_extensions(PG_FUNCTION_ARGS) { ExtensionControlFile *control; char *extname; - Datum values[3]; - bool nulls[3]; + Datum values[3] = {0}; + bool nulls[3] = {0}; if (!is_extension_control_filename(de->d_name)) continue; @@ -1976,9 +1973,6 @@ pg_available_extensions(PG_FUNCTION_ARGS) control = read_extension_control_file(extname); - memset(values, 0, sizeof(values)); - memset(nulls, 0, sizeof(nulls)); - /* name */ values[0] = DirectFunctionCall1(namein, CStringGetDatum(control->name)); @@ -2117,8 +2111,8 @@ get_available_versions_for_extension(ExtensionControlFile *pcontrol, { ExtensionVersionInfo *evi = (ExtensionVersionInfo *) lfirst(lc); ExtensionControlFile *control; - Datum values[7]; - bool nulls[7]; + Datum values[7] = {0}; + bool nulls[7] = {0}; ListCell *lc2; if (!evi->installable) @@ -2129,9 +2123,6 @@ get_available_versions_for_extension(ExtensionControlFile *pcontrol, */ control = read_extension_aux_control_file(pcontrol, evi->name); - memset(values, 0, sizeof(values)); - memset(nulls, 0, sizeof(nulls)); - /* name */ values[0] = DirectFunctionCall1(namein, CStringGetDatum(control->name)); @@ -2292,8 +2283,8 @@ pg_extension_update_paths(PG_FUNCTION_ARGS) { ExtensionVersionInfo *evi2 = (ExtensionVersionInfo *) lfirst(lc2); List *path; - Datum values[3]; - bool nulls[3]; + Datum values[3] = {0}; + bool nulls[3] = {0}; if (evi1 == evi2) continue; @@ -2302,8 +2293,6 @@ pg_extension_update_paths(PG_FUNCTION_ARGS) path = find_update_path(evi_list, evi1, evi2, false, true); /* Emit result row */ - memset(values, 0, sizeof(values)); - memset(nulls, 0, sizeof(nulls)); /* source */ values[0] = CStringGetTextDatum(evi1->name); @@ -3061,9 +3050,9 @@ ApplyExtensionUpdates(Oid extensionOid, SysScanDesc extScan; HeapTuple extTup; Form_pg_extension extForm; - Datum values[Natts_pg_extension]; - bool nulls[Natts_pg_extension]; - bool repl[Natts_pg_extension]; + Datum values[Natts_pg_extension] = {0}; + bool nulls[Natts_pg_extension] = {0}; + bool repl[Natts_pg_extension] = {0}; ObjectAddress myself; ListCell *lc; @@ -3100,10 +3089,6 @@ ApplyExtensionUpdates(Oid extensionOid, /* * Modify extrelocatable and extversion in the pg_extension tuple */ - memset(values, 0, sizeof(values)); - memset(nulls, 0, sizeof(nulls)); - memset(repl, 0, sizeof(repl)); - values[Anum_pg_extension_extrelocatable - 1] = BoolGetDatum(control->relocatable); repl[Anum_pg_extension_extrelocatable - 1] = true; diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c index f96c278..9588554 100644 --- a/src/backend/commands/foreigncmds.c +++ b/src/backend/commands/foreigncmds.c @@ -563,8 +563,8 @@ ObjectAddress CreateForeignDataWrapper(CreateFdwStmt *stmt) { Relation rel; - Datum values[Natts_pg_foreign_data_wrapper]; - bool nulls[Natts_pg_foreign_data_wrapper]; + Datum values[Natts_pg_foreign_data_wrapper] = {0}; + bool nulls[Natts_pg_foreign_data_wrapper] = {0}; HeapTuple tuple; Oid fdwId; bool handler_given; @@ -601,9 +601,6 @@ CreateForeignDataWrapper(CreateFdwStmt *stmt) /* * Insert tuple into pg_foreign_data_wrapper. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - fdwId = GetNewOidWithIndex(rel, ForeignDataWrapperOidIndexId, Anum_pg_foreign_data_wrapper_oid); values[Anum_pg_foreign_data_wrapper_oid - 1] = ObjectIdGetDatum(fdwId); @@ -868,8 +865,8 @@ CreateForeignServer(CreateForeignServerStmt *stmt) { Relation rel; Datum srvoptions; - Datum values[Natts_pg_foreign_server]; - bool nulls[Natts_pg_foreign_server]; + Datum values[Natts_pg_foreign_server] = {0}; + bool nulls[Natts_pg_foreign_server] = {0}; HeapTuple tuple; Oid srvId; Oid ownerId; @@ -918,9 +915,6 @@ CreateForeignServer(CreateForeignServerStmt *stmt) /* * Insert tuple into pg_foreign_server. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - srvId = GetNewOidWithIndex(rel, ForeignServerOidIndexId, Anum_pg_foreign_server_oid); values[Anum_pg_foreign_server_oid - 1] = ObjectIdGetDatum(srvId); @@ -1145,8 +1139,8 @@ CreateUserMapping(CreateUserMappingStmt *stmt) { Relation rel; Datum useoptions; - Datum values[Natts_pg_user_mapping]; - bool nulls[Natts_pg_user_mapping]; + Datum values[Natts_pg_user_mapping] = {0}; + bool nulls[Natts_pg_user_mapping] = {0}; HeapTuple tuple; Oid useId; Oid umId; @@ -1201,9 +1195,6 @@ CreateUserMapping(CreateUserMappingStmt *stmt) /* * Insert tuple into pg_user_mapping. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - umId = GetNewOidWithIndex(rel, UserMappingOidIndexId, Anum_pg_user_mapping_oid); values[Anum_pg_user_mapping_oid - 1] = ObjectIdGetDatum(umId); @@ -1465,8 +1456,8 @@ CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid) { Relation ftrel; Datum ftoptions; - Datum values[Natts_pg_foreign_table]; - bool nulls[Natts_pg_foreign_table]; + Datum values[Natts_pg_foreign_table] = {0}; + bool nulls[Natts_pg_foreign_table] = {0}; HeapTuple tuple; AclResult aclresult; ObjectAddress myself; @@ -1502,9 +1493,6 @@ CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid) /* * Insert tuple into pg_foreign_table. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - values[Anum_pg_foreign_table_ftrelid - 1] = ObjectIdGetDatum(relid); values[Anum_pg_foreign_table_ftserver - 1] = ObjectIdGetDatum(server->serverid); /* Add table generic options */ diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c index 40f1f9a..a6c7394 100644 --- a/src/backend/commands/functioncmds.c +++ b/src/backend/commands/functioncmds.c @@ -1504,7 +1504,7 @@ CreateCast(CreateCastStmt *stmt) Relation relation; HeapTuple tuple; Datum values[Natts_pg_cast]; - bool nulls[Natts_pg_cast]; + bool nulls[Natts_pg_cast] = {0}; ObjectAddress myself, referenced; AclResult aclresult; @@ -1757,8 +1757,6 @@ CreateCast(CreateCastStmt *stmt) values[Anum_pg_cast_castcontext - 1] = CharGetDatum(castcontext); values[Anum_pg_cast_castmethod - 1] = CharGetDatum(castmethod); - MemSet(nulls, false, sizeof(nulls)); - tuple = heap_form_tuple(RelationGetDescr(relation), values, nulls); CatalogTupleInsert(relation, tuple); @@ -1893,8 +1891,8 @@ CreateTransform(CreateTransformStmt *stmt) AclResult aclresult; Form_pg_proc procstruct; Datum values[Natts_pg_transform]; - bool nulls[Natts_pg_transform]; - bool replaces[Natts_pg_transform]; + bool nulls[Natts_pg_transform] = {0}; + bool replaces[Natts_pg_transform] = {0}; Oid transformid; HeapTuple tuple; HeapTuple newtuple; @@ -1999,8 +1997,6 @@ CreateTransform(CreateTransformStmt *stmt) values[Anum_pg_transform_trffromsql - 1] = ObjectIdGetDatum(fromsqlfuncid); values[Anum_pg_transform_trftosql - 1] = ObjectIdGetDatum(tosqlfuncid); - MemSet(nulls, false, sizeof(nulls)); - relation = table_open(TransformRelationId, RowExclusiveLock); tuple = SearchSysCache2(TRFTYPELANG, @@ -2017,7 +2013,6 @@ CreateTransform(CreateTransformStmt *stmt) format_type_be(typeid), stmt->lang))); - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_transform_trffromsql - 1] = true; replaces[Anum_pg_transform_trftosql - 1] = true; diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c index 6a1ccde..8272733 100644 --- a/src/backend/commands/opclasscmds.c +++ b/src/backend/commands/opclasscmds.c @@ -248,8 +248,8 @@ CreateOpFamily(const char *amname, const char *opfname, Oid namespaceoid, Oid am Oid opfamilyoid; Relation rel; HeapTuple tup; - Datum values[Natts_pg_opfamily]; - bool nulls[Natts_pg_opfamily]; + Datum values[Natts_pg_opfamily] = {0}; + bool nulls[Natts_pg_opfamily] = {0}; NameData opfName; ObjectAddress myself, referenced; @@ -272,9 +272,6 @@ CreateOpFamily(const char *amname, const char *opfname, Oid namespaceoid, Oid am /* * Okay, let's create the pg_opfamily entry. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - opfamilyoid = GetNewOidWithIndex(rel, OpfamilyOidIndexId, Anum_pg_opfamily_oid); values[Anum_pg_opfamily_oid - 1] = ObjectIdGetDatum(opfamilyoid); @@ -347,8 +344,8 @@ DefineOpClass(CreateOpClassStmt *stmt) HeapTuple tup; Form_pg_am amform; IndexAmRoutine *amroutine; - Datum values[Natts_pg_opclass]; - bool nulls[Natts_pg_opclass]; + Datum values[Natts_pg_opclass] = {0}; + bool nulls[Natts_pg_opclass] = {0}; AclResult aclresult; NameData opcName; ObjectAddress myself, @@ -639,9 +636,6 @@ DefineOpClass(CreateOpClassStmt *stmt) /* * Okay, let's create the pg_opclass entry. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - opclassoid = GetNewOidWithIndex(rel, OpclassOidIndexId, Anum_pg_opclass_oid); values[Anum_pg_opclass_oid - 1] = ObjectIdGetDatum(opclassoid); @@ -1308,8 +1302,8 @@ storeOperators(List *opfamilyname, Oid amoid, List *operators, bool isAdd) { Relation rel; - Datum values[Natts_pg_amop]; - bool nulls[Natts_pg_amop]; + Datum values[Natts_pg_amop] = {0}; + bool nulls[Natts_pg_amop] = {0}; HeapTuple tup; Oid entryoid; ObjectAddress myself, @@ -1344,8 +1338,6 @@ storeOperators(List *opfamilyname, Oid amoid, oppurpose = OidIsValid(op->sortfamily) ? AMOP_ORDER : AMOP_SEARCH; /* Create the pg_amop entry */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); entryoid = GetNewOidWithIndex(rel, AccessMethodOperatorOidIndexId, Anum_pg_amop_oid); @@ -1426,8 +1418,8 @@ storeProcedures(List *opfamilyname, Oid amoid, List *procedures, bool isAdd) { Relation rel; - Datum values[Natts_pg_amproc]; - bool nulls[Natts_pg_amproc]; + Datum values[Natts_pg_amproc] = {0}; + bool nulls[Natts_pg_amproc] = {0}; HeapTuple tup; Oid entryoid; ObjectAddress myself, @@ -1459,9 +1451,6 @@ storeProcedures(List *opfamilyname, Oid amoid, NameListToString(opfamilyname)))); /* Create the pg_amproc entry */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - entryoid = GetNewOidWithIndex(rel, AccessMethodProcedureOidIndexId, Anum_pg_amproc_oid); values[Anum_pg_amproc_oid - 1] = ObjectIdGetDatum(entryoid); diff --git a/src/backend/commands/prepare.c b/src/backend/commands/prepare.c index 7e0a041..8998686 100644 --- a/src/backend/commands/prepare.c +++ b/src/backend/commands/prepare.c @@ -757,9 +757,7 @@ pg_prepared_statement(PG_FUNCTION_ARGS) while ((prep_stmt = hash_seq_search(&hash_seq)) != NULL) { Datum values[5]; - bool nulls[5]; - - MemSet(nulls, 0, sizeof(nulls)); + bool nulls[5] = {0}; values[0] = CStringGetTextDatum(prep_stmt->stmt_name); values[1] = CStringGetTextDatum(prep_stmt->plansource->query_string); diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c index 343cd1d..057b474 100644 --- a/src/backend/commands/proclang.c +++ b/src/backend/commands/proclang.c @@ -325,8 +325,8 @@ create_proc_lang(const char *languageName, bool replace, { Relation rel; TupleDesc tupDesc; - Datum values[Natts_pg_language]; - bool nulls[Natts_pg_language]; + Datum values[Natts_pg_language] = {0}; + bool nulls[Natts_pg_language] = {0}; bool replaces[Natts_pg_language]; NameData langname; HeapTuple oldtup; @@ -340,8 +340,6 @@ create_proc_lang(const char *languageName, bool replace, tupDesc = RelationGetDescr(rel); /* Prepare data to be inserted */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); memset(replaces, true, sizeof(replaces)); namestrcpy(&langname, languageName); diff --git a/src/backend/commands/publicationcmds.c b/src/backend/commands/publicationcmds.c index f115d4b..8104ce8 100644 --- a/src/backend/commands/publicationcmds.c +++ b/src/backend/commands/publicationcmds.c @@ -142,8 +142,8 @@ CreatePublication(CreatePublicationStmt *stmt) Relation rel; ObjectAddress myself; Oid puboid; - bool nulls[Natts_pg_publication]; - Datum values[Natts_pg_publication]; + bool nulls[Natts_pg_publication] = {0}; + Datum values[Natts_pg_publication] = {0}; HeapTuple tup; bool publish_given; bool publish_insert; @@ -178,9 +178,6 @@ CreatePublication(CreatePublicationStmt *stmt) } /* Form a tuple. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - values[Anum_pg_publication_pubname - 1] = DirectFunctionCall1(namein, CStringGetDatum(stmt->pubname)); values[Anum_pg_publication_pubowner - 1] = ObjectIdGetDatum(GetUserId()); @@ -250,9 +247,9 @@ static void AlterPublicationOptions(AlterPublicationStmt *stmt, Relation rel, HeapTuple tup) { - bool nulls[Natts_pg_publication]; - bool replaces[Natts_pg_publication]; - Datum values[Natts_pg_publication]; + bool nulls[Natts_pg_publication] = {0}; + bool replaces[Natts_pg_publication] = {0}; + Datum values[Natts_pg_publication] = {0}; bool publish_given; bool publish_insert; bool publish_update; @@ -267,10 +264,6 @@ AlterPublicationOptions(AlterPublicationStmt *stmt, Relation rel, &publish_truncate); /* Everything ok, form a new tuple. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - memset(replaces, false, sizeof(replaces)); - if (publish_given) { values[Anum_pg_publication_pubinsert - 1] = BoolGetDatum(publish_insert); diff --git a/src/backend/commands/seclabel.c b/src/backend/commands/seclabel.c index 63219ad..be9d11d 100644 --- a/src/backend/commands/seclabel.c +++ b/src/backend/commands/seclabel.c @@ -258,12 +258,10 @@ SetSharedSecurityLabel(const ObjectAddress *object, HeapTuple oldtup; HeapTuple newtup = NULL; Datum values[Natts_pg_shseclabel]; - bool nulls[Natts_pg_shseclabel]; - bool replaces[Natts_pg_shseclabel]; + bool nulls[Natts_pg_shseclabel] = {0}; + bool replaces[Natts_pg_shseclabel] = {0}; /* Prepare to form or update a tuple, if necessary. */ - memset(nulls, false, sizeof(nulls)); - memset(replaces, false, sizeof(replaces)); values[Anum_pg_shseclabel_objoid - 1] = ObjectIdGetDatum(object->objectId); values[Anum_pg_shseclabel_classoid - 1] = ObjectIdGetDatum(object->classId); values[Anum_pg_shseclabel_provider - 1] = CStringGetTextDatum(provider); @@ -333,8 +331,8 @@ SetSecurityLabel(const ObjectAddress *object, HeapTuple oldtup; HeapTuple newtup = NULL; Datum values[Natts_pg_seclabel]; - bool nulls[Natts_pg_seclabel]; - bool replaces[Natts_pg_seclabel]; + bool nulls[Natts_pg_seclabel] = {0}; + bool replaces[Natts_pg_seclabel] = {0}; /* Shared objects have their own security label catalog. */ if (IsSharedRelation(object->classId)) @@ -344,8 +342,6 @@ SetSecurityLabel(const ObjectAddress *object, } /* Prepare to form or update a tuple, if necessary. */ - memset(nulls, false, sizeof(nulls)); - memset(replaces, false, sizeof(replaces)); values[Anum_pg_seclabel_objoid - 1] = ObjectIdGetDatum(object->objectId); values[Anum_pg_seclabel_classoid - 1] = ObjectIdGetDatum(object->classId); values[Anum_pg_seclabel_objsubid - 1] = Int32GetDatum(object->objectSubId); diff --git a/src/backend/commands/statscmds.c b/src/backend/commands/statscmds.c index f51eb7b..c5ab619 100644 --- a/src/backend/commands/statscmds.c +++ b/src/backend/commands/statscmds.c @@ -69,10 +69,10 @@ CreateStatistics(CreateStatsStmt *stmt) Oid namespaceId; Oid stxowner = GetUserId(); HeapTuple htup; - Datum values[Natts_pg_statistic_ext]; - bool nulls[Natts_pg_statistic_ext]; - Datum datavalues[Natts_pg_statistic_ext_data]; - bool datanulls[Natts_pg_statistic_ext_data]; + Datum values[Natts_pg_statistic_ext] = {0}; + bool nulls[Natts_pg_statistic_ext] = {0}; + Datum datavalues[Natts_pg_statistic_ext_data] = {0}; + bool datanulls[Natts_pg_statistic_ext_data] = {0}; int2vector *stxkeys; Relation statrel; Relation datarel; @@ -330,9 +330,6 @@ CreateStatistics(CreateStatsStmt *stmt) /* * Everything seems fine, so let's build the pg_statistic_ext tuple. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - statoid = GetNewOidWithIndex(statrel, StatisticExtOidIndexId, Anum_pg_statistic_ext_oid); values[Anum_pg_statistic_ext_oid - 1] = ObjectIdGetDatum(statoid); @@ -357,9 +354,6 @@ CreateStatistics(CreateStatsStmt *stmt) */ datarel = table_open(StatisticExtDataRelationId, RowExclusiveLock); - memset(datavalues, 0, sizeof(datavalues)); - memset(datanulls, false, sizeof(datanulls)); - datavalues[Anum_pg_statistic_ext_data_stxoid - 1] = ObjectIdGetDatum(statoid); /* no statistics built yet */ @@ -607,9 +601,9 @@ UpdateStatisticsForTypeChange(Oid statsOid, Oid relationOid, int attnum, Relation rel; - Datum values[Natts_pg_statistic_ext_data]; - bool nulls[Natts_pg_statistic_ext_data]; - bool replaces[Natts_pg_statistic_ext_data]; + Datum values[Natts_pg_statistic_ext_data] = {0}; + bool nulls[Natts_pg_statistic_ext_data] = {0}; + bool replaces[Natts_pg_statistic_ext_data] = {0}; oldtup = SearchSysCache1(STATEXTDATASTXOID, ObjectIdGetDatum(statsOid)); if (!HeapTupleIsValid(oldtup)) @@ -630,10 +624,6 @@ UpdateStatisticsForTypeChange(Oid statsOid, Oid relationOid, int attnum, * OK, we need to reset some statistics. So let's build the new tuple, * replacing the affected statistics types with NULL. */ - memset(nulls, 0, Natts_pg_statistic_ext_data * sizeof(bool)); - memset(replaces, 0, Natts_pg_statistic_ext_data * sizeof(bool)); - memset(values, 0, Natts_pg_statistic_ext_data * sizeof(Datum)); - replaces[Anum_pg_statistic_ext_data_stxdmcv - 1] = true; nulls[Anum_pg_statistic_ext_data_stxdmcv - 1] = true; diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c index 2e67a58..aacbf48 100644 --- a/src/backend/commands/subscriptioncmds.c +++ b/src/backend/commands/subscriptioncmds.c @@ -317,8 +317,8 @@ CreateSubscription(CreateSubscriptionStmt *stmt, bool isTopLevel) Relation rel; ObjectAddress myself; Oid subid; - bool nulls[Natts_pg_subscription]; - Datum values[Natts_pg_subscription]; + bool nulls[Natts_pg_subscription] = {0}; + Datum values[Natts_pg_subscription] = {0}; Oid owner = GetUserId(); HeapTuple tup; bool connect; @@ -396,9 +396,6 @@ CreateSubscription(CreateSubscriptionStmt *stmt, bool isTopLevel) walrcv_check_conninfo(conninfo); /* Everything ok, form a new tuple. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - subid = GetNewOidWithIndex(rel, SubscriptionObjectIndexId, Anum_pg_subscription_oid); values[Anum_pg_subscription_oid - 1] = ObjectIdGetDatum(subid); @@ -636,9 +633,9 @@ AlterSubscription(AlterSubscriptionStmt *stmt) { Relation rel; ObjectAddress myself; - bool nulls[Natts_pg_subscription]; - bool replaces[Natts_pg_subscription]; - Datum values[Natts_pg_subscription]; + bool nulls[Natts_pg_subscription] = {0}; + bool replaces[Natts_pg_subscription] = {0}; + Datum values[Natts_pg_subscription] = {0}; HeapTuple tup; Oid subid; bool update_tuple = false; @@ -671,9 +668,6 @@ AlterSubscription(AlterSubscriptionStmt *stmt) LockSharedObject(SubscriptionRelationId, subid, 0, AccessExclusiveLock); /* Form a new tuple. */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - memset(replaces, false, sizeof(replaces)); switch (stmt->kind) { diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c index 84efb41..7411475 100644 --- a/src/backend/commands/tablespace.c +++ b/src/backend/commands/tablespace.c @@ -236,7 +236,7 @@ CreateTableSpace(CreateTableSpaceStmt *stmt) #ifdef HAVE_SYMLINK Relation rel; Datum values[Natts_pg_tablespace]; - bool nulls[Natts_pg_tablespace]; + bool nulls[Natts_pg_tablespace] = {0}; HeapTuple tuple; Oid tablespaceoid; char *location; @@ -334,8 +334,6 @@ CreateTableSpace(CreateTableSpaceStmt *stmt) */ rel = table_open(TableSpaceRelationId, RowExclusiveLock); - MemSet(nulls, false, sizeof(nulls)); - tablespaceoid = GetNewOidWithIndex(rel, TablespaceOidIndexId, Anum_pg_tablespace_oid); values[Anum_pg_tablespace_oid - 1] = ObjectIdGetDatum(tablespaceoid); diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index cdb1105..0ceadbc 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -171,7 +171,7 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString, List *whenRtable; char *qual; Datum values[Natts_pg_trigger]; - bool nulls[Natts_pg_trigger]; + bool nulls[Natts_pg_trigger] = {0}; Relation rel; AclResult aclresult; Relation tgrel; @@ -844,8 +844,6 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString, * makes the triggers in partitions identical to the ones in the * partitioned tables, except that they are marked internal. */ - memset(nulls, false, sizeof(nulls)); - values[Anum_pg_trigger_oid - 1] = ObjectIdGetDatum(trigoid); values[Anum_pg_trigger_tgrelid - 1] = ObjectIdGetDatum(RelationGetRelid(rel)); values[Anum_pg_trigger_tgname - 1] = DirectFunctionCall1(namein, diff --git a/src/backend/commands/tsearchcmds.c b/src/backend/commands/tsearchcmds.c index 5d6528f..1739e65 100644 --- a/src/backend/commands/tsearchcmds.c +++ b/src/backend/commands/tsearchcmds.c @@ -179,8 +179,8 @@ DefineTSParser(List *names, List *parameters) ListCell *pl; Relation prsRel; HeapTuple tup; - Datum values[Natts_pg_ts_parser]; - bool nulls[Natts_pg_ts_parser]; + Datum values[Natts_pg_ts_parser] = {0}; + bool nulls[Natts_pg_ts_parser] = {0}; NameData pname; Oid prsOid; Oid namespaceoid; @@ -197,9 +197,6 @@ DefineTSParser(List *names, List *parameters) namespaceoid = QualifiedNameGetCreationNamespace(names, &prsname); /* initialize tuple fields with name/namespace */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - prsOid = GetNewOidWithIndex(prsRel, TSParserOidIndexId, Anum_pg_ts_parser_oid); values[Anum_pg_ts_parser_oid - 1] = ObjectIdGetDatum(prsOid); @@ -414,8 +411,8 @@ DefineTSDictionary(List *names, List *parameters) ListCell *pl; Relation dictRel; HeapTuple tup; - Datum values[Natts_pg_ts_dict]; - bool nulls[Natts_pg_ts_dict]; + Datum values[Natts_pg_ts_dict] = {0}; + bool nulls[Natts_pg_ts_dict] = {0}; NameData dname; Oid templId = InvalidOid; List *dictoptions = NIL; @@ -468,9 +465,6 @@ DefineTSDictionary(List *names, List *parameters) /* * Looks good, insert */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - dictOid = GetNewOidWithIndex(dictRel, TSDictionaryOidIndexId, Anum_pg_ts_dict_oid); values[Anum_pg_ts_dict_oid - 1] = ObjectIdGetDatum(dictOid); @@ -733,7 +727,7 @@ DefineTSTemplate(List *names, List *parameters) Relation tmplRel; HeapTuple tup; Datum values[Natts_pg_ts_template]; - bool nulls[Natts_pg_ts_template]; + bool nulls[Natts_pg_ts_template] = {0}; NameData dname; int i; Oid tmplOid; @@ -753,7 +747,6 @@ DefineTSTemplate(List *names, List *parameters) for (i = 0; i < Natts_pg_ts_template; i++) { - nulls[i] = false; values[i] = ObjectIdGetDatum(InvalidOid); } @@ -965,8 +958,8 @@ DefineTSConfiguration(List *names, List *parameters, ObjectAddress *copied) Relation cfgRel; Relation mapRel = NULL; HeapTuple tup; - Datum values[Natts_pg_ts_config]; - bool nulls[Natts_pg_ts_config]; + Datum values[Natts_pg_ts_config] = {0}; + bool nulls[Natts_pg_ts_config] = {0}; AclResult aclresult; Oid namespaceoid; char *cfgname; @@ -1050,9 +1043,6 @@ DefineTSConfiguration(List *names, List *parameters, ObjectAddress *copied) /* * Looks good, build tuple and insert */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - cfgOid = GetNewOidWithIndex(cfgRel, TSConfigOidIndexId, Anum_pg_ts_config_oid); values[Anum_pg_ts_config_oid - 1] = ObjectIdGetDatum(cfgOid); @@ -1089,11 +1079,8 @@ DefineTSConfiguration(List *names, List *parameters, ObjectAddress *copied) { Form_pg_ts_config_map cfgmap = (Form_pg_ts_config_map) GETSTRUCT(maptup); HeapTuple newmaptup; - Datum mapvalues[Natts_pg_ts_config_map]; - bool mapnulls[Natts_pg_ts_config_map]; - - memset(mapvalues, 0, sizeof(mapvalues)); - memset(mapnulls, false, sizeof(mapnulls)); + Datum mapvalues[Natts_pg_ts_config_map] = {0}; + bool mapnulls[Natts_pg_ts_config_map] = {0}; mapvalues[Anum_pg_ts_config_map_mapcfg - 1] = cfgOid; mapvalues[Anum_pg_ts_config_map_maptokentype - 1] = cfgmap->maptokentype; @@ -1420,9 +1407,8 @@ MakeConfigurationMapping(AlterTSConfigurationStmt *stmt, for (j = 0; j < ndict; j++) { Datum values[Natts_pg_ts_config_map]; - bool nulls[Natts_pg_ts_config_map]; + bool nulls[Natts_pg_ts_config_map] = {0}; - memset(nulls, false, sizeof(nulls)); values[Anum_pg_ts_config_map_mapcfg - 1] = ObjectIdGetDatum(cfgId); values[Anum_pg_ts_config_map_maptokentype - 1] = Int32GetDatum(tokens[i]); values[Anum_pg_ts_config_map_mapseqno - 1] = Int32GetDatum(j + 1); diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c index 2221c04..a259bb2 100644 --- a/src/backend/libpq/hba.c +++ b/src/backend/libpq/hba.c @@ -2414,8 +2414,8 @@ static void fill_hba_line(Tuplestorestate *tuple_store, TupleDesc tupdesc, int lineno, HbaLine *hba, const char *err_msg) { - Datum values[NUM_PG_HBA_FILE_RULES_ATTS]; - bool nulls[NUM_PG_HBA_FILE_RULES_ATTS]; + Datum values[NUM_PG_HBA_FILE_RULES_ATTS] = {0}; + bool nulls[NUM_PG_HBA_FILE_RULES_ATTS] = {0}; char buffer[NI_MAXHOST]; HeapTuple tuple; int index; @@ -2427,8 +2427,6 @@ fill_hba_line(Tuplestorestate *tuple_store, TupleDesc tupdesc, Assert(tupdesc->natts == NUM_PG_HBA_FILE_RULES_ATTS); - memset(values, 0, sizeof(values)); - memset(nulls, 0, sizeof(nulls)); index = 0; /* line_number */ diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c index 186057b..8ea0052 100644 --- a/src/backend/replication/logical/launcher.c +++ b/src/backend/replication/logical/launcher.c @@ -1136,8 +1136,8 @@ pg_stat_get_subscription(PG_FUNCTION_ARGS) for (i = 0; i <= max_logical_replication_workers; i++) { /* for each row */ - Datum values[PG_STAT_GET_SUBSCRIPTION_COLS]; - bool nulls[PG_STAT_GET_SUBSCRIPTION_COLS]; + Datum values[PG_STAT_GET_SUBSCRIPTION_COLS] = {0}; + bool nulls[PG_STAT_GET_SUBSCRIPTION_COLS] = {0}; int worker_pid; LogicalRepWorker worker; @@ -1151,9 +1151,6 @@ pg_stat_get_subscription(PG_FUNCTION_ARGS) worker_pid = worker.proc->pid; - MemSet(values, 0, sizeof(values)); - MemSet(nulls, 0, sizeof(nulls)); - values[0] = ObjectIdGetDatum(worker.subid); if (OidIsValid(worker.relid)) values[1] = ObjectIdGetDatum(worker.relid); diff --git a/src/backend/replication/logical/logicalfuncs.c b/src/backend/replication/logical/logicalfuncs.c index d1cf80d..4b26757 100644 --- a/src/backend/replication/logical/logicalfuncs.c +++ b/src/backend/replication/logical/logicalfuncs.c @@ -75,7 +75,7 @@ LogicalOutputWrite(LogicalDecodingContext *ctx, XLogRecPtr lsn, TransactionId xi bool last_write) { Datum values[3]; - bool nulls[3]; + bool nulls[3] = {0}; DecodingOutputState *p; /* SQL Datums can only be of a limited length... */ @@ -84,7 +84,6 @@ LogicalOutputWrite(LogicalDecodingContext *ctx, XLogRecPtr lsn, TransactionId xi p = (DecodingOutputState *) ctx->output_writer_private; - memset(nulls, 0, sizeof(nulls)); values[0] = LSNGetDatum(lsn); values[1] = TransactionIdGetDatum(xid); diff --git a/src/backend/replication/logical/origin.c b/src/backend/replication/logical/origin.c index 07ae613..f02992a 100644 --- a/src/backend/replication/logical/origin.c +++ b/src/backend/replication/logical/origin.c @@ -275,7 +275,7 @@ replorigin_create(char *roname) for (roident = InvalidOid + 1; roident < PG_UINT16_MAX; roident++) { - bool nulls[Natts_pg_replication_origin]; + bool nulls[Natts_pg_replication_origin] = {0}; Datum values[Natts_pg_replication_origin]; bool collides; @@ -301,8 +301,6 @@ replorigin_create(char *roname) * Ok, found an unused roident, insert the new row and do a CCI, * so our callers can look it up if they want to. */ - memset(&nulls, 0, sizeof(nulls)); - values[Anum_pg_replication_origin_roident - 1] = ObjectIdGetDatum(roident); values[Anum_pg_replication_origin_roname - 1] = roname_d; @@ -1517,7 +1515,7 @@ pg_show_replication_origin_status(PG_FUNCTION_ARGS) for (i = 0; i < max_replication_slots; i++) { ReplicationState *state; - Datum values[REPLICATION_ORIGIN_PROGRESS_COLS]; + Datum values[REPLICATION_ORIGIN_PROGRESS_COLS] = {0}; bool nulls[REPLICATION_ORIGIN_PROGRESS_COLS]; char *roname; @@ -1527,7 +1525,6 @@ pg_show_replication_origin_status(PG_FUNCTION_ARGS) if (state->roident == InvalidRepOriginId) continue; - memset(values, 0, sizeof(values)); memset(nulls, 1, sizeof(nulls)); values[0] = ObjectIdGetDatum(state->roident); diff --git a/src/backend/replication/slotfuncs.c b/src/backend/replication/slotfuncs.c index 42da631..3ca45e2 100644 --- a/src/backend/replication/slotfuncs.c +++ b/src/backend/replication/slotfuncs.c @@ -77,7 +77,7 @@ pg_create_physical_replication_slot(PG_FUNCTION_ARGS) bool immediately_reserve = PG_GETARG_BOOL(1); bool temporary = PG_GETARG_BOOL(2); Datum values[2]; - bool nulls[2]; + bool nulls[2] = {0}; TupleDesc tupdesc; HeapTuple tuple; Datum result; @@ -95,12 +95,10 @@ pg_create_physical_replication_slot(PG_FUNCTION_ARGS) InvalidXLogRecPtr); values[0] = NameGetDatum(&MyReplicationSlot->data.name); - nulls[0] = false; if (immediately_reserve) { values[1] = LSNGetDatum(MyReplicationSlot->data.restart_lsn); - nulls[1] = false; } else nulls[1] = true; @@ -167,7 +165,7 @@ pg_create_logical_replication_slot(PG_FUNCTION_ARGS) TupleDesc tupdesc; HeapTuple tuple; Datum values[2]; - bool nulls[2]; + bool nulls[2] = {0}; if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) elog(ERROR, "return type must be a row type"); @@ -184,8 +182,6 @@ pg_create_logical_replication_slot(PG_FUNCTION_ARGS) values[0] = NameGetDatum(&MyReplicationSlot->data.name); values[1] = LSNGetDatum(MyReplicationSlot->data.confirmed_flush); - memset(nulls, 0, sizeof(nulls)); - tuple = heap_form_tuple(tupdesc, values, nulls); result = HeapTupleGetDatum(tuple); @@ -265,7 +261,7 @@ pg_get_replication_slots(PG_FUNCTION_ARGS) { ReplicationSlot *slot = &ReplicationSlotCtl->replication_slots[slotno]; Datum values[PG_GET_REPLICATION_SLOTS_COLS]; - bool nulls[PG_GET_REPLICATION_SLOTS_COLS]; + bool nulls[PG_GET_REPLICATION_SLOTS_COLS] = {0}; ReplicationSlotPersistency persistency; TransactionId xmin; @@ -295,8 +291,6 @@ pg_get_replication_slots(PG_FUNCTION_ARGS) SpinLockRelease(&slot->mutex); - memset(nulls, 0, sizeof(nulls)); - i = 0; values[i++] = NameGetDatum(&slot_name); @@ -513,7 +507,7 @@ pg_replication_slot_advance(PG_FUNCTION_ARGS) XLogRecPtr minlsn; TupleDesc tupdesc; Datum values[2]; - bool nulls[2]; + bool nulls[2] = {0}; HeapTuple tuple; Datum result; @@ -572,7 +566,6 @@ pg_replication_slot_advance(PG_FUNCTION_ARGS) endlsn = pg_physical_replication_slot_advance(moveto); values[0] = NameGetDatum(&MyReplicationSlot->data.name); - nulls[0] = false; /* Update the on disk state when lsn was updated. */ if (XLogRecPtrIsInvalid(endlsn)) @@ -587,7 +580,6 @@ pg_replication_slot_advance(PG_FUNCTION_ARGS) /* Return the reached position. */ values[1] = LSNGetDatum(endlsn); - nulls[1] = false; tuple = heap_form_tuple(tupdesc, values, nulls); result = HeapTupleGetDatum(tuple); @@ -609,7 +601,7 @@ copy_replication_slot(FunctionCallInfo fcinfo, bool logical_slot) bool temporary; char *plugin; Datum values[2]; - bool nulls[2]; + bool nulls[2] = {0}; Datum result; TupleDesc tupdesc; HeapTuple tuple; @@ -779,11 +771,9 @@ copy_replication_slot(FunctionCallInfo fcinfo, bool logical_slot) /* All done. Set up the return values */ values[0] = NameGetDatum(dst_name); - nulls[0] = false; if (!XLogRecPtrIsInvalid(MyReplicationSlot->data.confirmed_flush)) { values[1] = LSNGetDatum(MyReplicationSlot->data.confirmed_flush); - nulls[1] = false; } else nulls[1] = true; diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index eb4a98c..78e1ecf 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -351,7 +351,7 @@ IdentifySystem(void) TupOutputState *tstate; TupleDesc tupdesc; Datum values[4]; - bool nulls[4]; + bool nulls[4] = {0}; /* * Reply with a result set with one row, four columns. First col is system @@ -388,7 +388,6 @@ IdentifySystem(void) } dest = CreateDestReceiver(DestRemoteSimple); - MemSet(nulls, false, sizeof(nulls)); /* need a tuple descriptor representing four columns */ tupdesc = CreateTemplateTupleDesc(4); @@ -717,14 +716,13 @@ StartReplication(StartReplicationCmd *cmd) TupOutputState *tstate; TupleDesc tupdesc; Datum values[2]; - bool nulls[2]; + bool nulls[2] = {0}; snprintf(startpos_str, sizeof(startpos_str), "%X/%X", (uint32) (sendTimeLineValidUpto >> 32), (uint32) sendTimeLineValidUpto); dest = CreateDestReceiver(DestRemoteSimple); - MemSet(nulls, false, sizeof(nulls)); /* * Need a tuple descriptor representing two columns. int8 may seem @@ -859,7 +857,7 @@ CreateReplicationSlot(CreateReplicationSlotCmd *cmd) TupOutputState *tstate; TupleDesc tupdesc; Datum values[4]; - bool nulls[4]; + bool nulls[4] = {0}; Assert(!MyReplicationSlot); @@ -995,7 +993,6 @@ CreateReplicationSlot(CreateReplicationSlotCmd *cmd) (uint32) MyReplicationSlot->data.confirmed_flush); dest = CreateDestReceiver(DestRemoteSimple); - MemSet(nulls, false, sizeof(nulls)); /*---------- * Need a tuple descriptor representing four columns: @@ -3286,7 +3283,7 @@ pg_stat_get_wal_senders(PG_FUNCTION_ARGS) WalSndState state; TimestampTz replyTime; Datum values[PG_STAT_GET_WAL_SENDERS_COLS]; - bool nulls[PG_STAT_GET_WAL_SENDERS_COLS]; + bool nulls[PG_STAT_GET_WAL_SENDERS_COLS] = {0}; SpinLockAcquire(&walsnd->mutex); if (walsnd->pid == 0) @@ -3307,7 +3304,6 @@ pg_stat_get_wal_senders(PG_FUNCTION_ARGS) replyTime = walsnd->replyTime; SpinLockRelease(&walsnd->mutex); - memset(nulls, 0, sizeof(nulls)); values[0] = Int32GetDatum(pid); if (!is_member_of_role(GetUserId(), DEFAULT_ROLE_READ_ALL_STATS)) diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c index 7df2b61..a6d9ddb 100644 --- a/src/backend/rewrite/rewriteDefine.c +++ b/src/backend/rewrite/rewriteDefine.c @@ -67,8 +67,8 @@ InsertRule(const char *rulname, char *evqual = nodeToString(event_qual); char *actiontree = nodeToString((Node *) action); Datum values[Natts_pg_rewrite]; - bool nulls[Natts_pg_rewrite]; - bool replaces[Natts_pg_rewrite]; + bool nulls[Natts_pg_rewrite] = {0}; + bool replaces[Natts_pg_rewrite] = {0}; NameData rname; Relation pg_rewrite_desc; HeapTuple tup, @@ -79,10 +79,8 @@ InsertRule(const char *rulname, bool is_update = false; /* - * Set up *nulls and *values arrays + * Set up *values array */ - MemSet(nulls, false, sizeof(nulls)); - namestrcpy(&rname, rulname); values[Anum_pg_rewrite_rulename - 1] = NameGetDatum(&rname); values[Anum_pg_rewrite_ev_class - 1] = ObjectIdGetDatum(eventrel_oid); @@ -115,7 +113,6 @@ InsertRule(const char *rulname, /* * When replacing, we don't need to replace every attribute */ - MemSet(replaces, false, sizeof(replaces)); replaces[Anum_pg_rewrite_ev_type - 1] = true; replaces[Anum_pg_rewrite_is_instead - 1] = true; replaces[Anum_pg_rewrite_ev_qual - 1] = true; diff --git a/src/backend/statistics/extended_stats.c b/src/backend/statistics/extended_stats.c index 207ee31..ee0a623 100644 --- a/src/backend/statistics/extended_stats.c +++ b/src/backend/statistics/extended_stats.c @@ -471,14 +471,12 @@ statext_store(Oid statOid, { HeapTuple stup, oldtup; - Datum values[Natts_pg_statistic_ext_data]; + Datum values[Natts_pg_statistic_ext_data] = {0}; bool nulls[Natts_pg_statistic_ext_data]; - bool replaces[Natts_pg_statistic_ext_data]; + bool replaces[Natts_pg_statistic_ext_data] = {0}; Relation pg_stextdata; memset(nulls, true, sizeof(nulls)); - memset(replaces, false, sizeof(replaces)); - memset(values, 0, sizeof(values)); /* * Construct a new pg_statistic_ext_data tuple, replacing the calculated diff --git a/src/backend/storage/large_object/inv_api.c b/src/backend/storage/large_object/inv_api.c index e591236..bd3f033 100644 --- a/src/backend/storage/large_object/inv_api.c +++ b/src/backend/storage/large_object/inv_api.c @@ -608,9 +608,6 @@ inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes) } workbuf; char *workb = VARDATA(&workbuf.hdr); HeapTuple newtup; - Datum values[Natts_pg_largeobject]; - bool nulls[Natts_pg_largeobject]; - bool replace[Natts_pg_largeobject]; CatalogIndexState indstate; Assert(PointerIsValid(obj_desc)); @@ -656,6 +653,10 @@ inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes) while (nwritten < nbytes) { + Datum values[Natts_pg_largeobject] = {0}; + bool nulls[Natts_pg_largeobject] = {0}; + bool replace[Natts_pg_largeobject] = {0}; + /* * If possible, get next pre-existing page of the LO. We expect the * indexscan will deliver these in order --- but there may be holes. @@ -711,9 +712,6 @@ inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes) /* * Form and insert updated tuple */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - memset(replace, false, sizeof(replace)); values[Anum_pg_largeobject_data - 1] = PointerGetDatum(&workbuf); replace[Anum_pg_largeobject_data - 1] = true; newtup = heap_modify_tuple(oldtuple, RelationGetDescr(lo_heap_r), @@ -755,8 +753,6 @@ inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes) /* * Form and insert updated tuple */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); values[Anum_pg_largeobject_loid - 1] = ObjectIdGetDatum(obj_desc->id); values[Anum_pg_largeobject_pageno - 1] = Int32GetDatum(pageno); values[Anum_pg_largeobject_data - 1] = PointerGetDatum(&workbuf); @@ -799,9 +795,9 @@ inv_truncate(LargeObjectDesc *obj_desc, int64 len) } workbuf; char *workb = VARDATA(&workbuf.hdr); HeapTuple newtup; - Datum values[Natts_pg_largeobject]; - bool nulls[Natts_pg_largeobject]; - bool replace[Natts_pg_largeobject]; + Datum values[Natts_pg_largeobject] = {0}; + bool nulls[Natts_pg_largeobject] = {0}; + bool replace[Natts_pg_largeobject] = {0}; CatalogIndexState indstate; Assert(PointerIsValid(obj_desc)); @@ -886,9 +882,6 @@ inv_truncate(LargeObjectDesc *obj_desc, int64 len) /* * Form and insert updated tuple */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); - memset(replace, false, sizeof(replace)); values[Anum_pg_largeobject_data - 1] = PointerGetDatum(&workbuf); replace[Anum_pg_largeobject_data - 1] = true; newtup = heap_modify_tuple(oldtuple, RelationGetDescr(lo_heap_r), @@ -925,8 +918,6 @@ inv_truncate(LargeObjectDesc *obj_desc, int64 len) /* * Form and insert new tuple */ - memset(values, 0, sizeof(values)); - memset(nulls, false, sizeof(nulls)); values[Anum_pg_largeobject_loid - 1] = ObjectIdGetDatum(obj_desc->id); values[Anum_pg_largeobject_pageno - 1] = Int32GetDatum(pageno); values[Anum_pg_largeobject_data - 1] = PointerGetDatum(&workbuf); diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c index d7e6100..dbe4ef4 100644 --- a/src/backend/utils/adt/acl.c +++ b/src/backend/utils/adt/acl.c @@ -1810,7 +1810,7 @@ aclexplode(PG_FUNCTION_ARGS) { Datum result; Datum values[4]; - bool nulls[4]; + bool nulls[4] = {0}; HeapTuple tuple; values[0] = ObjectIdGetDatum(aidata->ai_grantor); @@ -1818,8 +1818,6 @@ aclexplode(PG_FUNCTION_ARGS) values[2] = CStringGetTextDatum(convert_aclright_to_string(priv_bit)); values[3] = BoolGetDatum((ACLITEM_GET_GOPTIONS(*aidata) & priv_bit) != 0); - MemSet(nulls, 0, sizeof(nulls)); - tuple = heap_form_tuple(funcctx->tuple_desc, values, nulls); result = HeapTupleGetDatum(tuple); diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c index 8079b13..afc3f08 100644 --- a/src/backend/utils/adt/arrayfuncs.c +++ b/src/backend/utils/adt/arrayfuncs.c @@ -738,11 +738,10 @@ ReadArrayStr(char *arrayStr, bool eoArray = false; bool hasnull; int32 totbytes; - int indx[MAXDIM], + int indx[MAXDIM] = {0}, prod[MAXDIM]; mda_get_prod(ndim, dim, prod); - MemSet(indx, 0, sizeof(indx)); /* Initialize is-null markers to true */ memset(nulls, true, nitems * sizeof(bool)); diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c index e38bd93..0b18793 100644 --- a/src/backend/utils/adt/datetime.c +++ b/src/backend/utils/adt/datetime.c @@ -4635,7 +4635,7 @@ pg_timezone_abbrevs(PG_FUNCTION_ARGS) Datum result; HeapTuple tuple; Datum values[3]; - bool nulls[3]; + bool nulls[3] = {0}; const datetkn *tp; char buffer[TOKMAXLEN + 1]; int gmtoffset; @@ -4722,8 +4722,6 @@ pg_timezone_abbrevs(PG_FUNCTION_ARGS) break; } - MemSet(nulls, 0, sizeof(nulls)); - /* * Convert name to text, using upcasing conversion that is the inverse of * what ParseDateTime() uses. @@ -4765,7 +4763,7 @@ pg_timezone_names(PG_FUNCTION_ARGS) Datum result; HeapTuple tuple; Datum values[4]; - bool nulls[4]; + bool nulls[4] = {0}; int tzoff; struct pg_tm tm; fsec_t fsec; @@ -4847,8 +4845,6 @@ pg_timezone_names(PG_FUNCTION_ARGS) break; } - MemSet(nulls, 0, sizeof(nulls)); - values[0] = CStringGetTextDatum(pg_get_timezone_name(tz)); values[1] = CStringGetTextDatum(tzn ? tzn : ""); diff --git a/src/backend/utils/adt/genfile.c b/src/backend/utils/adt/genfile.c index 5d4f26a..04f85e7 100644 --- a/src/backend/utils/adt/genfile.c +++ b/src/backend/utils/adt/genfile.c @@ -576,7 +576,7 @@ pg_ls_dir_files(FunctionCallInfo fcinfo, const char *dir, bool missing_ok) while ((de = ReadDir(fctx->dirdesc, fctx->location)) != NULL) { Datum values[3]; - bool nulls[3]; + bool nulls[3] = {0}; char path[MAXPGPATH * 2]; struct stat attrib; HeapTuple tuple; @@ -599,7 +599,6 @@ pg_ls_dir_files(FunctionCallInfo fcinfo, const char *dir, bool missing_ok) values[0] = CStringGetTextDatum(de->d_name); values[1] = Int64GetDatum((int64) attrib.st_size); values[2] = TimestampTzGetDatum(time_t_to_timestamptz(attrib.st_mtime)); - memset(nulls, 0, sizeof(nulls)); tuple = heap_form_tuple(funcctx->tuple_desc, values, nulls); SRF_RETURN_NEXT(funcctx, HeapTupleGetDatum(tuple)); diff --git a/src/backend/utils/adt/lockfuncs.c b/src/backend/utils/adt/lockfuncs.c index bc62c6e..1b47b48 100644 --- a/src/backend/utils/adt/lockfuncs.c +++ b/src/backend/utils/adt/lockfuncs.c @@ -160,8 +160,8 @@ pg_lock_status(PG_FUNCTION_ARGS) LOCKMODE mode = 0; const char *locktypename; char tnbuf[32]; - Datum values[NUM_LOCK_STATUS_COLUMNS]; - bool nulls[NUM_LOCK_STATUS_COLUMNS]; + Datum values[NUM_LOCK_STATUS_COLUMNS] = {0}; + bool nulls[NUM_LOCK_STATUS_COLUMNS] = {0}; HeapTuple tuple; Datum result; LockInstanceData *instance; @@ -218,9 +218,6 @@ pg_lock_status(PG_FUNCTION_ARGS) /* * Form tuple with appropriate data. */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); - if (instance->locktag.locktag_type <= LOCKTAG_LAST_TYPE) locktypename = LockTagTypeNames[instance->locktag.locktag_type]; else @@ -332,8 +329,8 @@ pg_lock_status(PG_FUNCTION_ARGS) PREDICATELOCKTARGETTAG *predTag = &(predLockData->locktags[mystatus->predLockIdx]); SERIALIZABLEXACT *xact = &(predLockData->xacts[mystatus->predLockIdx]); - Datum values[NUM_LOCK_STATUS_COLUMNS]; - bool nulls[NUM_LOCK_STATUS_COLUMNS]; + Datum values[NUM_LOCK_STATUS_COLUMNS] = {0}; + bool nulls[NUM_LOCK_STATUS_COLUMNS] = {0}; HeapTuple tuple; Datum result; @@ -342,8 +339,6 @@ pg_lock_status(PG_FUNCTION_ARGS) /* * Form tuple with appropriate data. */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, false, sizeof(nulls)); /* lock type */ lockType = GET_PREDICATELOCKTARGETTAG_TYPE(*predTag); diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c index 05240bf..61d0fa3 100644 --- a/src/backend/utils/adt/pgstatfuncs.c +++ b/src/backend/utils/adt/pgstatfuncs.c @@ -492,13 +492,10 @@ pg_stat_get_progress_info(PG_FUNCTION_ARGS) { LocalPgBackendStatus *local_beentry; PgBackendStatus *beentry; - Datum values[PG_STAT_GET_PROGRESS_COLS]; - bool nulls[PG_STAT_GET_PROGRESS_COLS]; + Datum values[PG_STAT_GET_PROGRESS_COLS] = {0}; + bool nulls[PG_STAT_GET_PROGRESS_COLS] = {0}; int i; - MemSet(values, 0, sizeof(values)); - MemSet(nulls, 0, sizeof(nulls)); - local_beentry = pgstat_fetch_stat_local_beentry(curr_backend); if (!local_beentry) @@ -585,17 +582,14 @@ pg_stat_get_activity(PG_FUNCTION_ARGS) for (curr_backend = 1; curr_backend <= num_backends; curr_backend++) { /* for each row */ - Datum values[PG_STAT_GET_ACTIVITY_COLS]; - bool nulls[PG_STAT_GET_ACTIVITY_COLS]; + Datum values[PG_STAT_GET_ACTIVITY_COLS] = {0}; + bool nulls[PG_STAT_GET_ACTIVITY_COLS] = {0}; LocalPgBackendStatus *local_beentry; PgBackendStatus *beentry; PGPROC *proc; const char *wait_event_type = NULL; const char *wait_event = NULL; - MemSet(values, 0, sizeof(values)); - MemSet(nulls, 0, sizeof(nulls)); - /* Get the next one in the list */ local_beentry = pgstat_fetch_stat_local_beentry(curr_backend); if (!local_beentry) @@ -1908,14 +1902,10 @@ Datum pg_stat_get_archiver(PG_FUNCTION_ARGS) { TupleDesc tupdesc; - Datum values[7]; - bool nulls[7]; + Datum values[7] = {0}; + bool nulls[7] = {0}; PgStat_ArchiverStats *archiver_stats; - /* Initialise values and NULL flags arrays */ - MemSet(values, 0, sizeof(values)); - MemSet(nulls, 0, sizeof(nulls)); - /* Initialise attributes information in the tuple descriptor */ tupdesc = CreateTemplateTupleDesc(7); TupleDescInitEntry(tupdesc, (AttrNumber) 1, "archived_count", diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 2178e1c..489d084 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -9483,11 +9483,8 @@ show_all_file_settings(PG_FUNCTION_ARGS) /* Process the results and create a tuplestore */ for (seqno = 1; conf != NULL; conf = conf->next, seqno++) { - Datum values[NUM_PG_FILE_SETTINGS_ATTS]; - bool nulls[NUM_PG_FILE_SETTINGS_ATTS]; - - memset(values, 0, sizeof(values)); - memset(nulls, 0, sizeof(nulls)); + Datum values[NUM_PG_FILE_SETTINGS_ATTS] = {0}; + bool nulls[NUM_PG_FILE_SETTINGS_ATTS] = {0}; /* sourcefile */ if (conf->filename) diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c index 334e35b..2022c89 100644 --- a/src/backend/utils/mmgr/portalmem.c +++ b/src/backend/utils/mmgr/portalmem.c @@ -1176,14 +1176,12 @@ pg_cursor(PG_FUNCTION_ARGS) { Portal portal = hentry->portal; Datum values[6]; - bool nulls[6]; + bool nulls[6] = {0}; /* report only "visible" entries */ if (!portal->visible) continue; - MemSet(nulls, 0, sizeof(nulls)); - values[0] = CStringGetTextDatum(portal->name); values[1] = CStringGetTextDatum(portal->sourceText); values[2] = BoolGetDatum(portal->cursorOptions & CURSOR_OPT_HOLD);