IIUC, la tabella rosterusers
è di sola lettura dal POV del tuo eJabberd
app server. Questo renderebbe semplice sostituirlo con una view
, che crea le 2 righe necessarie su 1 nella tabella dei tuoi amici.
Non conoscendo la struttura della tua tabella dell'amicizia, non posso darti il codice completo, ma ecco quello che ho pensato come pseudo-SQL
CREATE VIEW rosterusers AS SELECT * FROM (
SELECT
selfuser.name AS username,
frienduser.jid AS jid,
-- ....,
selfuser.jid AS jid_as_id
FROM
users AS selfuser
INNER JOIN friendships ON ....
INNER JOIN users AS frienduser ON ...
UNION SELECT
frienduser.name AS username,
selfuser.jid AS jid,
-- ....,
frienduser.jid AS jid_as_id
FROM
users AS selfuser
INNER JOIN friendships ON ....
INNER JOIN users AS frienduser ON ...
);
e poi
SELECT
username, jid, subscription, ask, server, type
FROM rosterusers
WHERE jid_as_id='[email protected]'
dovrebbe darti 2 righe, una per ciascuna parte di UNION
nella Vista