On Sun, 2025-02-23 at 20:03 -0500, Corey Huinker wrote: > If we're fine with giving up on appendNamedArgument() for relstats, > wouldn't we also want to mash these into a single call?
... > appendPQExpBuffer(out, "\t'relation', '%s'::regclass" > ",\n\t'version', '%u'::integer" > ",\n\t'relpages', '%d'::integer" > ",\n\t'reltuples', '%s'::real" > ",\n\t'relallvisible', '%d'::integer", > qualname, fout->remoteVersion, rsinfo- > >relpages, > rsinfo->reltuples_str, rsinfo->relallvisible); > appendPQExpBufferStr(out, "\n);\n"); +1. > > > Part of me thinks we'd want to do the reverse - change the struct to > store char[32] to for each of relpages, reltuples, and relallvisible, > and then convert reltpages to int in the one place where we actually > need to use in its numeric form, and even then only in one place. > Conversions to and from other data types introduce the possibility, > though very remote, of the converted-and-then-unconverted value being > cosmetically different from what we got from the server, and if down > the road we're dealing with more complex data types, those > conversions might become significant. That's a good point but let's avoid excessive redundancy in the structures. Adding a few fields to RelStatsInfo should be enough. Regards, Jeff Davis