Re: pl/python composite type array as input parameter

From: Filipe Pina <filipe(dot)pina(at)impactzero(dot)pt>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: Postgresql General <pgsql-general(at)postgresql(dot)org>
Subject: Re: pl/python composite type array as input parameter
Date: 2015-06-01 14:41:47
Message-ID: 1433169707.3881.0@smtp.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thanks for the reply anyway, it's a pity though, it'd be useful..

Another bump I've found along the pl/python road: insert ROWTYPE in
table..
Maybe you have some hint on that? :)

So, in PLPGSQL I can:

DECLARE
my_var my_table;
BEGIN
my_var.col1 := 'asd';
INSERT INTO my_table VALUES(my_table.*);
END;

How would I do something like that in pl/python?

First, how to declare a ROW-TYPE variable, as they're all python
mappings?

my_var = { 'col1': 'asd' } enough? it'd would miss all the other
columns...

Second, how to insert it?

plpy.prepare and .execute say they don't support composite types, so I
cannot simply pass

pl = plpy.prepare('INSERT INTO core_customer VALUES ($1)', ['my_table'])

Any workarounds for this? (meaning I wouldn't have to specify any
columns in the insert statement)

Thanks

On Sex, Mai 29, 2015 at 2:00 , Peter Eisentraut <peter_e(at)gmx(dot)net> wrote:
> On 5/18/15 10:52 AM, Filipe Pina wrote:
>> But one of the functions I need to create needs to accept an array
>> of
>> records.
>
> PL/Python doesn't support that. Some more code needs to be written to
> support that. You did everything correctly. I don't know of a good
> workaround.
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rémi Cura 2015-06-01 16:09:38 Re: Python 3.2 XP64 and Numpy...
Previous Message Adrian Stern 2015-06-01 14:35:12 Database designpattern - product feature