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?

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to