Re: Schema variables - new implementation for Postgres 15 - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: Schema variables - new implementation for Postgres 15
Date
Msg-id CAFj8pRCLqQa6z2nqfPwUZJCc3zcHBanzZmDt8y0pOFLs3_9oGw@mail.gmail.com
Whole thread Raw
In response to Re: Schema variables - new implementation for Postgres 15  (Erik Rijkers <er@xs4all.nl>)
List pgsql-hackers


st 24. 8. 2022 v 10:04 odesílatel Erik Rijkers <er@xs4all.nl> napsal:
Op 24-08-2022 om 08:37 schreef Pavel Stehule:
>>
>
> I fixed these.
>

 > [v20220824-1-*.patch]

Hi Pavel,

I noticed just now that variable assignment (i.e., LET) unexpectedly
(for me anyway) cast the type of the input value. Surely that's wrong?
The documentation says clearly enough:

'The result must be of the same data type as the session variable.'


Example:

create variable x integer;
let x=1.5;
select x, pg_typeof(x);
  x | pg_typeof
---+-----------
  2 | integer
(1 row)


Is this correct?

If such casts (there are several) are intended then the text of the
documentation should be changed.


I changed this

 @@ -58,8 +58,9 @@ LET <replaceable class="parameter">session_variable</replaceable> = DEFAULT
     <term><literal>sql_expression</literal></term>
     <listitem>
      <para>
-      An SQL expression, in parentheses. The result must be of the same data type as the session
-      variable.
+      An SQL expression (can be subquery in parenthesis). The result must
+      be of castable to the same data type as the session variable (in
+      implicit or assignment context).
      </para>
     </listitem>
    </varlistentry>

is it ok?

Regards

Pavel


Thanks,

Erik

pgsql-hackers by date:

Previous
From: Nathan Bossart
Date:
Subject: Re: [PATCH] Optimize json_lex_string by batching character copying
Next
From: Jeff Davis
Date:
Subject: Re: New strategies for freezing, advancing relfrozenxid early