Re: PL/pgSQL PERFORM with CTE

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: PL/pgSQL PERFORM with CTE
Дата
Msg-id CAFj8pRAzzNYxLE8hj3-UHzChu5CX_9fM_hdM=aObMDSs0N2Epw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: PL/pgSQL PERFORM with CTE  ("David E. Wheeler" <david@justatheory.com>)
Ответы Re: PL/pgSQL PERFORM with CTE
Список pgsql-hackers



2013/8/20 David E. Wheeler <david@justatheory.com>
On Aug 20, 2013, at 3:18 PM, Pavel Stehule <pavel.stehule@gmail.com> wrote:

> can you show some examples, please

This is not dissimilar to what I am actually doing:

    CREATE TABLE foo (id SERIAL PRIMARY KEY, name TEXT);

    CREATE OR REPLACE FUNCTION shipit (
        VARIADIC things TEXT[]
    ) RETURNS BOOL LANGUAGE plpgsql AS $$
    BEGIN
        WITH inserted AS (
            INSERT INTO foo (name)
            SELECT * FROM unnest(things)
            RETURNING id
        )
        PERFORM pg_notify(
            'inserted ids',
            ARRAY(SELECT * FROM inserted)::text
        );
        RETURN FOUND;
    END;
    $$;

Only I am using a dummy row variable instead of PERFORM, of course.

pg_notify returns void, so there are no necessary casting to void

so enhanced check - so all returned columns are void should be enough

Regards

Pavel
 

Best,

David


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Boszormenyi Zoltan
Дата:
Сообщение: Re: GSOC13 proposal - extend RETURNING syntax
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: Fix Windows socket error checking for MinGW