Postgres Insertar en Ver regla con cláusula de devolución

Estoy intentando permitir insertar declaraciones con una cláusula de retorno en una vista en Postgres v9.4, pero estoy luchando con la sintaxis. Así es como quiero llamar a la declaración de inserción:

CREATE VIEW MyView AS SELECT a.*, b.someCol1
    FROM tableA a JOIN tableB b USING(aPrimaryKey);
INSERT INTO MyView (time, someCol) VALUES (someTime, someValue) RETURNING *;
INSERT INTO MyView (someCol) VALUES (someValue) RETURNING *;

Tenga en cuenta que el tiempo predeterminado es AHORA (). Esto es lo que tengo hasta ahora:

CREATE RULE MyRuleName AS ON INSERT TO MyView DO INSTEAD (
    INSERT INTO tableA (time) VALUES COALESCE(NEW.time, NOW());
    INSERT INTO tableB (aPrimaryKey, someCol)
        VALUES (CURRVAL('tableA_aPrimaryKey_seq'), NEW.someValue);
);

Lo anterior funciona para insertar el valor, pero estoy luchando para tratar de descubrir cómo agregar la declaración de retorno. He intentado lo siguiente sin éxito:

CREATE RULE MyRuleName AS ON INSERT TO MyView DO INSTEAD (
    INSERT INTO tableA (time) VALUES COALESCE(NEW.time, NOW())
        RETURNING *, NEW.someValue;
    INSERT INTO tableB (aPrimaryKey, someCol)
        VALUES (CURRVAL('tableA_aPrimaryKey_seq'), NEW.someValue);
);
-- ERROR:  invalid reference to FROM-clause entry for table "new"

CREATE RULE MyRuleName AS ON INSERT TO MyView DO INSTEAD (
    WITH a AS (INSERT INTO tableA (time)
        VALUES COALESCE(NEW.time, NOW()) RETURNING *)
    INSERT INTO tableB (aPrimaryKey, someCol)
        SELECT aPrimaryKey, NEW.someValue FROM a RETURNING *;
);
-- ERROR:  cannot refer to NEW within WITH query

Argh! ¿Alguien sabe de una manera de agregar una declaración de retorno que obtenga la clave principal (SERIAL) y la hora (TIMESTAMP WITH TIME ZONE) agregadas a la base de datos en la primera inserción, junto con el valor de someCol en la segunda inserción? ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta