Replace many MemSet calls with struct initialization
authorPeter Eisentraut <peter@eisentraut.org>
Sat, 16 Jul 2022 06:42:15 +0000 (08:42 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Sat, 16 Jul 2022 06:50:49 +0000 (08:50 +0200)
This replaces all MemSet() calls with struct initialization where that
is easily and obviously possible.  (For example, some cases have to
worry about padding bits, so I left those.)

(The same could be done with appropriate memset() calls, but this
patch is part of an effort to phase out MemSet(), so it doesn't touch
memset() calls.)

Reviewed-by: Ranier Vilela <ranier.vf@gmail.com>
Reviewed-by: Alvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://www.postgresql.org/message-id/9847b13c-b785-f4e2-75c3-12ec77a3b05c@enterprisedb.com

51 files changed:
contrib/amcheck/verify_heapam.c
contrib/bloom/blcost.c
contrib/pageinspect/brinfuncs.c
contrib/pageinspect/hashfuncs.c
contrib/pageinspect/heapfuncs.c
contrib/pg_prewarm/autoprewarm.c
contrib/pg_stat_statements/pg_stat_statements.c
contrib/pg_visibility/pg_visibility.c
contrib/pg_walinspect/pg_walinspect.c
contrib/pgstattuple/pgstatindex.c
contrib/postgres_fdw/connection.c
contrib/postgres_fdw/postgres_fdw.c
src/backend/access/transam/twophase.c
src/backend/access/transam/xlogfuncs.c
src/backend/catalog/aclchk.c
src/backend/catalog/dependency.c
src/backend/catalog/heap.c
src/backend/catalog/index.c
src/backend/catalog/pg_attrdef.c
src/backend/catalog/pg_cast.c
src/backend/catalog/pg_parameter_acl.c
src/backend/catalog/pg_publication.c
src/backend/commands/dbcommands.c
src/backend/commands/event_trigger.c
src/backend/commands/functioncmds.c
src/backend/commands/prepare.c
src/backend/commands/tablecmds.c
src/backend/commands/tablespace.c
src/backend/commands/typecmds.c
src/backend/commands/user.c
src/backend/optimizer/path/costsize.c
src/backend/parser/parse_target.c
src/backend/replication/logical/launcher.c
src/backend/replication/walsender.c
src/backend/rewrite/rewriteDefine.c
src/backend/utils/adt/acl.c
src/backend/utils/adt/arrayfuncs.c
src/backend/utils/adt/datetime.c
src/backend/utils/adt/lockfuncs.c
src/backend/utils/adt/partitionfuncs.c
src/backend/utils/adt/pgstatfuncs.c
src/backend/utils/adt/selfuncs.c
src/backend/utils/adt/timestamp.c
src/backend/utils/mmgr/portalmem.c
src/bin/pg_basebackup/pg_basebackup.c
src/bin/pg_basebackup/pg_receivewal.c
src/bin/pg_basebackup/walmethods.c
src/common/ip.c
src/port/snprintf.c
src/test/modules/test_predtest/test_predtest.c
src/test/regress/regress.c

index e488f5e234b3ff274f19a7beb68e3cc54ec8181b..d33f33f1703a633b210557bcac7b51321bb58665 100644 (file)
@@ -554,12 +554,10 @@ report_corruption_internal(Tuplestorestate *tupstore, TupleDesc tupdesc,
                                                   BlockNumber blkno, OffsetNumber offnum,
                                                   AttrNumber attnum, char *msg)
 {
-       Datum           values[HEAPCHECK_RELATION_COLS];
-       bool            nulls[HEAPCHECK_RELATION_COLS];
+       Datum           values[HEAPCHECK_RELATION_COLS] = {0};
+       bool            nulls[HEAPCHECK_RELATION_COLS] = {0};
        HeapTuple       tuple;
 
-       MemSet(values, 0, sizeof(values));
-       MemSet(nulls, 0, sizeof(nulls));
        values[0] = Int64GetDatum(blkno);
        values[1] = Int32GetDatum(offnum);
        values[2] = Int32GetDatum(attnum);
index d42e4e962848b2c4241bf14f1fe2b11128831b23..d4b1c7630349bfdce7bfae0e8a7ad2aa604e4b87 100644 (file)
@@ -26,9 +26,7 @@ blcostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
                           double *indexPages)
 {
        IndexOptInfo *index = path->indexinfo;
-       GenericCosts costs;
-
-       MemSet(&costs, 0, sizeof(costs));
+       GenericCosts costs = {0};
 
        /* We have to visit all index tuples anyway */
        costs.numIndexTuples = index->tuples;
index 879276e6dece94fab01987520735102f0e0afdb8..f4c959ecab9fbe4ec2096eee4e02bb4e42dd1a6b 100644 (file)
@@ -202,7 +202,7 @@ brin_page_items(PG_FUNCTION_ARGS)
        for (;;)
        {
                Datum           values[7];
-               bool            nulls[7];
+               bool            nulls[7] = {0};
 
                /*
                 * This loop is called once for every attribute of every tuple in the
@@ -230,8 +230,6 @@ brin_page_items(PG_FUNCTION_ARGS)
                else
                        attno++;
 
-               MemSet(nulls, 0, sizeof(nulls));
-
                if (unusedItem)
                {
                        values[0] = UInt16GetDatum(offset);
@@ -334,7 +332,7 @@ brin_metapage_info(PG_FUNCTION_ARGS)
        BrinMetaPageData *meta;
        TupleDesc       tupdesc;
        Datum           values[4];
-       bool            nulls[4];
+       bool            nulls[4] = {0};
        HeapTuple       htup;
 
        if (!superuser())
@@ -354,7 +352,6 @@ brin_metapage_info(PG_FUNCTION_ARGS)
 
        /* Extract values from the metapage */
        meta = (BrinMetaPageData *) PageGetContents(page);
-       MemSet(nulls, 0, sizeof(nulls));
        values[0] = CStringGetTextDatum(psprintf("0x%08X", meta->brinMagic));
        values[1] = Int32GetDatum(meta->brinVersion);
        values[2] = Int32GetDatum(meta->pagesPerRange);
index 5287dbe1a308c9e0b2c9f288a3f1e06e31ea864a..81815392d70ad2018f9d8bc78db06616624ec44c 100644 (file)
@@ -238,7 +238,7 @@ hash_page_stats(PG_FUNCTION_ARGS)
        Page            page;
        int                     j;
        Datum           values[9];
-       bool            nulls[9];
+       bool            nulls[9] = {0};
        HashPageStat stat;
        HeapTuple       tuple;
        TupleDesc       tupleDesc;
@@ -261,8 +261,6 @@ hash_page_stats(PG_FUNCTION_ARGS)
                elog(ERROR, "return type must be a row type");
        tupleDesc = BlessTupleDesc(tupleDesc);
 
-       MemSet(nulls, 0, sizeof(nulls));
-
        j = 0;
        values[j++] = Int32GetDatum(stat.live_items);
        values[j++] = Int32GetDatum(stat.dead_items);
@@ -303,7 +301,7 @@ hash_page_items(PG_FUNCTION_ARGS)
        Page            page;
        Datum           result;
        Datum           values[3];
-       bool            nulls[3];
+       bool            nulls[3] = {0};
        uint32          hashkey;
        HeapTuple       tuple;
        FuncCallContext *fctx;
@@ -361,8 +359,6 @@ hash_page_items(PG_FUNCTION_ARGS)
 
                itup = (IndexTuple) PageGetItem(uargs->page, id);
 
-               MemSet(nulls, 0, sizeof(nulls));
-
                j = 0;
                values[j++] = Int32GetDatum((int32) uargs->offset);
                values[j++] = PointerGetDatum(&itup->t_tid);
@@ -409,7 +405,7 @@ hash_bitmap_info(PG_FUNCTION_ARGS)
        int                     i,
                                j;
        Datum           values[3];
-       bool            nulls[3];
+       bool            nulls[3] = {0};
        uint32     *freep;
 
        if (!superuser())
@@ -495,8 +491,6 @@ hash_bitmap_info(PG_FUNCTION_ARGS)
                elog(ERROR, "return type must be a row type");
        tupleDesc = BlessTupleDesc(tupleDesc);
 
-       MemSet(nulls, 0, sizeof(nulls));
-
        j = 0;
        values[j++] = Int64GetDatum((int64) bitmapblkno);
        values[j++] = Int32GetDatum(bitmapbit);
@@ -526,7 +520,7 @@ hash_metapage_info(PG_FUNCTION_ARGS)
        int                     i,
                                j;
        Datum           values[16];
-       bool            nulls[16];
+       bool            nulls[16] = {0};
        Datum           spares[HASH_MAX_SPLITPOINTS];
        Datum           mapp[HASH_MAX_BITMAPS];
 
@@ -544,8 +538,6 @@ hash_metapage_info(PG_FUNCTION_ARGS)
 
        metad = HashPageGetMeta(page);
 
-       MemSet(nulls, 0, sizeof(nulls));
-
        j = 0;
        values[j++] = Int64GetDatum((int64) metad->hashm_magic);
        values[j++] = Int64GetDatum((int64) metad->hashm_version);
index a654234c6bd7f261074a0eb7d9dbd47b3c58650c..2ff70405cf8f558b8e5f118487b94828655ae67b 100644 (file)
@@ -507,8 +507,8 @@ Datum
 heap_tuple_infomask_flags(PG_FUNCTION_ARGS)
 {
 #define HEAP_TUPLE_INFOMASK_COLS 2
-       Datum           values[HEAP_TUPLE_INFOMASK_COLS];
-       bool            nulls[HEAP_TUPLE_INFOMASK_COLS];
+       Datum           values[HEAP_TUPLE_INFOMASK_COLS] = {0};
+       bool            nulls[HEAP_TUPLE_INFOMASK_COLS] = {0};
        uint16          t_infomask = PG_GETARG_INT16(0);
        uint16          t_infomask2 = PG_GETARG_INT16(1);
        int                     cnt = 0;
@@ -530,10 +530,6 @@ heap_tuple_infomask_flags(PG_FUNCTION_ARGS)
        bitcnt = pg_popcount((const char *) &t_infomask, sizeof(uint16)) +
                pg_popcount((const char *) &t_infomask2, sizeof(uint16));
 
-       /* Initialize values and NULL flags arrays */
-       MemSet(values, 0, sizeof(values));
-       MemSet(nulls, 0, sizeof(nulls));
-
        /* If no flags, return a set of empty arrays */
        if (bitcnt <= 0)
        {
index 13eee4a137942e0f3a6172c8006732dc8b391bf1..ee20e9b085096792af1ef62dad5c54b406fa54fa 100644 (file)
@@ -814,12 +814,11 @@ apw_detach_shmem(int code, Datum arg)
 static void
 apw_start_leader_worker(void)
 {
-       BackgroundWorker worker;
+       BackgroundWorker worker = {0};
        BackgroundWorkerHandle *handle;
        BgwHandleStatus status;
        pid_t           pid;
 
-       MemSet(&worker, 0, sizeof(BackgroundWorker));
        worker.bgw_flags = BGWORKER_SHMEM_ACCESS;
        worker.bgw_start_time = BgWorkerStart_ConsistentState;
        strcpy(worker.bgw_library_name, "pg_prewarm");
@@ -856,10 +855,9 @@ apw_start_leader_worker(void)
 static void
 apw_start_database_worker(void)
 {
-       BackgroundWorker worker;
+       BackgroundWorker worker = {0};
        BackgroundWorkerHandle *handle;
 
-       MemSet(&worker, 0, sizeof(BackgroundWorker));
        worker.bgw_flags =
                BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION;
        worker.bgw_start_time = BgWorkerStart_ConsistentState;
index 4acfddcdb870430d016cb60d99c1705f8eaae1fa..b4d4231dc617325e4584de0f81817f159c126d84 100644 (file)
@@ -1854,8 +1854,8 @@ pg_stat_statements_info(PG_FUNCTION_ARGS)
 {
        pgssGlobalStats stats;
        TupleDesc       tupdesc;
-       Datum           values[PG_STAT_STATEMENTS_INFO_COLS];
-       bool            nulls[PG_STAT_STATEMENTS_INFO_COLS];
+       Datum           values[PG_STAT_STATEMENTS_INFO_COLS] = {0};
+       bool            nulls[PG_STAT_STATEMENTS_INFO_COLS] = {0};
 
        if (!pgss || !pgss_hash)
                ereport(ERROR,
@@ -1866,9 +1866,6 @@ pg_stat_statements_info(PG_FUNCTION_ARGS)
        if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
                elog(ERROR, "return type must be a row type");
 
-       MemSet(values, 0, sizeof(values));
-       MemSet(nulls, 0, sizeof(nulls));
-
        /* Read global statistics for pg_stat_statements */
        {
                volatile pgssSharedState *s = (volatile pgssSharedState *) pgss;
index 4e2e9ea9bbe43cf8d9ebdb5b0f5da52c62b31c17..a95f73ec7960073e1c7d6d25ef118694b535c0ed 100644 (file)
@@ -75,7 +75,7 @@ pg_visibility_map(PG_FUNCTION_ARGS)
        Buffer          vmbuffer = InvalidBuffer;
        TupleDesc       tupdesc;
        Datum           values[2];
-       bool            nulls[2];
+       bool            nulls[2] = {0};
 
        rel = relation_open(relid, AccessShareLock);
 
@@ -88,7 +88,6 @@ pg_visibility_map(PG_FUNCTION_ARGS)
                                 errmsg("invalid block number")));
 
        tupdesc = pg_visibility_tupdesc(false, false);
-       MemSet(nulls, 0, sizeof(nulls));
 
        mapbits = (int32) visibilitymap_get_status(rel, blkno, &vmbuffer);
        if (vmbuffer != InvalidBuffer)
@@ -117,7 +116,7 @@ pg_visibility(PG_FUNCTION_ARGS)
        Page            page;
        TupleDesc       tupdesc;
        Datum           values[3];
-       bool            nulls[3];
+       bool            nulls[3] = {0};
 
        rel = relation_open(relid, AccessShareLock);
 
@@ -130,7 +129,6 @@ pg_visibility(PG_FUNCTION_ARGS)
                                 errmsg("invalid block number")));
 
        tupdesc = pg_visibility_tupdesc(false, true);
-       MemSet(nulls, 0, sizeof(nulls));
 
        mapbits = (int32) visibilitymap_get_status(rel, blkno, &vmbuffer);
        if (vmbuffer != InvalidBuffer)
@@ -188,10 +186,9 @@ pg_visibility_map_rel(PG_FUNCTION_ARGS)
        if (info->next < info->count)
        {
                Datum           values[3];
-               bool            nulls[3];
+               bool            nulls[3] = {0};
                HeapTuple       tuple;
 
-               MemSet(nulls, 0, sizeof(nulls));
                values[0] = Int64GetDatum(info->next);
                values[1] = BoolGetDatum((info->bits[info->next] & (1 << 0)) != 0);
                values[2] = BoolGetDatum((info->bits[info->next] & (1 << 1)) != 0);
@@ -233,10 +230,9 @@ pg_visibility_rel(PG_FUNCTION_ARGS)
        if (info->next < info->count)
        {
                Datum           values[4];
-               bool            nulls[4];
+               bool            nulls[4] = {0};
                HeapTuple       tuple;
 
-               MemSet(nulls, 0, sizeof(nulls));
                values[0] = Int64GetDatum(info->next);
                values[1] = BoolGetDatum((info->bits[info->next] & (1 << 0)) != 0);
                values[2] = BoolGetDatum((info->bits[info->next] & (1 << 1)) != 0);
@@ -266,7 +262,7 @@ pg_visibility_map_summary(PG_FUNCTION_ARGS)
        int64           all_frozen = 0;
        TupleDesc       tupdesc;
        Datum           values[2];
-       bool            nulls[2];
+       bool            nulls[2] = {0};
 
        rel = relation_open(relid, AccessShareLock);
 
@@ -300,7 +296,6 @@ pg_visibility_map_summary(PG_FUNCTION_ARGS)
        TupleDescInitEntry(tupdesc, (AttrNumber) 2, "all_frozen", INT8OID, -1, 0);
        tupdesc = BlessTupleDesc(tupdesc);
 
-       MemSet(nulls, 0, sizeof(nulls));
        values[0] = Int64GetDatum(all_visible);
        values[1] = Int64GetDatum(all_frozen);
 
index a082dfb3310c932368cad494689b4d29bfc5853f..90817876347cbb13a2922498fc8d7e946f78267d 100644 (file)
@@ -229,8 +229,8 @@ pg_get_wal_record_info(PG_FUNCTION_ARGS)
 {
 #define PG_GET_WAL_RECORD_INFO_COLS 11
        Datum           result;
-       Datum           values[PG_GET_WAL_RECORD_INFO_COLS];
-       bool            nulls[PG_GET_WAL_RECORD_INFO_COLS];
+       Datum           values[PG_GET_WAL_RECORD_INFO_COLS] = {0};
+       bool            nulls[PG_GET_WAL_RECORD_INFO_COLS] = {0};
        XLogRecPtr      lsn;
        XLogRecPtr      curr_lsn;
        XLogRecPtr      first_record;
@@ -266,9 +266,6 @@ pg_get_wal_record_info(PG_FUNCTION_ARGS)
                                 errmsg("could not read WAL at %X/%X",
                                                LSN_FORMAT_ARGS(first_record))));
 
-       MemSet(values, 0, sizeof(values));
-       MemSet(nulls, 0, sizeof(nulls));
-
        GetWALRecordInfo(xlogreader, first_record, values, nulls,
                                         PG_GET_WAL_RECORD_INFO_COLS);
 
@@ -334,8 +331,8 @@ GetWALRecordsInfo(FunctionCallInfo fcinfo, XLogRecPtr start_lsn,
        XLogRecPtr      first_record;
        XLogReaderState *xlogreader;
        ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
-       Datum           values[PG_GET_WAL_RECORDS_INFO_COLS];
-       bool            nulls[PG_GET_WAL_RECORDS_INFO_COLS];
+       Datum           values[PG_GET_WAL_RECORDS_INFO_COLS] = {0};
+       bool            nulls[PG_GET_WAL_RECORDS_INFO_COLS] = {0};
 
        SetSingleFuncCall(fcinfo, 0);
 
@@ -343,9 +340,6 @@ GetWALRecordsInfo(FunctionCallInfo fcinfo, XLogRecPtr start_lsn,
 
        Assert(xlogreader);
 
-       MemSet(values, 0, sizeof(values));
-       MemSet(nulls, 0, sizeof(nulls));
-
        while (ReadNextXLogRecord(xlogreader, first_record) &&
                   xlogreader->EndRecPtr <= end_lsn)
        {
@@ -556,17 +550,15 @@ GetWalStats(FunctionCallInfo fcinfo, XLogRecPtr start_lsn,
 #define PG_GET_WAL_STATS_COLS 9
        XLogRecPtr      first_record;
        XLogReaderState *xlogreader;
-       XLogStats       stats;
+       XLogStats       stats = {0};
        ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
-       Datum           values[PG_GET_WAL_STATS_COLS];
-       bool            nulls[PG_GET_WAL_STATS_COLS];
+       Datum           values[PG_GET_WAL_STATS_COLS] = {0};
+       bool            nulls[PG_GET_WAL_STATS_COLS] = {0};
 
        SetSingleFuncCall(fcinfo, 0);
 
        xlogreader = InitXLogReaderState(start_lsn, &first_record);
 
-       MemSet(&stats, 0, sizeof(stats));
-
        while (ReadNextXLogRecord(xlogreader, first_record) &&
                   xlogreader->EndRecPtr <= end_lsn)
        {
@@ -578,9 +570,6 @@ GetWalStats(FunctionCallInfo fcinfo, XLogRecPtr start_lsn,
        pfree(xlogreader->private_data);
        XLogReaderFree(xlogreader);
 
-       MemSet(values, 0, sizeof(values));
-       MemSet(nulls, 0, sizeof(nulls));
-
        GetXLogSummaryStats(&stats, rsinfo, values, nulls,
                                                PG_GET_WAL_STATS_COLS,
                                                stats_per_record);
index e1048e47ff3501dd692b6cc85b93f24e820dfe5b..d69ac1c93df2aa076f0a7b8520014e28346fb442 100644 (file)
@@ -575,7 +575,7 @@ pgstathashindex(PG_FUNCTION_ARGS)
        HeapTuple       tuple;
        TupleDesc       tupleDesc;
        Datum           values[8];
-       bool            nulls[8];
+       bool            nulls[8] = {0};
        Buffer          metabuf;
        HashMetaPage metap;
        float8          free_percent;
@@ -697,7 +697,6 @@ pgstathashindex(PG_FUNCTION_ARGS)
        /*
         * Build and return the tuple
         */
-       MemSet(nulls, 0, sizeof(nulls));
        values[0] = Int32GetDatum(stats.version);
        values[1] = Int64GetDatum((int64) stats.bucket_pages);
        values[2] = Int64GetDatum((int64) stats.overflow_pages);
index cffb6f83107288ed58bea0fd6dfaf71b9b1f1af8..939d114f02e4ecb8ba7baa5d3fc0b373c33430d9 100644 (file)
@@ -1678,8 +1678,8 @@ postgres_fdw_get_connections(PG_FUNCTION_ARGS)
        while ((entry = (ConnCacheEntry *) hash_seq_search(&scan)))
        {
                ForeignServer *server;
-               Datum           values[POSTGRES_FDW_GET_CONNECTIONS_COLS];
-               bool            nulls[POSTGRES_FDW_GET_CONNECTIONS_COLS];
+               Datum           values[POSTGRES_FDW_GET_CONNECTIONS_COLS] = {0};
+               bool            nulls[POSTGRES_FDW_GET_CONNECTIONS_COLS] = {0};
 
                /* We only look for open remote connections */
                if (!entry->conn)
@@ -1687,9 +1687,6 @@ postgres_fdw_get_connections(PG_FUNCTION_ARGS)
 
                server = GetForeignServerExtended(entry->serverid, FSV_MISSING_OK);
 
-               MemSet(values, 0, sizeof(values));
-               MemSet(nulls, 0, sizeof(nulls));
-
                /*
                 * The foreign server may have been dropped in current explicit
                 * transaction. It is not possible to drop the server from another
index 955a428e3dab0b1b8fc4a6b9c552460170663a28..cfac539008426a1b1997358dd698953f4df0b5f3 100644 (file)
@@ -3307,7 +3307,7 @@ estimate_path_cost_size(PlannerInfo *root,
                {
                        RelOptInfo *outerrel = fpinfo->outerrel;
                        PgFdwRelationInfo *ofpinfo;
-                       AggClauseCosts aggcosts;
+                       AggClauseCosts aggcosts = {0};
                        double          input_rows;
                        int                     numGroupCols;
                        double          numGroups = 1;
@@ -3331,7 +3331,6 @@ estimate_path_cost_size(PlannerInfo *root,
                        input_rows = ofpinfo->rows;
 
                        /* Collect statistics about aggregates for estimating costs. */
-                       MemSet(&aggcosts, 0, sizeof(AggClauseCosts));
                        if (root->parse->hasAggs)
                        {
                                get_agg_clause_costs(root, AGGSPLIT_SIMPLE, &aggcosts);
index 41b31c5c6f1c64660807ee38be0012aa5544cc6c..803d169f578b6abc3b04a36934075af694acf5fb 100644 (file)
@@ -780,8 +780,8 @@ pg_prepared_xact(PG_FUNCTION_ARGS)
        {
                GlobalTransaction gxact = &status->array[status->currIdx++];
                PGPROC     *proc = &ProcGlobal->allProcs[gxact->pgprocno];
-               Datum           values[5];
-               bool            nulls[5];
+               Datum           values[5] = {0};
+               bool            nulls[5] = {0};
                HeapTuple       tuple;
                Datum           result;
 
@@ -791,8 +791,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(proc->xid);
                values[1] = CStringGetTextDatum(gxact->gid);
index 02bd919ff640fb46e3112bc16ada02466ecdde58..61e0f4a29cad6a3bafcdf48d70f4b1ed87d487c1 100644 (file)
@@ -106,8 +106,8 @@ pg_backup_stop(PG_FUNCTION_ARGS)
 {
 #define PG_STOP_BACKUP_V2_COLS 3
        TupleDesc       tupdesc;
-       Datum           values[PG_STOP_BACKUP_V2_COLS];
-       bool            nulls[PG_STOP_BACKUP_V2_COLS];
+       Datum           values[PG_STOP_BACKUP_V2_COLS] = {0};
+       bool            nulls[PG_STOP_BACKUP_V2_COLS] = {0};
 
        bool            waitforarchive = PG_GETARG_BOOL(0);
        XLogRecPtr      stoppoint;
@@ -117,9 +117,6 @@ pg_backup_stop(PG_FUNCTION_ARGS)
        if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
                elog(ERROR, "return type must be a row type");
 
-       MemSet(values, 0, sizeof(values));
-       MemSet(nulls, 0, sizeof(nulls));
-
        if (status != SESSION_BACKUP_RUNNING)
                ereport(ERROR,
                                (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
index 5f1726c0957a35cd9995eef878346a45caf5b043..17ff617fba410a9553d8c087572d15d66fa91ba4 100644 (file)
@@ -1188,9 +1188,6 @@ 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];
        int                     noldmembers;
        int                     nnewmembers;
        Oid                *oldmembers;
@@ -1341,13 +1338,11 @@ SetDefaultACL(InternalDefaultACL *iacls)
        }
        else
        {
+               Datum           values[Natts_pg_default_acl] = {0};
+               bool            nulls[Natts_pg_default_acl] = {0};
+               bool            replaces[Natts_pg_default_acl] = {0};
                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)
                {
                        /* insert new entry */
@@ -1662,9 +1657,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;
@@ -1745,9 +1740,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
@@ -1975,9 +1967,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;
@@ -2027,10 +2019,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);
 
@@ -2150,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;
@@ -2217,10 +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);
 
@@ -2271,9 +2255,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;
@@ -2339,10 +2323,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);
 
@@ -2398,9 +2378,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;
@@ -2465,10 +2445,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);
 
@@ -2523,9 +2499,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;
@@ -2589,10 +2565,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);
 
@@ -2646,9 +2618,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;
@@ -2720,10 +2692,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);
 
@@ -2778,9 +2746,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;
@@ -2858,10 +2826,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]
                        = PointerGetDatum(new_acl);
@@ -2917,9 +2881,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;
@@ -2984,10 +2948,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);
 
@@ -3040,9 +3000,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;
@@ -3108,10 +3068,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);
 
@@ -3160,9 +3116,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;
@@ -3242,10 +3198,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);
 
@@ -3384,13 +3336,9 @@ ExecGrant_Parameter(InternalGrant *istmt)
                {
                        /* finished building new ACL value, now insert it */
                        HeapTuple       newtuple;
-                       Datum           values[Natts_pg_parameter_acl];
-                       bool            nulls[Natts_pg_parameter_acl];
-                       bool            replaces[Natts_pg_parameter_acl];
-
-                       MemSet(values, 0, sizeof(values));
-                       MemSet(nulls, false, sizeof(nulls));
-                       MemSet(replaces, false, sizeof(replaces));
+                       Datum           values[Natts_pg_parameter_acl] = {0};
+                       bool            nulls[Natts_pg_parameter_acl] = {0};
+                       bool            replaces[Natts_pg_parameter_acl] = {0};
 
                        replaces[Anum_pg_parameter_acl_paracl - 1] = true;
                        values[Anum_pg_parameter_acl_paracl - 1] = PointerGetDatum(new_acl);
@@ -6419,17 +6367,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;
 
@@ -6446,8 +6390,8 @@ recordExtensionInitPrivWorker(Oid objoid, Oid classoid, int objsubid, Acl *new_a
        }
        else
        {
-               Datum           values[Natts_pg_init_privs];
-               bool            nulls[Natts_pg_init_privs];
+               Datum           values[Natts_pg_init_privs] = {0};
+               bool            nulls[Natts_pg_init_privs] = {0};
 
                /*
                 * Only add a new entry if the new ACL is non-NULL.
@@ -6458,8 +6402,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);
index de10923391022a594e21f1222b835e9b904ea864..5cbd72ce1096912f11f3a844bc8e9a0b20808e64 100644 (file)
@@ -1635,12 +1635,11 @@ recordDependencyOnSingleRelExpr(const ObjectAddress *depender,
                                                                bool reverse_self)
 {
        find_expr_references_context context;
-       RangeTblEntry rte;
+       RangeTblEntry rte = {0};
 
        context.addrs = new_object_addresses();
 
        /* We gin up a rather bogus rangetable list to handle Vars */
-       MemSet(&rte, 0, sizeof(rte));
        rte.type = T_RangeTblEntry;
        rte.rtekind = RTE_RELATION;
        rte.relid = relId;
index e770ea6eb84bc7aafe4f9939b10d291cc59f9383..9b03579e6e01f690ca0cf03267c85cc3a6572fb4 100644 (file)
@@ -1709,15 +1709,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);
                        replacesAtt[Anum_pg_attribute_atthasmissing - 1] = true;
@@ -2006,9 +2002,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,
@@ -2041,10 +2037,6 @@ 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;
@@ -3321,7 +3313,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;
        ObjectAddresses *addrs;
@@ -3347,8 +3339,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;
index c5d463ac55e5d546ed7ce2149264b161a9fffb03..d7192f35e3f365bd3c8f8242934e7848542974bb 100644 (file)
@@ -554,7 +554,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;
@@ -608,8 +608,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);
        values[Anum_pg_index_indnatts - 1] = Int16GetDatum(indexInfo->ii_NumIndexAttrs);
index c5d4a9912ea7073801f0c05bf2b80e8cbcc0a381..1a14093a9a05e6cf5a5048e19dac2ee745c8a98c 100644 (file)
@@ -111,15 +111,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;
 
index 4857f6468d281931f7263396d4f00e13668c2c47..1812bb7fcc96aca54f5de155493134b44dd5e047 100644 (file)
@@ -47,7 +47,7 @@ CastCreate(Oid sourcetypeid, Oid targettypeid, Oid funcid, char castcontext,
        HeapTuple       tuple;
        Oid                     castid;
        Datum           values[Natts_pg_cast];
-       bool            nulls[Natts_pg_cast];
+       bool            nulls[Natts_pg_cast] = {0};
        ObjectAddress myself,
                                referenced;
        ObjectAddresses *addrs;
@@ -78,8 +78,6 @@ CastCreate(Oid sourcetypeid, Oid targettypeid, Oid funcid, char castcontext,
        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);
index 2decee909b36619cd33f9ead7e6a3f8cbe41b697..0570e811d1ef7af648183a2eb08d8ef7be1b0da8 100644 (file)
@@ -74,8 +74,8 @@ ParameterAclCreate(const char *parameter)
        Relation        rel;
        TupleDesc       tupDesc;
        HeapTuple       tuple;
-       Datum           values[Natts_pg_parameter_acl];
-       bool            nulls[Natts_pg_parameter_acl];
+       Datum           values[Natts_pg_parameter_acl] = {0};
+       bool            nulls[Natts_pg_parameter_acl] = {0};
 
        /*
         * To prevent cluttering pg_parameter_acl with useless entries, insist
@@ -98,8 +98,6 @@ ParameterAclCreate(const char *parameter)
         */
        rel = table_open(ParameterAclRelationId, RowExclusiveLock);
        tupDesc = RelationGetDescr(rel);
-       MemSet(values, 0, sizeof(values));
-       MemSet(nulls, false, sizeof(nulls));
        parameterId = GetNewOidWithIndex(rel,
                                                                         ParameterAclOidIndexId,
                                                                         Anum_pg_parameter_acl_oid);
index c365de3a72af1357032316efc53ac393052d758d..ade3bf3acad5b4e81fbd7d40984293a089d74bc1 100644 (file)
@@ -1162,14 +1162,12 @@ pg_get_publication_tables(PG_FUNCTION_ARGS)
                HeapTuple       pubtuple = NULL;
                HeapTuple       rettuple;
                Oid                     relid = list_nth_oid(tables, funcctx->call_cntr);
-               Datum           values[NUM_PUBLICATION_TABLES_ELEM];
-               bool            nulls[NUM_PUBLICATION_TABLES_ELEM];
+               Datum           values[NUM_PUBLICATION_TABLES_ELEM] = {0};
+               bool            nulls[NUM_PUBLICATION_TABLES_ELEM] = {0};
 
                /*
                 * Form tuple with appropriate data.
                 */
-               MemSet(nulls, 0, sizeof(nulls));
-               MemSet(values, 0, sizeof(values));
 
                publication = GetPublicationByName(pubname, false);
 
index 1901b434c588bb62b2f3d712582472141376f7f8..099d369b2f4ae2f7004e3c3a7dcba66c7420e4bc 100644 (file)
@@ -689,8 +689,8 @@ createdb(ParseState *pstate, const CreatedbStmt *stmt)
        volatile Oid dst_deftablespace;
        Relation        pg_database_rel;
        HeapTuple       tuple;
-       Datum           new_record[Natts_pg_database];
-       bool            new_record_nulls[Natts_pg_database];
+       Datum           new_record[Natts_pg_database] = {0};
+       bool            new_record_nulls[Natts_pg_database] = {0};
        Oid                     dboid = InvalidOid;
        Oid                     datdba;
        ListCell   *option;
@@ -1296,9 +1296,6 @@ createdb(ParseState *pstate, const CreatedbStmt *stmt)
                   (dblocprovider != COLLPROVIDER_ICU && !dbiculocale));
 
        /* Form tuple */
-       MemSet(new_record, 0, sizeof(new_record));
-       MemSet(new_record_nulls, false, sizeof(new_record_nulls));
-
        new_record[Anum_pg_database_oid - 1] = ObjectIdGetDatum(dboid);
        new_record[Anum_pg_database_datname - 1] =
                DirectFunctionCall1(namein, CStringGetDatum(dbname));
@@ -1822,9 +1819,6 @@ movedb(const char *dbname, const char *tblspcname)
                                newtuple;
        Oid                     src_tblspcoid,
                                dst_tblspcoid;
-       Datum           new_record[Natts_pg_database];
-       bool            new_record_nulls[Natts_pg_database];
-       bool            new_record_repl[Natts_pg_database];
        ScanKeyData scankey;
        SysScanDesc sysscan;
        AclResult       aclresult;
@@ -2003,6 +1997,10 @@ movedb(const char *dbname, const char *tblspcname)
        PG_ENSURE_ERROR_CLEANUP(movedb_failure_callback,
                                                        PointerGetDatum(&fparms));
        {
+               Datum           new_record[Natts_pg_database] = {0};
+               bool            new_record_nulls[Natts_pg_database] = {0};
+               bool            new_record_repl[Natts_pg_database] = {0};
+
                /*
                 * Copy files from the old tablespace to the new one
                 */
@@ -2042,10 +2040,6 @@ movedb(const char *dbname, const char *tblspcname)
                                        (errcode(ERRCODE_UNDEFINED_DATABASE),
                                         errmsg("database \"%s\" does not exist", dbname)));
 
-               MemSet(new_record, 0, sizeof(new_record));
-               MemSet(new_record_nulls, false, sizeof(new_record_nulls));
-               MemSet(new_record_repl, false, sizeof(new_record_repl));
-
                new_record[Anum_pg_database_dattablespace - 1] = ObjectIdGetDatum(dst_tblspcoid);
                new_record_repl[Anum_pg_database_dattablespace - 1] = true;
 
@@ -2194,9 +2188,9 @@ AlterDatabase(ParseState *pstate, AlterDatabaseStmt *stmt, bool isTopLevel)
        DefElem    *dallowconnections = NULL;
        DefElem    *dconnlimit = NULL;
        DefElem    *dtablespace = NULL;
-       Datum           new_record[Natts_pg_database];
-       bool            new_record_nulls[Natts_pg_database];
-       bool            new_record_repl[Natts_pg_database];
+       Datum           new_record[Natts_pg_database] = {0};
+       bool            new_record_nulls[Natts_pg_database] = {0};
+       bool            new_record_repl[Natts_pg_database] = {0};
 
        /* Extract options from the statement node tree */
        foreach(option, stmt->options)
@@ -2305,10 +2299,6 @@ AlterDatabase(ParseState *pstate, AlterDatabaseStmt *stmt, bool isTopLevel)
        /*
         * Build an updated tuple, perusing the information just obtained
         */
-       MemSet(new_record, 0, sizeof(new_record));
-       MemSet(new_record_nulls, false, sizeof(new_record_nulls));
-       MemSet(new_record_repl, false, sizeof(new_record_repl));
-
        if (distemplate)
        {
                new_record[Anum_pg_database_datistemplate - 1] = BoolGetDatum(dbistemplate);
@@ -2492,8 +2482,8 @@ AlterDatabaseOwner(const char *dbname, Oid newOwnerId)
        if (datForm->datdba != newOwnerId)
        {
                Datum           repl_val[Natts_pg_database];
-               bool            repl_null[Natts_pg_database];
-               bool            repl_repl[Natts_pg_database];
+               bool            repl_null[Natts_pg_database] = {0};
+               bool            repl_repl[Natts_pg_database] = {0};
                Acl                *newAcl;
                Datum           aclDatum;
                bool            isNull;
@@ -2521,9 +2511,6 @@ AlterDatabaseOwner(const char *dbname, Oid newOwnerId)
                                        (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
                                         errmsg("permission denied to change owner of database")));
 
-               memset(repl_null, false, sizeof(repl_null));
-               memset(repl_repl, false, sizeof(repl_repl));
-
                repl_repl[Anum_pg_database_datdba - 1] = true;
                repl_val[Anum_pg_database_datdba - 1] = ObjectIdGetDatum(newOwnerId);
 
index f46f86474aabc46bfff580430f46deeeb3735f69..eef3e5d56e5e28e2a492720a85d42720df2e3dab 100644 (file)
@@ -1310,14 +1310,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);
 
@@ -1840,7 +1837,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;
 
@@ -1858,8 +1855,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:
index b016eecb2cd8b4d09337808d5ccfb9124dcf0dba..59e3af626faff66ff25ece9178fe6f390ea54a7a 100644 (file)
@@ -1806,8 +1806,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;
@@ -1913,8 +1913,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,
@@ -1931,7 +1929,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;
 
index 2333aae4673eeef4178704fffada9f8cffccfd88..579825c1593c44f9cd89a9007f8c8d99f2a85895 100644 (file)
@@ -685,12 +685,10 @@ pg_prepared_statement(PG_FUNCTION_ARGS)
                {
                        TupleDesc       result_desc;
                        Datum           values[8];
-                       bool            nulls[8];
+                       bool            nulls[8] = {0};
 
                        result_desc = prep_stmt->plansource->resultDesc;
 
-                       MemSet(nulls, 0, sizeof(nulls));
-
                        values[0] = CStringGetTextDatum(prep_stmt->stmt_name);
                        values[1] = CStringGetTextDatum(prep_stmt->plansource->query_string);
                        values[2] = TimestampTzGetDatum(prep_stmt->prepare_time);
index f2947ea9b4947f5edad025cc463dd3dba12fc4bf..a2f577024a1a2705e4d64b4b4221c577ebf7b996 100644 (file)
@@ -8988,15 +8988,15 @@ ATAddForeignKeyConstraint(List **wqueue, AlteredTableInfo *tab, Relation rel,
                                                  bool recurse, bool recursing, LOCKMODE lockmode)
 {
        Relation        pkrel;
-       int16           pkattnum[INDEX_MAX_KEYS];
-       int16           fkattnum[INDEX_MAX_KEYS];
-       Oid                     pktypoid[INDEX_MAX_KEYS];
-       Oid                     fktypoid[INDEX_MAX_KEYS];
-       Oid                     opclasses[INDEX_MAX_KEYS];
-       Oid                     pfeqoperators[INDEX_MAX_KEYS];
-       Oid                     ppeqoperators[INDEX_MAX_KEYS];
-       Oid                     ffeqoperators[INDEX_MAX_KEYS];
-       int16           fkdelsetcols[INDEX_MAX_KEYS];
+       int16           pkattnum[INDEX_MAX_KEYS] = {0};
+       int16           fkattnum[INDEX_MAX_KEYS] = {0};
+       Oid                     pktypoid[INDEX_MAX_KEYS] = {0};
+       Oid                     fktypoid[INDEX_MAX_KEYS] = {0};
+       Oid                     opclasses[INDEX_MAX_KEYS] = {0};
+       Oid                     pfeqoperators[INDEX_MAX_KEYS] = {0};
+       Oid                     ppeqoperators[INDEX_MAX_KEYS] = {0};
+       Oid                     ffeqoperators[INDEX_MAX_KEYS] = {0};
+       int16           fkdelsetcols[INDEX_MAX_KEYS] = {0};
        int                     i;
        int                     numfks,
                                numpks,
@@ -9088,16 +9088,6 @@ ATAddForeignKeyConstraint(List **wqueue, AlteredTableInfo *tab, Relation rel,
         * Look up the referencing attributes to make sure they exist, and record
         * their attnums and type OIDs.
         */
-       MemSet(pkattnum, 0, sizeof(pkattnum));
-       MemSet(fkattnum, 0, sizeof(fkattnum));
-       MemSet(pktypoid, 0, sizeof(pktypoid));
-       MemSet(fktypoid, 0, sizeof(fktypoid));
-       MemSet(opclasses, 0, sizeof(opclasses));
-       MemSet(pfeqoperators, 0, sizeof(pfeqoperators));
-       MemSet(ppeqoperators, 0, sizeof(ppeqoperators));
-       MemSet(ffeqoperators, 0, sizeof(ffeqoperators));
-       MemSet(fkdelsetcols, 0, sizeof(fkdelsetcols));
-
        numfks = transformColumnNameList(RelationGetRelid(rel),
                                                                         fkconstraint->fk_attrs,
                                                                         fkattnum, fktypoid);
@@ -11473,7 +11463,7 @@ validateForeignKeyConstraint(char *conname,
 {
        TupleTableSlot *slot;
        TableScanDesc scan;
-       Trigger         trig;
+       Trigger         trig = {0};
        Snapshot        snapshot;
        MemoryContext oldcxt;
        MemoryContext perTupCxt;
@@ -11484,7 +11474,6 @@ validateForeignKeyConstraint(char *conname,
        /*
         * Build a trigger call structure; we'll need it either way.
         */
-       MemSet(&trig, 0, sizeof(trig));
        trig.tgoid = InvalidOid;
        trig.tgname = conname;
        trig.tgenabled = TRIGGER_FIRES_ON_ORIGIN;
@@ -12758,15 +12747,11 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
 
                        int                     one = 1;
                        bool            isNull;
-                       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};
                        HeapTuple       newTup;
 
-                       MemSet(valuesAtt, 0, sizeof(valuesAtt));
-                       MemSet(nullsAtt, false, sizeof(nullsAtt));
-                       MemSet(replacesAtt, false, sizeof(replacesAtt));
-
                        missingval = array_get_element(missingval,
                                                                                   1,
                                                                                   &one,
@@ -19192,7 +19177,7 @@ ATDetachCheckNoForeignKeyRefs(Relation partition)
                HeapTuple       tuple;
                Form_pg_constraint constrForm;
                Relation        rel;
-               Trigger         trig;
+               Trigger         trig = {0};
 
                tuple = SearchSysCache1(CONSTROID, ObjectIdGetDatum(constrOid));
                if (!HeapTupleIsValid(tuple))
@@ -19205,7 +19190,6 @@ ATDetachCheckNoForeignKeyRefs(Relation partition)
                /* prevent data changes into the referencing table until commit */
                rel = table_open(constrForm->conrelid, ShareLock);
 
-               MemSet(&trig, 0, sizeof(trig));
                trig.tgoid = InvalidOid;
                trig.tgname = NameStr(constrForm->conname);
                trig.tgenabled = TRIGGER_FIRES_ON_ORIGIN;
index c8bdd9992acc22c0937e2fb5888d5cfa7efb2cd6..cb7d46089a38c97d804e2e9be47c0756e5d114ca 100644 (file)
@@ -238,7 +238,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;
@@ -340,8 +340,6 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
         */
        rel = table_open(TableSpaceRelationId, RowExclusiveLock);
 
-       MemSet(nulls, false, sizeof(nulls));
-
        if (IsBinaryUpgrade)
        {
                /* Use binary-upgrade override for tablespace oid */
index a8757a90bf8300c43b6966cfe0b69ee6ea7f6c2d..d0d87a1184a76b5624ebe06190c31334a8daba37 100644 (file)
@@ -2570,9 +2570,9 @@ AlterDomainDefault(List *names, Node *defaultRaw)
        Relation        rel;
        char       *defaultValue;
        Node       *defaultExpr = NULL; /* NULL if no default specified */
-       Datum           new_record[Natts_pg_type];
-       bool            new_record_nulls[Natts_pg_type];
-       bool            new_record_repl[Natts_pg_type];
+       Datum           new_record[Natts_pg_type] = {0};
+       bool            new_record_nulls[Natts_pg_type] = {0};
+       bool            new_record_repl[Natts_pg_type] = {0};
        HeapTuple       newtuple;
        Form_pg_type typTup;
        ObjectAddress address;
@@ -2593,9 +2593,6 @@ AlterDomainDefault(List *names, Node *defaultRaw)
        checkDomainOwner(tup);
 
        /* Setup new tuple */
-       MemSet(new_record, (Datum) 0, sizeof(new_record));
-       MemSet(new_record_nulls, false, sizeof(new_record_nulls));
-       MemSet(new_record_repl, false, sizeof(new_record_repl));
 
        /* Store the new default into the tuple */
        if (defaultRaw)
index 984305ba31cf1798b4b64e448a02904ffed9ad9f..5b24b6dcad8099602c5b103e96c9ed25d045d988 100644 (file)
@@ -74,8 +74,8 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
        Relation        pg_authid_rel;
        TupleDesc       pg_authid_dsc;
        HeapTuple       tuple;
-       Datum           new_record[Natts_pg_authid];
-       bool            new_record_nulls[Natts_pg_authid];
+       Datum           new_record[Natts_pg_authid] = {0};
+       bool            new_record_nulls[Natts_pg_authid] = {0};
        Oid                     roleid;
        ListCell   *item;
        ListCell   *option;
@@ -338,12 +338,8 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
        /*
         * Build a tuple to insert
         */
-       MemSet(new_record, 0, sizeof(new_record));
-       MemSet(new_record_nulls, false, sizeof(new_record_nulls));
-
        new_record[Anum_pg_authid_rolname - 1] =
                DirectFunctionCall1(namein, CStringGetDatum(stmt->role));
-
        new_record[Anum_pg_authid_rolsuper - 1] = BoolGetDatum(issuper);
        new_record[Anum_pg_authid_rolinherit - 1] = BoolGetDatum(inherit);
        new_record[Anum_pg_authid_rolcreaterole - 1] = BoolGetDatum(createrole);
@@ -492,9 +488,9 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
 Oid
 AlterRole(ParseState *pstate, AlterRoleStmt *stmt)
 {
-       Datum           new_record[Natts_pg_authid];
-       bool            new_record_nulls[Natts_pg_authid];
-       bool            new_record_repl[Natts_pg_authid];
+       Datum           new_record[Natts_pg_authid] = {0};
+       bool            new_record_nulls[Natts_pg_authid] = {0};
+       bool            new_record_repl[Natts_pg_authid] = {0};
        Relation        pg_authid_rel;
        TupleDesc       pg_authid_dsc;
        HeapTuple       tuple,
@@ -691,9 +687,6 @@ AlterRole(ParseState *pstate, AlterRoleStmt *stmt)
        /*
         * Build an updated tuple, perusing the information just obtained
         */
-       MemSet(new_record, 0, sizeof(new_record));
-       MemSet(new_record_nulls, false, sizeof(new_record_nulls));
-       MemSet(new_record_repl, false, sizeof(new_record_repl));
 
        /*
         * issuper/createrole/etc
@@ -1440,9 +1433,9 @@ AddRoleMems(const char *rolename, Oid roleid,
                Oid                     memberid = lfirst_oid(iditem);
                HeapTuple       authmem_tuple;
                HeapTuple       tuple;
-               Datum           new_record[Natts_pg_auth_members];
-               bool            new_record_nulls[Natts_pg_auth_members];
-               bool            new_record_repl[Natts_pg_auth_members];
+               Datum           new_record[Natts_pg_auth_members] = {0};
+               bool            new_record_nulls[Natts_pg_auth_members] = {0};
+               bool            new_record_repl[Natts_pg_auth_members] = {0};
 
                /*
                 * pg_database_owner is never a role member.  Lifting this restriction
@@ -1500,10 +1493,6 @@ AddRoleMems(const char *rolename, Oid roleid,
                }
 
                /* Build a tuple to insert or update */
-               MemSet(new_record, 0, sizeof(new_record));
-               MemSet(new_record_nulls, false, sizeof(new_record_nulls));
-               MemSet(new_record_repl, false, sizeof(new_record_repl));
-
                new_record[Anum_pg_auth_members_roleid - 1] = ObjectIdGetDatum(roleid);
                new_record[Anum_pg_auth_members_member - 1] = ObjectIdGetDatum(memberid);
                new_record[Anum_pg_auth_members_grantor - 1] = ObjectIdGetDatum(grantorId);
@@ -1614,15 +1603,11 @@ DelRoleMems(const char *rolename, Oid roleid,
                {
                        /* Just turn off the admin option */
                        HeapTuple       tuple;
-                       Datum           new_record[Natts_pg_auth_members];
-                       bool            new_record_nulls[Natts_pg_auth_members];
-                       bool            new_record_repl[Natts_pg_auth_members];
+                       Datum           new_record[Natts_pg_auth_members] = {0};
+                       bool            new_record_nulls[Natts_pg_auth_members] = {0};
+                       bool            new_record_repl[Natts_pg_auth_members] = {0};
 
                        /* Build a tuple to update with */
-                       MemSet(new_record, 0, sizeof(new_record));
-                       MemSet(new_record_nulls, false, sizeof(new_record_nulls));
-                       MemSet(new_record_repl, false, sizeof(new_record_repl));
-
                        new_record[Anum_pg_auth_members_admin_option - 1] = BoolGetDatum(false);
                        new_record_repl[Anum_pg_auth_members_admin_option - 1] = true;
 
index 5e5732f6e1207e96489777d19b4d08d36e557961..190302b9bde8ccdaa642e869fe4abf30e0e89865 100644 (file)
@@ -2926,13 +2926,12 @@ cost_agg(Path *path, PlannerInfo *root,
        double          output_tuples;
        Cost            startup_cost;
        Cost            total_cost;
-       AggClauseCosts dummy_aggcosts;
+       const AggClauseCosts dummy_aggcosts = {0};
 
        /* Use all-zero per-aggregate costs if NULL is passed */
        if (aggcosts == NULL)
        {
                Assert(aggstrategy == AGG_HASHED);
-               MemSet(&dummy_aggcosts, 0, sizeof(AggClauseCosts));
                aggcosts = &dummy_aggcosts;
        }
 
index 2a1d44b813b01b661dde438050d781a3cd6c9575..16a0fe59e21dd503d297102df742e4b2ce592545 100644 (file)
@@ -1594,9 +1594,8 @@ expandRecordVariable(ParseState *pstate, Var *var, int levelsup)
                                         * to.  We have to build an additional level of ParseState
                                         * to keep in step with varlevelsup in the subselect.
                                         */
-                                       ParseState      mypstate;
+                                       ParseState      mypstate = {0};
 
-                                       MemSet(&mypstate, 0, sizeof(mypstate));
                                        mypstate.parentParseState = pstate;
                                        mypstate.p_rtable = rte->subquery->rtable;
                                        /* don't bother filling the rest of the fake pstate */
index 2bdab53e19b032a3fdfae76e77f7ae115978894e..3bbd5227241dc9a441f2639540601f339e5218cb 100644 (file)
@@ -938,8 +938,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;
 
@@ -953,9 +953,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);
index 3c407ab964752f453cf81c929ebb082732ca6563..3a86786cc3a4c037e364823359e51310152eb81d 100644 (file)
@@ -402,7 +402,7 @@ IdentifySystem(void)
        TupOutputState *tstate;
        TupleDesc       tupdesc;
        Datum           values[4];
-       bool            nulls[4];
+       bool            nulls[4] = {0};
        TimeLineID      currTLI;
 
        /*
@@ -437,7 +437,6 @@ IdentifySystem(void)
        }
 
        dest = CreateDestReceiver(DestRemoteSimple);
-       MemSet(nulls, false, sizeof(nulls));
 
        /* need a tuple descriptor representing four columns */
        tupdesc = CreateTemplateTupleDesc(4);
@@ -483,7 +482,7 @@ ReadReplicationSlot(ReadReplicationSlotCmd *cmd)
        DestReceiver *dest;
        TupOutputState *tstate;
        TupleDesc       tupdesc;
-       Datum           values[READ_REPLICATION_SLOT_COLS];
+       Datum           values[READ_REPLICATION_SLOT_COLS] = {0};
        bool            nulls[READ_REPLICATION_SLOT_COLS];
 
        tupdesc = CreateTemplateTupleDesc(READ_REPLICATION_SLOT_COLS);
@@ -495,8 +494,7 @@ ReadReplicationSlot(ReadReplicationSlotCmd *cmd)
        TupleDescInitBuiltinEntry(tupdesc, (AttrNumber) 3, "restart_tli",
                                                          INT8OID, -1, 0);
 
-       MemSet(values, 0, READ_REPLICATION_SLOT_COLS * sizeof(Datum));
-       MemSet(nulls, true, READ_REPLICATION_SLOT_COLS * sizeof(bool));
+       memset(nulls, true, READ_REPLICATION_SLOT_COLS * sizeof(bool));
 
        LWLockAcquire(ReplicationSlotControlLock, LW_SHARED);
        slot = SearchNamedReplicationSlot(cmd->slotname, false);
@@ -859,13 +857,12 @@ 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",
                                 LSN_FORMAT_ARGS(sendTimeLineValidUpto));
 
                dest = CreateDestReceiver(DestRemoteSimple);
-               MemSet(nulls, false, sizeof(nulls));
 
                /*
                 * Need a tuple descriptor representing two columns. int8 may seem
@@ -1043,7 +1040,7 @@ CreateReplicationSlot(CreateReplicationSlotCmd *cmd)
        TupOutputState *tstate;
        TupleDesc       tupdesc;
        Datum           values[4];
-       bool            nulls[4];
+       bool            nulls[4] = {0};
 
        Assert(!MyReplicationSlot);
 
@@ -1178,7 +1175,6 @@ CreateReplicationSlot(CreateReplicationSlotCmd *cmd)
                         LSN_FORMAT_ARGS(MyReplicationSlot->data.confirmed_flush));
 
        dest = CreateDestReceiver(DestRemoteSimple);
-       MemSet(nulls, false, sizeof(nulls));
 
        /*----------
         * Need a tuple descriptor representing four columns:
@@ -3488,7 +3484,7 @@ pg_stat_get_wal_senders(PG_FUNCTION_ARGS)
                TimestampTz replyTime;
                bool            is_sync_standby;
                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};
                int                     j;
 
                /* Collect data from shared memory */
@@ -3527,7 +3523,6 @@ pg_stat_get_wal_senders(PG_FUNCTION_ARGS)
                        }
                }
 
-               memset(nulls, 0, sizeof(nulls));
                values[0] = Int32GetDatum(pid);
 
                if (!has_privs_of_role(GetUserId(), ROLE_PG_READ_ALL_STATS))
index 185bf5fbff787829c3581d4bfdaba67854396e9b..a5a1fb887f22afb2910721f1141fa1385098579c 100644 (file)
@@ -67,8 +67,7 @@ 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};
        NameData        rname;
        Relation        pg_rewrite_desc;
        HeapTuple       tup,
@@ -81,8 +80,6 @@ InsertRule(const char *rulname,
        /*
         * Set up *nulls and *values arrays
         */
-       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);
@@ -106,6 +103,8 @@ InsertRule(const char *rulname,
 
        if (HeapTupleIsValid(oldtup))
        {
+               bool            replaces[Natts_pg_rewrite] = {0};
+
                if (!replace)
                        ereport(ERROR,
                                        (errcode(ERRCODE_DUPLICATE_OBJECT),
@@ -115,7 +114,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;
index b7fd3bcf057c69d3c6a58707dfbc6564c48d9bb6..6fa58dd8eb07db258fae180b4ca072d7638573b2 100644 (file)
@@ -1785,7 +1785,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);
@@ -1793,8 +1793,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);
 
index b0c37ede87d2fb0159f3cf331837656d2af09b0d..fb167f226a094933cf11da61ca1f75078afde231 100644 (file)
@@ -742,11 +742,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));
index 4c12c4d66302d21a1a143ef28822402792f47612..43fff50d490fb7814e57e88166a287817d721d4d 100644 (file)
@@ -4924,7 +4924,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;
@@ -5011,8 +5011,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.
@@ -5051,7 +5049,7 @@ pg_timezone_names(PG_FUNCTION_ARGS)
        pg_tzenum  *tzenum;
        pg_tz      *tz;
        Datum           values[4];
-       bool            nulls[4];
+       bool            nulls[4] = {0};
        int                     tzoff;
        struct pg_tm tm;
        fsec_t          fsec;
@@ -5088,8 +5086,6 @@ pg_timezone_names(PG_FUNCTION_ARGS)
                if (tzn && strlen(tzn) > 31)
                        continue;
 
-               MemSet(nulls, 0, sizeof(nulls));
-
                values[0] = CStringGetTextDatum(pg_get_timezone_name(tz));
                values[1] = CStringGetTextDatum(tzn ? tzn : "");
 
index dedee7af5cb767e2c9e5e383fd9ae62298dab464..f9b324efec7c2faf41b74969adb067322cfd77dc 100644 (file)
@@ -172,8 +172,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;
@@ -230,8 +230,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];
@@ -359,8 +357,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;
 
@@ -369,8 +367,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);
index 0243bc061f643c2645a1acc8fbb6f2074ea9febd..109dc8023e1464376242cc0263d4eb23b9da936f 100644 (file)
@@ -113,8 +113,8 @@ pg_partition_tree(PG_FUNCTION_ARGS)
        if (funcctx->call_cntr < list_length(partitions))
        {
                Datum           result;
-               Datum           values[PG_PARTITION_TREE_COLS];
-               bool            nulls[PG_PARTITION_TREE_COLS];
+               Datum           values[PG_PARTITION_TREE_COLS] = {0};
+               bool            nulls[PG_PARTITION_TREE_COLS] = {0};
                HeapTuple       tuple;
                Oid                     parentid = InvalidOid;
                Oid                     relid = list_nth_oid(partitions, funcctx->call_cntr);
@@ -126,8 +126,6 @@ pg_partition_tree(PG_FUNCTION_ARGS)
                /*
                 * Form tuple with appropriate data.
                 */
-               MemSet(nulls, 0, sizeof(nulls));
-               MemSet(values, 0, sizeof(values));
 
                /* relid */
                values[0] = ObjectIdGetDatum(relid);
index 893690dad52049db1fde02ddeaf634793bcc8981..d9e2a79382964c210ecb0f6dae46b70971e2e52e 100644 (file)
@@ -488,13 +488,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)
@@ -551,17 +548,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)
@@ -1747,15 +1741,11 @@ pg_stat_get_wal(PG_FUNCTION_ARGS)
 {
 #define PG_STAT_GET_WAL_COLS   9
        TupleDesc       tupdesc;
-       Datum           values[PG_STAT_GET_WAL_COLS];
-       bool            nulls[PG_STAT_GET_WAL_COLS];
+       Datum           values[PG_STAT_GET_WAL_COLS] = {0};
+       bool            nulls[PG_STAT_GET_WAL_COLS] = {0};
        char            buf[256];
        PgStat_WalStats *wal_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(PG_STAT_GET_WAL_COLS);
        TupleDescInitEntry(tupdesc, (AttrNumber) 1, "wal_records",
@@ -1826,8 +1816,8 @@ pg_stat_get_slru(PG_FUNCTION_ARGS)
        for (i = 0;; i++)
        {
                /* for each row */
-               Datum           values[PG_STAT_GET_SLRU_COLS];
-               bool            nulls[PG_STAT_GET_SLRU_COLS];
+               Datum           values[PG_STAT_GET_SLRU_COLS] = {0};
+               bool            nulls[PG_STAT_GET_SLRU_COLS] = {0};
                PgStat_SLRUStats stat;
                const char *name;
 
@@ -1837,8 +1827,6 @@ pg_stat_get_slru(PG_FUNCTION_ARGS)
                        break;
 
                stat = stats[i];
-               MemSet(values, 0, sizeof(values));
-               MemSet(nulls, 0, sizeof(nulls));
 
                values[0] = PointerGetDatum(cstring_to_text(name));
                values[1] = Int64GetDatum(stat.blocks_zeroed);
@@ -2201,14 +2189,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",
@@ -2274,15 +2258,11 @@ pg_stat_get_replication_slot(PG_FUNCTION_ARGS)
        text       *slotname_text = PG_GETARG_TEXT_P(0);
        NameData        slotname;
        TupleDesc       tupdesc;
-       Datum           values[PG_STAT_GET_REPLICATION_SLOT_COLS];
-       bool            nulls[PG_STAT_GET_REPLICATION_SLOT_COLS];
+       Datum           values[PG_STAT_GET_REPLICATION_SLOT_COLS] = {0};
+       bool            nulls[PG_STAT_GET_REPLICATION_SLOT_COLS] = {0};
        PgStat_StatReplSlotEntry *slotent;
        PgStat_StatReplSlotEntry allzero;
 
-       /* 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(PG_STAT_GET_REPLICATION_SLOT_COLS);
        TupleDescInitEntry(tupdesc, (AttrNumber) 1, "slot_name",
@@ -2348,8 +2328,8 @@ pg_stat_get_subscription_stats(PG_FUNCTION_ARGS)
 #define PG_STAT_GET_SUBSCRIPTION_STATS_COLS    4
        Oid                     subid = PG_GETARG_OID(0);
        TupleDesc       tupdesc;
-       Datum           values[PG_STAT_GET_SUBSCRIPTION_STATS_COLS];
-       bool            nulls[PG_STAT_GET_SUBSCRIPTION_STATS_COLS];
+       Datum           values[PG_STAT_GET_SUBSCRIPTION_STATS_COLS] = {0};
+       bool            nulls[PG_STAT_GET_SUBSCRIPTION_STATS_COLS] = {0};
        PgStat_StatSubEntry *subentry;
        PgStat_StatSubEntry allzero;
 
@@ -2368,10 +2348,6 @@ pg_stat_get_subscription_stats(PG_FUNCTION_ARGS)
                                           TIMESTAMPTZOID, -1, 0);
        BlessTupleDesc(tupdesc);
 
-       /* Initialise values and NULL flags arrays */
-       MemSet(values, 0, sizeof(values));
-       MemSet(nulls, 0, sizeof(nulls));
-
        if (!subentry)
        {
                /* If the subscription is not found, initialise its stats */
index fa1f589fad873a24bf8f901d42c24f1e9ab2362f..6f99b5b2437340080a60827f378da02f0f4f2588 100644 (file)
@@ -6642,10 +6642,10 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
                           double *indexPages)
 {
        IndexOptInfo *index = path->indexinfo;
-       GenericCosts costs;
+       GenericCosts costs = {0};
        Oid                     relid;
        AttrNumber      colnum;
-       VariableStatData vardata;
+       VariableStatData vardata = {0};
        double          numIndexTuples;
        Cost            descentCost;
        List       *indexBoundQuals;
@@ -6797,7 +6797,6 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
        /*
         * Now do generic index cost estimation.
         */
-       MemSet(&costs, 0, sizeof(costs));
        costs.numIndexTuples = numIndexTuples;
 
        genericcostestimate(root, path, loop_count, &costs);
@@ -6842,8 +6841,6 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
         * ordering, but don't negate it entirely.  Before 8.0 we divided the
         * correlation by the number of columns, but that seems too strong.)
         */
-       MemSet(&vardata, 0, sizeof(vardata));
-
        if (index->indexkeys[0] != 0)
        {
                /* Simple variable --- look to stats for the underlying table */
@@ -6947,9 +6944,7 @@ hashcostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
                                 Selectivity *indexSelectivity, double *indexCorrelation,
                                 double *indexPages)
 {
-       GenericCosts costs;
-
-       MemSet(&costs, 0, sizeof(costs));
+       GenericCosts costs = {0};
 
        genericcostestimate(root, path, loop_count, &costs);
 
@@ -6992,11 +6987,9 @@ gistcostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
                                 double *indexPages)
 {
        IndexOptInfo *index = path->indexinfo;
-       GenericCosts costs;
+       GenericCosts costs = {0};
        Cost            descentCost;
 
-       MemSet(&costs, 0, sizeof(costs));
-
        genericcostestimate(root, path, loop_count, &costs);
 
        /*
@@ -7049,11 +7042,9 @@ spgcostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
                                double *indexPages)
 {
        IndexOptInfo *index = path->indexinfo;
-       GenericCosts costs;
+       GenericCosts costs = {0};
        Cost            descentCost;
 
-       MemSet(&costs, 0, sizeof(costs));
-
        genericcostestimate(root, path, loop_count, &costs);
 
        /*
index f70f829d830f783420bd1ea8096f08d13bbbcf41..49cdb290ac289cf648bc8746aee426610209659c 100644 (file)
@@ -2403,7 +2403,7 @@ interval_cmp_value(const Interval *interval)
 }
 
 static int
-interval_cmp_internal(Interval *interval1, Interval *interval2)
+interval_cmp_internal(const Interval *interval1, const Interval *interval2)
 {
        INT128          span1 = interval_cmp_value(interval1);
        INT128          span2 = interval_cmp_value(interval2);
@@ -5777,7 +5777,7 @@ generate_series_timestamp(PG_FUNCTION_ARGS)
                Timestamp       finish = PG_GETARG_TIMESTAMP(1);
                Interval   *step = PG_GETARG_INTERVAL_P(2);
                MemoryContext oldcontext;
-               Interval        interval_zero;
+               const Interval interval_zero = {0};
 
                /* create a function context for cross-call persistence */
                funcctx = SRF_FIRSTCALL_INIT();
@@ -5800,7 +5800,6 @@ generate_series_timestamp(PG_FUNCTION_ARGS)
                fctx->step = *step;
 
                /* Determine sign of the interval */
-               MemSet(&interval_zero, 0, sizeof(Interval));
                fctx->step_sign = interval_cmp_internal(&fctx->step, &interval_zero);
 
                if (fctx->step_sign == 0)
@@ -5857,7 +5856,7 @@ generate_series_timestamptz(PG_FUNCTION_ARGS)
                TimestampTz finish = PG_GETARG_TIMESTAMPTZ(1);
                Interval   *step = PG_GETARG_INTERVAL_P(2);
                MemoryContext oldcontext;
-               Interval        interval_zero;
+               const Interval interval_zero = {0};
 
                /* create a function context for cross-call persistence */
                funcctx = SRF_FIRSTCALL_INIT();
@@ -5880,7 +5879,6 @@ generate_series_timestamptz(PG_FUNCTION_ARGS)
                fctx->step = *step;
 
                /* Determine sign of the interval */
-               MemSet(&interval_zero, 0, sizeof(Interval));
                fctx->step_sign = interval_cmp_internal(&fctx->step, &interval_zero);
 
                if (fctx->step_sign == 0)
index d549f66d4afd1466d1b5114723846480d5c62dfd..3a161bdb88d17c933a844650154e79bb2896ddf7 100644 (file)
@@ -1146,14 +1146,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);
index 4445a86aee2018c5d087e5accae2ac1c72608e8a..1a877ba54e444a867ee27f4b4d0540e06c7fa676 100644 (file)
@@ -447,7 +447,7 @@ reached_end_position(XLogRecPtr segendpos, uint32 timeline,
        {
 #ifndef WIN32
                fd_set          fds;
-               struct timeval tv;
+               struct timeval tv = {0};
                int                     r;
 
                /*
@@ -457,16 +457,13 @@ reached_end_position(XLogRecPtr segendpos, uint32 timeline,
                FD_ZERO(&fds);
                FD_SET(bgpipe[0], &fds);
 
-               MemSet(&tv, 0, sizeof(tv));
-
                r = select(bgpipe[0] + 1, &fds, NULL, NULL, &tv);
                if (r == 1)
                {
-                       char            xlogend[64];
+                       char            xlogend[64] = {0};
                        uint32          hi,
                                                lo;
 
-                       MemSet(xlogend, 0, sizeof(xlogend));
                        r = read(bgpipe[0], xlogend, sizeof(xlogend) - 1);
                        if (r < 0)
                                pg_fatal("could not read from ready pipe: %m");
@@ -528,11 +525,10 @@ typedef struct
 static int
 LogStreamerMain(logstreamer_param *param)
 {
-       StreamCtl       stream;
+       StreamCtl       stream = {0};
 
        in_log_streamer = true;
 
-       MemSet(&stream, 0, sizeof(stream));
        stream.startpos = param->startptr;
        stream.timeline = param->timeline;
        stream.sysidentifier = param->sysidentifier;
@@ -1758,7 +1754,7 @@ BaseBackup(char *compression_algorithm, char *compression_detail,
        char       *basebkp;
        int                     i;
        char            xlogstart[64];
-       char            xlogend[64];
+       char            xlogend[64] = {0};
        int                     minServerMajor,
                                maxServerMajor;
        int                     serverVersion,
@@ -1952,7 +1948,6 @@ BaseBackup(char *compression_algorithm, char *compression_detail,
        else
                starttli = latesttli;
        PQclear(res);
-       MemSet(xlogend, 0, sizeof(xlogend));
 
        if (verbose && includewal != NO_WAL)
                pg_log_info("write-ahead log start point: %s on timeline %u",
index ea3902c9711a1689340626df97d1e447f68d9cb4..f064cff4aba04df1199878ab16ccc536edcc22e0 100644 (file)
@@ -564,11 +564,9 @@ StreamLog(void)
 {
        XLogRecPtr      serverpos;
        TimeLineID      servertli;
-       StreamCtl       stream;
+       StreamCtl       stream = {0};
        char       *sysidentifier;
 
-       MemSet(&stream, 0, sizeof(stream));
-
        /*
         * Connect in replication mode to the server
         */
index ef4c11277ac8d2387391ec2f08cbb5edd86b4122..e90aa0ba377d33e24dd43919c6cc30ecd9527529 100644 (file)
@@ -1111,9 +1111,8 @@ tar_close(Walfile f, WalCloseMethod method)
        padding = tarPaddingBytesRequired(filesize);
        if (padding)
        {
-               char            zerobuf[TAR_BLOCK_SIZE];
+               char            zerobuf[TAR_BLOCK_SIZE] = {0};
 
-               MemSet(zerobuf, 0, padding);
                if (tar_write(f, zerobuf, padding) != padding)
                        return -1;
        }
@@ -1222,7 +1221,7 @@ tar_existsfile(const char *pathname)
 static bool
 tar_finish(void)
 {
-       char            zerobuf[1024];
+       char            zerobuf[1024] = {0};
 
        tar_clear_error();
 
@@ -1233,7 +1232,6 @@ tar_finish(void)
        }
 
        /* A tarfile always ends with two empty blocks */
-       MemSet(zerobuf, 0, sizeof(zerobuf));
        if (tar_data->compression_algorithm == PG_COMPRESSION_NONE)
        {
                errno = 0;
index cd73d49679dd291dc63d8c3ff54bab58848531d7..267103efb9975135e7cb7f79dd5fcebb2af8c88a 100644 (file)
@@ -165,14 +165,12 @@ static int
 getaddrinfo_unix(const char *path, const struct addrinfo *hintsp,
                                 struct addrinfo **result)
 {
-       struct addrinfo hints;
+       struct addrinfo hints = {0};
        struct addrinfo *aip;
        struct sockaddr_un *unp;
 
        *result = NULL;
 
-       MemSet(&hints, 0, sizeof(hints));
-
        if (strlen(path) >= sizeof(unp->sun_path))
                return EAI_FAIL;
 
index abb1c597707746fe26efcf63fa1ed8308fdc1fb8..e037cf0a88e76986e9971cd1820d732b81d82fd2 100644 (file)
@@ -756,12 +756,8 @@ find_arguments(const char *format, va_list args,
        int                     longflag;
        int                     fmtpos;
        int                     i;
-       int                     last_dollar;
-       PrintfArgType argtypes[PG_NL_ARGMAX + 1];
-
-       /* Initialize to "no dollar arguments known" */
-       last_dollar = 0;
-       MemSet(argtypes, 0, sizeof(argtypes));
+       int                     last_dollar = 0;        /* Init to "no dollar arguments known" */
+       PrintfArgType argtypes[PG_NL_ARGMAX + 1] = {0};
 
        /*
         * This loop must accept the same format strings as the one in dopr().
index 3b19e0eadc00a68563f566c8f953c8435c9723bb..2ce88cb6245207398b7e9bc44f848b37c8812560 100644 (file)
@@ -50,7 +50,7 @@ test_predtest(PG_FUNCTION_ARGS)
                                strong_refuted_by,
                                weak_refuted_by;
        Datum           values[8];
-       bool            nulls[8];
+       bool            nulls[8] = {0};
        int                     i;
 
        /* We use SPI to parse, plan, and execute the test query */
@@ -204,7 +204,6 @@ test_predtest(PG_FUNCTION_ARGS)
                                           "w_r_holds", BOOLOID, -1, 0);
        tupdesc = BlessTupleDesc(tupdesc);
 
-       MemSet(nulls, 0, sizeof(nulls));
        values[0] = BoolGetDatum(strong_implied_by);
        values[1] = BoolGetDatum(weak_implied_by);
        values[2] = BoolGetDatum(strong_refuted_by);
index ba3532a51e852b99d1ad8e6c520283474c3cbd71..b88d70b6fcc18959bd2970fa9e3abd730a35d45a 100644 (file)
@@ -1110,7 +1110,7 @@ test_enc_conversion(PG_FUNCTION_ARGS)
        int                     convertedbytes;
        int                     dstlen;
        Datum           values[2];
-       bool            nulls[2];
+       bool            nulls[2] = {0};
        HeapTuple       tuple;
 
        if (src_encoding < 0)
@@ -1199,7 +1199,6 @@ test_enc_conversion(PG_FUNCTION_ARGS)
                pfree(dst);
        }
 
-       MemSet(nulls, 0, sizeof(nulls));
        values[0] = Int32GetDatum(convertedbytes);
        values[1] = PointerGetDatum(retval);
        tuple = heap_form_tuple(tupdesc, values, nulls);