Обсуждение: misleading comments in pgbench

Поиск
Список
Период
Сортировка

misleading comments in pgbench

От
Jeff Janes
Дата:
From contrib/pgbench/pgbench.c starting in revision 1.77
    * Note: TPC-B requires at least 100 bytes per row, and the "filler"    * fields in these table declarations were
intendedto comply with that.    * But because they default to NULLs, they don't actually take any    * space.  We could
fixthat by giving them non-null default values.    * However, that would completely break comparability of pgbench    *
resultswith prior versions.  Since pgbench has never pretended    * to be fully TPC-B compliant anyway, we stick with
thehistorical    * behavior.
 

The statement about NULLs applies to the other 3 tables, but
pgbench_accounts.filler is loaded (via COPY) as empty strings, not as
NULLs.  When stored into char(84), the empty string takes the full
specified storage.  So on my system, rows in pgbench_accounts take up
about 130 bytes, rather than than the about 40 they would with a NULL.

The behavior probably won't be changed, but the code comment probably
should be.  Sorry if this seems like picayune thing, but it led to a
bit of head scratching until I figured it out.

Cheers,

Jeff


Re: misleading comments in pgbench

От
Tatsuo Ishii
Дата:
>      * Note: TPC-B requires at least 100 bytes per row, and the "filler"
>      * fields in these table declarations were intended to comply with that.
>      * But because they default to NULLs, they don't actually take any
>      * space.  We could fix that by giving them non-null default values.
>      * However, that would completely break comparability of pgbench
>      * results with prior versions.  Since pgbench has never pretended
>      * to be fully TPC-B compliant anyway, we stick with the historical
>      * behavior.
> 
> The statement about NULLs applies to the other 3 tables, but
> pgbench_accounts.filler is loaded (via COPY) as empty strings, not as
> NULLs.  When stored into char(84), the empty string takes the full
> specified storage.  So on my system, rows in pgbench_accounts take up
> about 130 bytes, rather than than the about 40 they would with a NULL.

Ok, what about this?
    * Note: TPC-B requires at least 100 bytes per row, and the    * "filler" fields in these table declarations were
intendedto    * comply with that.  But because they default to NULLs, they    * don't actually take any space(except
pgbench_accounts   * table. It's filled with spaces by pgbench -i command).  We    * could fix that by giving them
non-nulldefault values.    * However, that would completely break comparability of pgbench    * results with prior
versions. Since pgbench has never pretended    * to be fully TPC-B compliant anyway, we stick with the    * historical
behavior.
--
Tatsuo Ishii
SRA OSS, Inc. Japan