BUG #13841: Unable to set autocommit in psql

Started by rob stoneover 10 years ago6 messagesbugs
Jump to latest
#1rob stone
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.

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

#2Guillaume Lelarge
guillaume@lelarge.info
In reply to: rob stone (#1)
Re: BUG #13841: Unable to set autocommit in psql

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

#3David G. Johnston
david.g.johnston@gmail.com
In reply to: Guillaume Lelarge (#2)
Re: BUG #13841: Unable to set autocommit in psql

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:

timemanager=> 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

​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. 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.​

David J.

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: David G. Johnston (#3)
Re: BUG #13841: Unable to set autocommit in psql

"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

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

#5rob stone
floriparob@gmail.com
In reply to: Tom Lane (#4)
Re: BUG #13841: Unable to set autocommit in psql

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

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

#6Guillaume Lelarge
guillaume@lelarge.info
In reply to: rob stone (#5)
Re: BUG #13841: Unable to set autocommit in psql

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