út 8. 11. 2022 v 5:21 odesílatel David G. Johnston <
david.g.johns...@gmail.com> napsal:

> On Mon, Nov 7, 2022 at 9:02 PM Pavel Stehule <pavel.steh...@gmail.com>
> wrote:
>
>>
>>
>> út 8. 11. 2022 v 3:47 odesílatel Corey Huinker <corey.huin...@gmail.com>
>> napsal:
>>
>>> On Mon, Nov 7, 2022 at 4:12 PM Tom Lane <t...@sss.pgh.pa.us> wrote:
>>>
>>>> Corey Huinker <corey.huin...@gmail.com> writes:
>>>> > I thought about basically reserving the \$[0-9]+ space as bind
>>>> variables,
>>>> > but it is possible, though unlikely, that users have been naming their
>>>> > variables like that.
>>>>
>>>> Don't we already reserve that syntax as Params?  Not sure whether there
>>>> would be any conflicts versus Params, but these are definitely not legal
>>>> as SQL identifiers.
>>>>
>>>>                         regards, tom lane
>>>>
>>>
>>> I think Pavel was hinting at something like:
>>>
>>> \set $1 foo
>>> \set $2 123
>>> UPDATE mytable SET value = $1 WHERE id = $2;
>>>
>>
>> no, I just proposed special syntax for variable usage like bind variable
>>
>> like
>>
>> \set var Ahoj
>>
>> SELECT $var;
>>
>
> Why not extend psql conventions for variable specification?
>
> SELECT :$var$;
>
> Thus:
> :var => Ahoj
> :'var' => 'Ahoj'
> :"var" => "Ahoj"
> :$var$ => $n  (n => <Ahoj>)
>
> The downside is it looks like dollar-quoting but isn't actually causing
> <$Ahoj$> to be produced.  Instead psql would have to substitute $n at that
> location and internally remember that for this query $1 is the contents of
> var.
>
> I would keep the \gp meta-command to force extended mode regardless of
> whether the query itself requires it.
>
> A pset variable to control the default seems reasonable as well.  The
> implication would be that if you set that pset variable there is no way to
> have individual commands use simple query mode directly.
>

:$var$ looks little bit scary, and there can be risk of collision with
custom string separator

but :$var can be ok?

There is not necessity of showing symmetry






>
> David J.
>

Reply via email to