O servidor PostgreSQL retorna uma cadeia
de caracteres de status do comando, como
INSERT 149592 1, para cada comando que recebe.
Isto é bastante simples quando não há regras envolvidas, mas o que
acontece quando a consulta é reescrita por regras?
As regras afetam o status do comando da seguinte forma:
Se não houver uma regra INSTEAD incondicional
para a consulta, será executada a consulta fornecida originalmente,
e seu status do comando será retornado como de costume.
(Mas note-se que se houver qualquer regra
INSTEAD condicional, a negação de suas
qualificações terá sido adicionada à consulta original.
Isto pode reduzir o número de linhas processadas e, neste caso,
o status relatado será afetado.)
Se houver alguma regra INSTEAD incondicional
para a consulta, a consulta original não será executada.
Neste caso, o servidor retornará o status do comando da última
consulta que foi inserida por uma regra INSTEAD
(condicional ou incondicional), sendo do mesmo tipo do comando
(INSERT, UPDATE, ou
DELETE) da consulta original.
Se não for incluída nenhuma consulta que atenda a estes requisitos
por qualquer regra, o status do comando retornado mostrará o tipo
da consulta original, e zeros para os campos de contagem de linhas
e OID.
O programador pode garantir que qualquer regra
INSTEAD desejada seja aquela que define o status
do comando no segundo caso, fornecendo a mesma o último nome de regra
em ordem alfabética entre as regras ativas, para que ela seja
aplicada por último.