On 10/04/2018 12:26 PM, Daniele Varrazzo wrote:
On Thu, Oct 4, 2018 at 6:35 AM Akshay Joshi
<akshay.jo...@enterprisedb.com <mailto:akshay.jo...@enterprisedb.com>>
wrote:
Hello
As per documentation http://initd.org/psycopg/docs/advanced.html
<http://initd.org/psycopg/docs/advanced.html> Copy commands are not
supported in asynchronous mode, but this will be probably
implemented in a future release. In pgAdmin4 (open source) we have
used async connection to run the SQL query on PostgreSQL database
and uses poll() function to poll the results. When user runs any
*COPY *command application hangs at poll() function.
If copy command not supported then at least it should not hang the
application. poll() function should return the proper error message.
Can you please provide that fix until support for copy command won't
come.
Uhm, I see:
In [2]: cnn = psycopg2.connect("")
In [3]: cur = cnn.cursor()
In [4]: cur.execute("copy (select 1 as x) to stdout")
---------------------------------------------------------------------------
ProgrammingError Traceback (most recent
call last)
<ipython-input-4-62e3af3d121e> in <module>()
----> 1 cur.execute("copy (select 1 as x) to stdout")
ProgrammingError: can't execute COPY TO: use the copy_to() method
instead
but:
In [6]: cnn = psycopg2.connect("", async=True)
In [7]: cnn.poll()
Out[7]: 2
In [8]: cnn.poll()
Out[8]: 1
In [9]: cnn.poll()
Out[9]: 0
In [12]: cur.execute("copy (select 1 as x) to stdout")
In [14]: cnn.poll()
^C -- hung
So yes, I'll take a look if there is a way to detect we get in this
state. But I'm not sure it's possible, because we might not have
received a result yet that tells we are in a state not allowed (in a COPY).
Observation: maybe EnterpriseDB has resources enough to help us
debugging and fixing this issue, or maybe even implement async copy?
Also, let me add that if the only way to detect the situation is by
analyzing the query, we'll never do that.
Also, IMHO, it is perfectly fine that a sequence of operations that is
documented as "not working" hangs - it is not something you can do by
error: you're ignoring the documentation.
federico
--
Federico Di Gregorio federico.digrego...@dndg.it
DNDG srl http://dndg.it
I filosofi son come i sociologi: il mondo non lo capiscono. -- A.R.M.