Re: Does PLPythonU support COPY table FROM string? - Mailing list pgsql-general

From Dominik Czarnota
Subject Re: Does PLPythonU support COPY table FROM string?
Date
Msg-id CABEVAa3dcWdwJsqaxSkFnEr9sfGe3rVxBNySC00viesNE0=EKg@mail.gmail.com
Whole thread Raw
In response to Re: Does PLPythonU support COPY table FROM string?  (Adrian Klaver <adrian.klaver@aklaver.com>)
List pgsql-general
I am launching it from postgres plpythonu function (postgres version: PostgreSQL 9.4.4 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit).

The error can be reproduced using the SQL below:

DROP TABLE IF EXISTS test;
CREATE TABLE test(field1 integer, field2 integer);

CREATE OR REPLACE FUNCTION example() RETURNS VOID AS
$$
    plpy.execute("COPY test (field1, field2) FROM STDIN DELIMITER',';\n1,2\n\\.")
$$ LANGUAGE 'plpythonu';

select example();


Maybe there is a way to get into the underlying psycopg2 driver and call some method that would do COPY FROM, but I can't find anything related to it in the docs.

2015-08-28 17:15 GMT+02:00 Adrian Klaver <adrian.klaver@aklaver.com>:
On 08/28/2015 05:58 AM, Dominik Czarnota wrote:
Hello,

Is there any possibility to make COPY from list of records in PLPythonU?

I've tried to simply call `plpy.execute(query)` with such query:

COPY table (field1, field2, field3) FROM STDIN DELIMITER',';
val1,val2,val3
\.

But it fails with not so explicit error:
ProgrammingError: (psycopg2.ProgrammingError) spiexceptions.SyntaxError:
syntax error at or near "val1"
LINE 2: val1,val2,val3
         ^

The above is a psycopg2 error, so where are you running this and how?



However the same thing works in psql.

After some googling I found out that it doesn't work inside sql
functions because there is no STDIN (
http://www.postgresql.org/message-id/000501c5acc9$83747aa0$0501a8c0@plexus
).


I've got working solution which was saving tmp file and then calling
`COPY table FROM 'path'` but that's not cool.

Did I miss something in plpythonu api? If not, where can I post "feature
request" for that?
Or can you point me place where I could dig into the code and implement it?


----
Dominik Czarnota


--
Adrian Klaver
adrian.klaver@aklaver.com

pgsql-general by date:

Previous
From: Jeff Janes
Date:
Subject: Re: how to investigate GIN fast updates and cleanup cycles?
Next
From: Dominik Czarnota
Date:
Subject: Re: Does PLPythonU support COPY table FROM string?