function cleanTableReferences()
{
/* lock */
if (!$this->store->getLock()) {
return $this->addError('Could not get lock in "cleanTableReferences"');
}
$con = $this->store->getDBCon();
$tbl_prefix = $this->store->getTablePrefix();
$dbv = $this->store->getDBVersion();
/* check for unconnected triples */
$sql = '
SELECT T.t FROM ' . $tbl_prefix . 'triple T LEFT JOIN ' . $tbl_prefix . 'g2t G ON ( G.t = T.t )
WHERE G.t IS NULL LIMIT 1
';
if (($rs = mysqli_query($con, $sql)) && mysqli_num_rows($rs)) {
/* delete unconnected triples */
$sql = $dbv < '04-01' ? 'DELETE ' . $tbl_prefix . 'triple' : 'DELETE T';
$sql .= '
FROM ' . $tbl_prefix . 'triple T
LEFT JOIN ' . $tbl_prefix . 'g2t G ON (G.t = T.t)
WHERE G.t IS NULL
';
mysqli_query($con, $sql);
}
/* check for unconnected graph refs */
if (rand(1, 10) == 1) {
$sql = '
SELECT G.g FROM ' . $tbl_prefix . 'g2t G LEFT JOIN ' . $tbl_prefix . 'triple T ON ( T.t = G.t )
WHERE T.t IS NULL LIMIT 1
';
if (($rs = mysqli_query($con, $sql)) && mysqli_num_rows($rs)) {
/* delete unconnected graph refs */
$sql = $dbv < '04-01' ? 'DELETE ' . $tbl_prefix . 'g2t' : 'DELETE G';
$sql .= '
FROM ' . $tbl_prefix . 'g2t G
LEFT JOIN ' . $tbl_prefix . 'triple T ON (T.t = G.t)
WHERE T.t IS NULL
';
mysqli_query($con, $sql);
}
}
/* release lock */
$this->store->releaseLock();
}