O servidor PostgreSQL retorna uma cadeia de caracteres contendo o status do comando, como INSERT 149592 1, para cada comando recebido. Isto é bem simples quando não há regras envolvidas, mas o que acontece quando o comando é reescrito pelas regras?
As regras afetam o status do comando da seguinte maneira:
Se não houver uma regra INSTEAD incondicional, então o comando original fornecido é executado, e o status deste comando é retornado da forma usual (mas deve ser observado que havendo regras INSTEAD condicionais, teria sido adicionado ao comando original a negação de suas qualificações. Isto pode reduzir o número de linhas processadas e, se acontecer, o status relatado é afetado).
Se existir alguma regra INSTEAD incondicional, então o comando original não será executado. Neste caso, o servidor retorna o status do último comando inserido por uma regra INSTEAD (condicional ou incondicional), que é do mesmo tipo (INSERT, UPDATE ou DELETE) do comando original. Se não for adicionado um comando com estas características por alguma regra, então o status retornado mostra o tipo do comando original, e zero para os campos contador de linhas e OID.
(Este sistema foi estabelecido no PostgreSQL 7.3. Nas versões anteriores a esta o status do comando pode mostrar resultados diferentes quando existe uma regra.)
No segundo caso, o programador pode garantir que uma determinada regra INSTEAD desejada será a que vai definir o status do comando, dando a esta regra o último nome de regra na ordem alfabética entre as regras ativas, para que seja aplicada por último.