El servidor de PostgreSQL devuelve una cadena de estado de comando, como INSERT 149592 1, por cada comando que recibe. Esto es bastante simple cuando no hay reglas involucradas, pero ¿qué sucede cuando la consulta es reescrita por reglas?
Las reglas afectan al estado del comando de la siguiente manera:
Si no hay una regla INSTEAD incondicional para la consulta, entonces se ejecutará la consulta originalmente dada, y su estado de comando se devolverá como de costumbre. (Pero ten en cuenta que si hubiera alguna regla INSTEAD condicional, se habrá añadido la negación de sus condiciones a la consulta original. Esto podría reducir el número de filas que procesa, y si es así, el estado reportado se verá afectado).
Si hay alguna regla INSTEAD incondicional para la consulta, entonces la consulta original no se ejecutará en absoluto. En este caso, el servidor devolverá el estado del comando para la última consulta que fue insertada por una regla INSTEAD (condicional o incondicional) y que es del mismo tipo de comando (INSERT, UPDATE o DELETE) que la consulta original. Si ninguna consulta que cumpla con esos requisitos es añadida por alguna regla, entonces el estado del comando devuelto muestra el tipo de consulta original y ceros en los campos de conteo de filas y OID.
El programador puede asegurarse de que la regla INSTEAD deseada sea la que establezca el estado del comando en el segundo caso, dándole el nombre de regla alfabéticamente último entre las reglas activas, para que se aplique en último lugar.