From: | Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp> |
---|---|
To: | Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com> |
Cc: | Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Documentation fix on pgbench \aset command |
Date: | 2025-06-27 01:36:43 |
Message-ID: | 20250627103643.d6e8b91de79c1a66d4c96810@sraoss.co.jp |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, 27 Jun 2025 01:45:16 +0900
Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com> wrote:
>
>
> On 2025/06/27 1:31, Yugo Nagata wrote:
> > On Fri, 27 Jun 2025 01:05:47 +0900
> > Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com> wrote:
> >
> >>
> >>
> >> On 2025/06/26 18:01, Yugo Nagata wrote:
> >>> Hi,
> >>>
> >>> The current documentation of pgbench’s \aset command states:
> >>>
> >>> “If a query returns no row, no assignment is made and the variable
> >>> can be tested for existence to detect this.”
> >>>
> >>> However, this is inaccurate, since variable existence check (like \if :{?var})
> >>> is not yet supported, although such a feature was proposed in [1] and discussed
> >>> again in [2], where \aset itself was introduced.
> >>
> >> Right.
> >>
> >>
> >>> Therefore, I’ve attached a patch to remove this part from the documentation.
> >>
> >> Or would it be worth documenting an alternative way to detect when no rows are
> >> returned? For example:
> >>
> >> If a query returns no rows, no variables are assigned. You can detect
> >> this by setting an initial value to the variable before running the query
> >> and checking whether it changes.
> >
> > That's what I thought as well, but I didn’t do it because we can’t distinguish it
> > from the case where the query returns the same value as the initial one.
>
> Could we use a value that the query is guaranteed not to return as the initial value?
> For example, in SELECT id AS myid FROM test \aset, if the id column is of type integer,
> we could initialize myid to FALSE.
This will work if we assume that the query never returns the initial value.
I've attached a updated patch that fix the documentation as below:
If a query returns no rows, no assignment is made. You can detect
this by initializing the variable beforehand with a value that the query is
assumed never to return, and then checking whether it changes.
Regards,
Yugo Nagata
--
Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp>
Attachment | Content-Type | Size |
---|---|---|
v2_fix_doc_pgbench_aset.ptach | application/octet-stream | 1.1 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | jian he | 2025-06-27 02:09:28 | Re: SQL:2023 JSON simplified accessor support |
Previous Message | Michael Paquier | 2025-06-27 01:34:53 | Re: pg_logical_slot_get_changes waits continously for a partial WAL record spanning across 2 pages |