On 18/12/2020 08:22, Wang, Shenhao wrote:
Hi, hackers

pgbench use -f filename[@weight] to receive a sql script file with a weight,
but if I create a file contains char'@', like a...@2.sql, specify this file 
without weigth,
pgbench will failed with error:
        pgbench: fatal: invalid weight specification: @2.sql

This action may be unfriendly, because the char '@' is a valid character on 
Linux
and Windows.

I have created a patch to modify this action. The patch is attached.

This patch changes it to first check if the file "a...@2.sql" exists, and if it doesn't, only then it tries to interpret it as a weight, as filename "a" and weight "2.sql". That stilll doesn't fix the underlying ambiguity, though. If you have a file called "script" and "script@1", this makes it impossible to specify "script" with weight 1, because "-f script@1" will now always open the file "script@1".

I think we should just leave this as it is. The user can simply rename the file.

Or maybe one change would be worthwhile here: First check if the part after the @ contains only digits. If doesn't, then assume it's part of the filename rather than a weight. That would fix this for cases like "f...@1.sql", although not for "foo@1".

- Heikki


Reply via email to