psql command line variables are unknown when -c SQL statement are executed

Started by Pavel Stehuleover 16 years ago5 messagesbugs
Jump to latest
#1Pavel Stehule
pavel.stehule@gmail.com

wrong:

pavel@nemesis ~]$ psql postgres -v x=10 -c "select :x"
ERROR: syntax error at or near ":"
LINE 1: select :x
^

good (workaround):
[pavel@nemesis ~]$ echo 'select :x' | psql postgres -v x=10
?column?
──────────
10
(1 row)

psql have to have process external variables first and then execute query.

Regards
Pavel Stehule

#2Peter Eisentraut
peter_e@gmx.net
In reply to: Pavel Stehule (#1)
Re: psql command line variables are unknown when -c SQL statement are executed

On mån, 2009-11-16 at 10:19 +0100, Pavel Stehule wrote:

wrong:

pavel@nemesis ~]$ psql postgres -v x=10 -c "select :x"
ERROR: syntax error at or near ":"
LINE 1: select :x
^

This is documented in the psql man page.

#3Pavel Stehule
pavel.stehule@gmail.com
In reply to: Peter Eisentraut (#2)
Re: psql command line variables are unknown when -c SQL statement are executed

2009/11/16 Peter Eisentraut <peter_e@gmx.net>:

On mån, 2009-11-16 at 10:19 +0100, Pavel Stehule wrote:

wrong:

pavel@nemesis ~]$ psql postgres -v x=10 -c "select :x"
ERROR:  syntax error at or near ":"
LINE 1: select :x
               ^

This is documented in the psql man page.

I don't see it, Peter?

Is it some reason for it? I don't understand, why this order is correct:

execute statement
process external variables
finish

Pavel

Show quoted text
#4Peter Eisentraut
peter_e@gmx.net
In reply to: Pavel Stehule (#3)
Re: psql command line variables are unknown when -c SQL statement are executed

On mån, 2009-11-16 at 12:28 +0100, Pavel Stehule wrote:

2009/11/16 Peter Eisentraut <peter_e@gmx.net>:

On mån, 2009-11-16 at 10:19 +0100, Pavel Stehule wrote:

wrong:

pavel@nemesis ~]$ psql postgres -v x=10 -c "select :x"
ERROR: syntax error at or near ":"
LINE 1: select :x
^

This is documented in the psql man page.

I don't see it, Peter?

-c command

--command command
Specifies that psql is to execute one command string,
command, and then exit. This is useful in shell scripts.

command must be either a command string that is
completely parsable by the server (i.e., it contains no psql specific
features), or a single backslash command. Thus you cannot
mix SQL and psql meta-commands with this option.

Is it some reason for it? I don't understand, why this order is correct:

execute statement
process external variables
finish

Well, -c works a bit different so that it is possible at all to send a
command to the server without any psql processing in the way. It's a
poor excuse, from a user's point of view, but that's historically why
it's been kept that way.

#5Pavel Stehule
pavel.stehule@gmail.com
In reply to: Peter Eisentraut (#4)
Re: psql command line variables are unknown when -c SQL statement are executed

2009/11/18 Peter Eisentraut <peter_e@gmx.net>:

On mån, 2009-11-16 at 12:28 +0100, Pavel Stehule wrote:

2009/11/16 Peter Eisentraut <peter_e@gmx.net>:

On mån, 2009-11-16 at 10:19 +0100, Pavel Stehule wrote:

wrong:

pavel@nemesis ~]$ psql postgres -v x=10 -c "select :x"
ERROR:  syntax error at or near ":"
LINE 1: select :x
               ^

This is documented in the psql man page.

I don't see it, Peter?

      -c command

      --command command
             Specifies that psql is to execute one command string,
command, and then exit. This is useful in shell scripts.

             command  must  be  either a command string that is
completely parsable by the server (i.e., it contains no psql specific
features), or a single backslash command. Thus you cannot
             mix SQL and psql meta-commands with this option.

Is it some reason for it? I don't understand, why this order is correct:

execute statement
process external variables
finish

Well, -c works a bit different so that it is possible at all to send a
command to the server without any psql processing in the way.  It's a
poor excuse, from a user's point of view, but that's historically why
it's been kept that way.

ok - thank you. I could to live with it.

Regards
Pavel Stehule

Show quoted text