Re[2]: [BUGS] BUG #13889: psql doesn't exequte correct script

From: Vladimir Bilyak <v_bilyak(at)mail(dot)ru>
To: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org <pgsql-bugs(at)postgresql(dot)org>
Subject: Re[2]: [BUGS] BUG #13889: psql doesn't exequte correct script
Date: 2016-01-26 06:35:22
Message-ID: 1453790122.359108532@f315.i.mail.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi, 

thank you for promt reply. Actually we didn't use -c option. We used command line as follows:

psql.exe --username=postgres --file=<path to problem script> --log-file=<path to log file> --host=localhost --output=<path to output log>

Is this related to the issue "all statements executed are executed in one transaction" as well? If so, please point me solution to execute script with DROP DATABASE and CREATE DATABASE statements via psql.

--
Sincerely,
Vladimir Bilyak

>Понедельник, 25 января 2016, 21:47 +01:00 от Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>:
>
>Hi
>
>2016-01-25 18:09 GMT+01:00 < v_bilyak(at)mail(dot)ru > :
>>The following bug has been logged on the website:
>>
>>Bug reference:      13889
>>Logged by:          Vladimir
>>Email address:      v_bilyak(at)mail(dot)ru
>>PostgreSQL version: 9.5.0
>>Operating system:   Windows 10
>>Description:
>>
>>Hello. I faced the following issue: psql.exe does not execute the following
>>script
>>
>>DROP DATABASE "demo_crash";
>>CREATE DATABASE "demo_crash";
>>
>>aborting with error:
>>
>>CREATE DATABASE cannot be executed from a function or multi-command string
>>
>>I searched in Google for solution but found only suggestion to rebuild
>>Postgres with some fix in source code that is not acceptable in my case. Do
>>you have another suggestion how to resolve it? Thank you in advance for any
>>help!
>
>It isn't bug. You probably use "-c" option. All statements executed by this option are executed in one transaction. Some statements like CREATE DATABASE or DROP DATABASE cannot be called from transaction.
>
>[pavel(at)dhcppc2 ~]$ psql -c "DROP DATABASE demo_crash; CREATE DATABASE demo_crash" postgres
>Debug assertions "off"
>ERROR:  25001: DROP DATABASE cannot be executed from a function or multi-command string
>LOCATION:  PreventTransactionChain, xact.c:3158
>Time: 0.488 ms
>
>The solution is in next release 9.6, that allows multiple -c options
>
>[pavel(at)dhcppc2 ~]$ psql -c "DROP DATABASE demo_crash" -c "CREATE DATABASE demo_crash" postgres
>Debug assertions "off"
>ERROR:  3D000: database "demo_crash" does not exist
>LOCATION:  dropdb, dbcommands.c:797
>Time: 0.399 ms
>CREATE DATABASE
>Time: 711.694 ms
>
>For current release use echo and pipe
>
>[pavel(at)dhcppc2 ~]$ echo "DROP DATABASE demo_crash; CREATE DATABASE demo_crash" | psql postgres
>Debug assertions "off"
>DROP DATABASE
>Time: 224.953 ms
>CREATE DATABASE
>Time: 742.695 ms
>
>I have not windows, but it should work
>
>Regards
>
>Pavel

>>Sincerely,
>>Vladimir
>>
>>
>>--
>>Sent via pgsql-bugs mailing list ( pgsql-bugs(at)postgresql(dot)org )
>>To make changes to your subscription:
>>http://www.postgresql.org/mailpref/pgsql-bugs
>

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Vladimir Kunschikov 2016-01-26 07:21:27 Re: BUG #13888: pg_dump write error
Previous Message Thomas Munro 2016-01-25 23:44:50 Re: BUG #13440: unaccent does not remove all diacritics