2015-12-22 6:22 GMT+01:00 Michael Paquier <michael.paqu...@gmail.com>:
> On Tue, Dec 22, 2015 at 12:11 AM, Robert Haas <robertmh...@gmail.com> > wrote: > > On Sun, Dec 20, 2015 at 4:54 AM, Pavel Stehule <pavel.steh...@gmail.com> > wrote: > >> new update: > >> > >> 1. unit searching is case insensitive > >> > >> 2. initial support for binary byte prefixes - KiB, MiB, .. (IEC > standard), > >> change behave for SI units > >> > >> Second point is much more complex then it is looking - if pg_size_bytes > >> should be consistent with pg_size_pretty. > >> > >> The current pg_size_pretty and transformations in guc.c are based on > JEDEC > >> standard. Using this standard for GUC has sense - using it for object > sizes > >> is probably unhappy. > >> > >> I tried to fix (and enhance) pg_size_pretty - now reports correct > units, and > >> via second parameter it allows to specify base: 2 (binary, IEC - > default) > >> or 10 (SI). > > > > -1 from me. I don't think we should muck with the way pg_size_pretty > works. > > Yeah. > > + static const unit_multiplier unit_multiplier_table[] = > + { > + {"B", 1L}, > + {"kiB", 1024L}, > + {"MiB", 1024L * 1024}, > + {"GiB", 1024L * 1024 * 1024}, > + {"TiB", 1024L * 1024 * 1024 * 1024}, > + {"PiB", 1024L * 1024 * 1024 * 1024 * 1024}, > This is rather close to memory_unit_conversion_table in guc.c. Would > it be worth refactoring those unit tables into something more generic > instead of duplicating them? > yes, it is possible with following impacts: 1. We need add PB to memory_unit_conversion_table in guc.c 2. This table holds multipliers in JEDEC standard - and introduce other standards IEC, SI there isn't good idea. Is it ok? Regards Pavel > -- > Michael >