>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 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. 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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers