Обсуждение: BUG #13841: Unable to set autocommit in psql
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.
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
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.
"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
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
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