Hi Dagfinn, > Notwitstanding Tom's objections, these are not reasons for not being > able to manipulate these values from Perl. The `i` and `I` formats for > pack/unpack (see https://perldoc.perl.org/functions/pack) use what the C > compiler calls `int`, in terms of both endianness and size. > > > For named reasons, manipulating pg_upgrade from Perl is impractical, > > considering the number of environments we support. > > > > I see two possible solutions: > > > > 1) Provide a tool written in C that allows changing pg_control, e.g. > > `pg_writecontoldata` or maybe a flat like `pg_controldata -w`. The > > tool can be executed from Perl, so it shouldn't know about > > sizeof(int), alignment and endiness. > > 1.5) Use Perl's pack/unpack functions, which are explicitly desgined for > exactly this use case.
Thanks for your reply. It is my understanding that Perl is not extremely aware of alignment. For instance if I want to modify the checksum of the file and the offset of the checksum is let's say 200 bytes on one platform, 204 on another and 208 on a third, pack/unpack will not help me. Or did I miss something? -- Best regards, Aleksander Alekseev