Code cleanup patch submission for extended_stats.c

Mark Dilger <hornschnorter@gmail.com>

From: Mark Dilger <hornschnorter@gmail.com>
To: PostgreSQL mailing lists <pgsql-hackers@postgresql.org>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>
Date: 2017-11-25T19:57:08Z
Lists: pgsql-hackers

Attachments

Hackers, Alvaro,

In src/backend/statistics/extended_stats.c, in statext_store, there is a section:

    Datum       values[Natts_pg_statistic_ext];
    bool        nulls[Natts_pg_statistic_ext];
    bool        replaces[Natts_pg_statistic_ext];

    memset(nulls, 1, Natts_pg_statistic_ext * sizeof(bool));
    memset(replaces, 0, Natts_pg_statistic_ext * sizeof(bool));
    memset(values, 0, Natts_pg_statistic_ext * sizeof(Datum));

It looks to me like Alvaro introduced this in the original version of the file which 
was created in commit 7b504eb282ca2f5104b5c00b4f05a3ef6bb1385b.  Grep'ing
through the code base, it seems the following would be more consistent with
how these initializations are handled elsewhere:

    Datum       values[Natts_pg_statistic_ext];
    bool        nulls[Natts_pg_statistic_ext];
    bool        replaces[Natts_pg_statistic_ext];

    memset(nulls, 1, sizeof(nulls));
    memset(replaces, 0, sizeof(replaces));
    memset(values, 0, sizeof(values));

Patch attached as 0001_extended_stats_sizeof.patch.1


mark

Commits

  1. Make memset() use sizeof() rather than re-compute size

  2. Implement multivariate n-distinct coefficients