aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/transam/parallel.c
diff options
context:
space:
mode:
authorNathan Bossart <nathan@postgresql.org>2023-07-12 20:34:39 -0700
committerNathan Bossart <nathan@postgresql.org>2023-07-12 20:34:39 -0700
commit411b720343005597d042fc1736ce9a3a3ee8a1fe (patch)
tree98e89beabce2bf441302f4aeca9ba14a50dbd2d5 /src/backend/access/transam/parallel.c
parentb6e1157e7d339c4e20d68448125a4cef42b1ac9d (diff)
downloadpostgresql-411b720343005597d042fc1736ce9a3a3ee8a1fe.tar.gz
postgresql-411b720343005597d042fc1736ce9a3a3ee8a1fe.zip
Teach in-tree getopt_long() to move non-options to the end of argv.
Unlike the other implementations of getopt_long() I could find, the in-tree implementation does not reorder non-options to the end of argv. Instead, it returns -1 as soon as the first non-option is found, even if there are other options listed afterwards. By moving non-options to the end of argv, getopt_long() can parse all specified options and return -1 when only non-options remain. This quirk is periodically missed by hackers (e.g., 869aa40a27, ffd398021c, and d9ddc50baf). This commit introduces the aforementioned non-option reordering behavior to the in-tree getopt_long() implementation. Special thanks to Noah Misch for his help verifying behavior on AIX. Reviewed-by: Kyotaro Horiguchi, Michael Paquier Discussion: https://postgr.es/m/20230609232257.GA121461%40nathanxps13
Diffstat (limited to 'src/backend/access/transam/parallel.c')
0 files changed, 0 insertions, 0 deletions