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

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Passing arrays to stored procedures


  • From: William Garrison <postgres(at)mobydisk(dot)com>
  • To: pgsql-general(at)postgresql(dot)org
  • Subject: Passing arrays to stored procedures
  • Date: Fri, 20 Apr 2007 19:33:41 -0400
  • Message-id: <46294DD5(dot)40905(at)mobydisk(dot)com>

I have a stored procedure that takes a list of IDs and uses the ANY operator:

CREATE OR REPLACE FUNCTION CalculateTotals(
	customerList bytea[],
	out total bigint,
	out most_recent_login_date date)
AS $$
BEGIN
	SELECT
		SUM(totalsize), MAX(last_login)
	INTO
		$2,$3
	FROM
		customer
	WHERE
		customerid = ANY($1);
END;
$$ LANGUAGE 'plpgsql' STABLE;


I'm using npgsql and C#, and I've realized it doesn't support passing arrays. Barring things like updating npgsql, what form of hackiness would work best here?

The customerIDs are GUIDs represented as 16-byte arrays. I can pass them as encoded strings separated by commas or some such silliness. But I don't see a nice clean split() function that returns me an array. :-(

I'm trying to find some way to pass a postgres array constructor syntax and have that evaluated, like ARRAY['binary':bytea,...,...] or {...,...,...} something like that.

Does anyone have any suggestions?



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group