Passing arrays to stored procedures - Mailing list pgsql-general

From William Garrison
Subject Passing arrays to stored procedures
Date
Msg-id 46294DD5.40905@mobydisk.com
Whole thread Raw
Responses Re: Passing arrays to stored procedures  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
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?

pgsql-general by date:

Previous
From: Jeff Davis
Date:
Subject: Re: unique constraint on 2 columns
Next
From: Tom Lane
Date:
Subject: Re: Passing arrays to stored procedures