Le serveur PostgreSQL renvoie une chaîne de
statut de commande, comme insert 149592 1
, pour chaque commande
qu'il reçoit. C'est assez simple lorsqu'il n'y a pas de règles impliquées.
Mais qu'arrive-t'il lorsque la requête est réécrite par des règles ?
Les règles affectent le statut de la commande de cette façon :
S'il n'y a pas de règle instead
inconditionnelle pour la
requête, alors la requête donnée originellement sera exécutée et son
statut de commande sera renvoyé comme d'habitude. (Mais notez que s'il y
avait des règles instead
conditionnelles, la négation de leur
qualifications sera ajouté à la requête initiale. Ceci pourrait réduire
le nombre de lignes qu'il traite et, si c'est le cas, le statut rapporté
en sera affecté.)
S'il y a des règles instead
inconditionnelles pour la
requête, alors la requête originale ne sera pas exécutée du tout. Dans ce
cas, le serveur renverra le statut de la commande pour la dernière
requête qui a été insérée par une règle instead
(conditionnelle ou non) et est du même type de commande
(insert
, update
ou
delete
) que la requête originale. si aucune requête ne
rencontrant ces pré-requis n'est ajoutée à une règle, alors le statut de
commande renvoyé affiche le type de requête original et annule le
compteur de ligne et le champ OID.
Le programmeur peut s'assurer que toute règle instead
désirée
est celle qui initialise le statut de commande dans le deuxième cas en
lui donnant un nom de règle étant le dernier en ordre alphabétique parmi les
règles actives pour qu'elle soit appliquée en dernier.