Re: pgbench failed when -f option contains a char '@' - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: pgbench failed when -f option contains a char '@'
Date
Msg-id a1237800-4983-c7ca-13db-35c7e9bc1c2c@iki.fi
Whole thread Raw
In response to pgbench failed when -f option contains a char '@'  ("Wang, Shenhao" <wangsh.fnst@cn.fujitsu.com>)
Responses Re: pgbench failed when -f option contains a char '@'
List pgsql-hackers
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 
"foo@1.sql", although not for "foo@1".

- Heikki



pgsql-hackers by date:

Previous
From: "osumi.takamichi@fujitsu.com"
Date:
Subject: how to use valgrind for TAP tests
Next
From: Heikki Linnakangas
Date:
Subject: Re: Incorrect allocation handling for cryptohash functions with OpenSSL