Обсуждение: BUG #13841: Unable to set autocommit in psql

Поиск
Список
Период
Сортировка

BUG #13841: Unable to set autocommit in psql

От
floriparob@gmail.com
Дата:
The following bug has been logged on the website:

Bug reference:      13841
Logged by:          ROBERT
Email address:      floriparob@gmail.com
PostgreSQL version: 9.5rc1
Operating system:   Debian stretch/sid
Description:

O/S

Linux roblaptop 4.3.0-1-amd64 #1 SMP Debian 4.3.3-2 (2015-12-17) x86_64
GNU/Linux


psql session

psql (9.5rc1)
Type "help" for help.

timemanager=> set autocommit off;
ERROR:  syntax error at or near "off"
LINE 1: set autocommit off;
                       ^
timemanager=> set autocommit 'off';
ERROR:  syntax error at or near "'off'"
LINE 1: set autocommit 'off';
                       ^
timemanager=> set autocommit to off;
ERROR:  unrecognized configuration parameter "autocommit"
timemanager=> SET AUTOCOMMIT TO OFF;
ERROR:  unrecognized configuration parameter "autocommit"
timemanager=>

Thought that I'd made a typo but entered as per doco.

Re: BUG #13841: Unable to set autocommit in psql

От
Guillaume Lelarge
Дата:
Hi,

2016-01-01 16:10 GMT+01:00 <floriparob@gmail.com>:

> The following bug has been logged on the website:
>
> Bug reference:      13841
> Logged by:          ROBERT
> Email address:      floriparob@gmail.com
> PostgreSQL version: 9.5rc1
> Operating system:   Debian stretch/sid
> Description:
>
> O/S
>
> Linux roblaptop 4.3.0-1-amd64 #1 SMP Debian 4.3.3-2 (2015-12-17) x86_64
> GNU/Linux
>
>
> psql session
>
> psql (9.5rc1)
> Type "help" for help.
>
> timemanager=> set autocommit off;
> ERROR:  syntax error at or near "off"
> LINE 1: set autocommit off;
>                        ^
> timemanager=> set autocommit 'off';
> ERROR:  syntax error at or near "'off'"
> LINE 1: set autocommit 'off';
>                        ^
> timemanager=> set autocommit to off;
> ERROR:  unrecognized configuration parameter "autocommit"
> timemanager=> SET AUTOCOMMIT TO OFF;
> ERROR:  unrecognized configuration parameter "autocommit"
> timemanager=>
>
> Thought that I'd made a typo but entered as per doco.
>
>
There's no autocommit GUC. You probably want to use the AUTOCOMMIT internal
variable of psql. In which case, you should do :

\set AUTOCOMMIT off

Definitely not a bug.


--
Guillaume.
  http://blog.guillaume.lelarge.info
  http://www.dalibo.com

Re: BUG #13841: Unable to set autocommit in psql

От
"David G. Johnston"
Дата:
On Fri, Jan 1, 2016 at 9:19 AM, Guillaume Lelarge <guillaume@lelarge.info>
wrote:

> Hi,
>
> 2016-01-01 16:10 GMT+01:00 <floriparob@gmail.com>:
>
>> The following bug has been logged on the website:
>>
>> Bug reference:      13841
>> Logged by:          ROBERT
>> Email address:      floriparob@gmail.com
>> PostgreSQL version: 9.5rc1
>> Operating system:   Debian stretch/sid
>> Description:
>>
>>> =E2=80=8B
>>>
>> timemanager=3D> set autocommit off;
>>
>>

> Thought that I'd made a typo but entered as per doco.
>>
>>
> There's no autocommit GUC. You probably want to use the AUTOCOMMIT
> internal variable of psql. In which case, you should do :
>
> \set AUTOCOMMIT off
>
> Definitely not a bug
>

=E2=80=8BThough when referencing the documentation in a report like this it=
 is
generally helpful to provide a link to said documentation so it at least
can be checked.  But indeed the behavior is client-side only and so it
makes no sense to try and control it via SQL - which is what the command
"SET" is from.=E2=80=8B

David J.

Re: BUG #13841: Unable to set autocommit in psql

