Ah, this goes through PublicationDAO rather than a QueryBuilder. (We currently have two active means of making database queries – an old one using ADODB and DAO classes, and a new one using PDO and QueryBuilder classes. We are gradually moving over to the new style; this is an example of the old style.)
The DAOs do offer hooks – they’re assembled from low-budget PHP introspection in the DAO class. See e.g. the update function there:
In your case, the hook you’re watching for will be schemadao::_updateobject (SchemaDAO is a superclass of PublicationDAO). However, a hook with this name will be called for any subclass of SchemaDAO, so you’ll have to avoid intervening in cases where another use case is involved.
Public Knowledge Project Team
Indeed, there’s a call for the updateObject method in SchemaDAO.inc.php that calls the update method in DAO.inc.php. However, the relationStatus is one of the publication settings, so it is updated by the replace method in DAO.inc.php (you can see the call in this line)
However, there isn’t a hook in the replace method, so I can’t capture this db change.