Re: functions with side effect

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Torsten Förtsch <tfoertsch123(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-general(at)postgresql(dot)org>
Subject: Re: functions with side effect
Date: 2018-07-19 16:35:54
Message-ID: ebb85d10-94a2-505a-8e8e-d4bf2f59e5f8@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 07/19/2018 07:15 AM, Torsten Förtsch wrote:
> Hi,
>
> assuming
>
> SELECT nextval('s'), currval('s');
>
> or
>
> SELECT * FROM (VALUES (nextval('s'), currval('s'))) t;
>
> is there any guarantee that the 2 output values are the same?

Assuming you are only working in single session:

https://www.postgresql.org/docs/10/static/functions-sequence.html

"currval

Return the value most recently obtained by nextval for this
sequence in the current session. (An error is reported if nextval has
never been called for this sequence in this session.) Because this is
returning a session-local value, it gives a predictable answer whether
or not other sessions have executed nextval since the current session did."

>
> Thanks,
> Torsten

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Torsten Förtsch 2018-07-19 16:43:48 Re: functions with side effect
Previous Message Alessandro Aste 2018-07-19 16:07:16 Re: cache lookup failed for attribute 1 of relation XXXXXX