От
Tom Lane
Дата:
"David G. Johnston" <david.g.johnston@gmail.com> writes:
>> 2016-01-01 16:10 GMT+01:00 <floriparob@gmail.com>:
>>> Thought that I'd made a typo but entered as per doco.

> ​Though when referencing the documentation in a report like this it is
> generally helpful to provide a link to said documentation so it at least
> can be checked.

Indeed.  "set autocommit to off" hasn't been supported since PG 7.3, more
than ten years ago.  So if there's still some documentation somewhere
recommending that, we really need to find and fix it.

            regards, tom lane

Re: BUG #13841: Unable to set autocommit in psql

От
rob stone
Дата:
On Fri, 2016-01-01 at 12:04 -0500, Tom Lane wrote:
> "David G. Johnston" <david.g.johnston@gmail.com> writes:
> > > 2016-01-01 16:10 GMT+01:00 <floriparob@gmail.com>:
> > > > Thought that I'd made a typo but entered as per doco.
>
> > Though when referencing the documentation in a report like this it
> > is
> > generally helpful to provide a link to said documentation so it at
> > least
> > can be checked.
>
> Indeed.  "set autocommit to off" hasn't been supported since PG 7.3,
> more
> than ten years ago.  So if there's still some documentation somewhere
> recommending that, we really need to find and fix it.
>
>             regards, tom lane


Thanks for all the replies.

If you search for "autocommit" in the 9.5rc1 doco the first entry
displayed takes you to:-

http://www.postgresql.org/docs/9.5/static/ecpg-sql-set-autocommit.html

and as "set" is bog standard SQL syntax I thought you could use it
within a psql session.

However, as David pointed out you need to use \set.
Using \set works fine.

After perusing the psql doco there is mention there of using a .psqlrc
file to hold psql session variables but I have yet to find any doco
describing the syntax of this file.
Nor can I find a file named psqlrc, as both are mentioned in the psql
doco.

So, maybe initdb needs to create a dummy psqlrc file which users can
alter for global useage or copy over to their $HOME directory and alter
it for personal use.

My apologies for reporting this as a "bug" and wasting your time.

Regards,
Robert

Re: BUG #13841: Unable to set autocommit in psql

От
Guillaume Lelarge
Дата:
2016-01-02 18:56 GMT+01:00 rob stone <floriparob@gmail.com>:

> On Fri, 2016-01-01 at 12:04 -0500, Tom Lane wrote:
> > "David G. Johnston" <david.g.johnston@gmail.com> writes:
> > > > 2016-01-01 16:10 GMT+01:00 <floriparob@gmail.com>:
> > > > > Thought that I'd made a typo but entered as per doco.
> >
> > > Though when referencing the documentation in a report like this it
> > > is
> > > generally helpful to provide a link to said documentation so it at
> > > least
> > > can be checked.
> >
> > Indeed.  "set autocommit to off" hasn't been supported since PG 7.3,
> > more
> > than ten years ago.  So if there's still some documentation somewhere
> > recommending that, we really need to find and fix it.
> >
> >                       regards, tom lane
>
>
> Thanks for all the replies.
>
> If you search for "autocommit" in the 9.5rc1 doco the first entry
> displayed takes you to:-
>
> http://www.postgresql.org/docs/9.5/static/ecpg-sql-set-autocommit.html
>
> and as "set" is bog standard SQL syntax I thought you could use it
> within a psql session.
>
>
Well, the page clearly says that "SET AUTOCOMMIT is an extension of
PostgreSQL ECPG.".


> However, as David pointed out you need to use \set.
> Using \set works fine.
>
>
Good to hear.


> After perusing the psql doco there is mention there of using a .psqlrc
> file to hold psql session variables but I have yet to find any doco
> describing the syntax of this file.
> Nor can I find a file named psqlrc, as both are mentioned in the psql
> doco.
>
>
The .psqlrc file can contain any meta commands (\something) or SQL commands.


> So, maybe initdb needs to create a dummy psqlrc file which users can
> alter for global useage or copy over to their $HOME directory and alter
> it for personal use.
>
>
I don't think so. And there's already one in the "share" directory (search
for a psqlrc.sample file).


--
Guillaume.
  http://blog.guillaume.lelarge.info
  http://www.dalibo.com