Skip site navigation (1) Skip section navigation (2)

Patch to add support for text/int arrays for plpythonu

From: "Valtonen, Hannu" <hannu(dot)valtonen(at)hut(dot)fi>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Patch to add support for text/int arrays for plpythonu
Date: 2009-04-26 10:00:54
Message-ID: 49F430D6.4050307@hut.fi (view raw or flat)
Thread:
Lists: pgsql-hackers
Hi,

Attached is a small patch for adding support for INT[] and TEXT[] to 
plpythonu.
There are also some small tests for this copypasted to the end of the mail.

I'd like to get this into CVS but as it's probably a bit late for 8.4 I 
wouldn't mind it going into the first commitfest for 8.5.

- Hannu


---SELECT test_int_array[3] FROM return_int_array(ARRAY[1,2,3]) AS 
test_int_array;
CREATE OR REPLACE FUNCTION return_int_array(int_array INT[])
RETURNS int[]
AS $$
plpy.info("Type: %s %r" % (type(int_array), int_array))
return int_array
$$ LANGUAGE plpythonu;

---SELECT jee[3] FROM return_text_array(ARRAY['test1','test2','test3']) 
AS test_text_array;
CREATE OR REPLACE FUNCTION return_text_array(text_array TEXT[])
RETURNS TEXT[]
AS $$
plpy.info("Type: %s %r" % (type(text_array), text_array))
return text_array
$$ LANGUAGE plpythonu;

--CREATE TABLE test_table (id SERIAL PRIMARY KEY, bar INT[], bar2 TEXT[]);
--SELECT * FROM test_text_array_plan(ARRAY['test1', 'test2']);
CREATE OR REPLACE FUNCTION test_text_array_plan(test_array TEXT[])
RETURNS void
AS $$
plan = plpy.prepare("INSERT INTO test_table (bar) VALUES ($1)", ["TEXT[]"])
results = plpy.execute(plan, [test_array])
$$ LANGUAGE plpythonu;

--SELECT * FROM test_int_array_plan(ARRAY[1,2,3,4,5,6,7,8,9,10]);
CREATE OR REPLACE FUNCTION test_int_array_plan(test_array INT[])
RETURNS void
AS $$
plan = plpy.prepare("INSERT INTO test_table (bar2) VALUES ($1)", ["INT[]"])
results = plpy.execute(plan, [test_array])
$$ LANGUAGE plpythonu;


Attachment: plpythonarray.diff
Description: text/plain (6.0 KB)

Responses

pgsql-hackers by date

Next:From: Sam HallidayDate: 2009-04-26 10:54:55
Subject: Re: RFE: Transparent encryption on all fields
Previous:From: Magnus HaganderDate: 2009-04-26 06:51:59
Subject: Re: Randomly placed definition of S_ISDIR() in psql/copy.c

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group