*/
public function findReferences($targetDao) {
$targetColumn = $this->getTargetKey();
- $params = array(
- 1 => array($targetDao->$targetColumn, 'String'),
- );
+ $select = 'id';
+ // CRM-19385: Since id is removed, return all rows for cache tables.
+ if (!CRM_Core_BAO_SchemaHandler::checkIfFieldExists($this->getReferenceTable(), 'id')) {
+ $select = '*';
+ }
+ $params = [
+ 1 => [$targetDao->$targetColumn, 'String'],
+ ];
$sql = <<<EOS
-SELECT id
+SELECT {$select}
FROM {$this->getReferenceTable()}
WHERE {$this->getReferenceKey()} = %1
EOS;
*/
public function getReferenceCount($targetDao) {
$targetColumn = $this->getTargetKey();
- $params = array(
- 1 => array($targetDao->$targetColumn, 'String'),
- );
+ $params = [
+ 1 => [$targetDao->$targetColumn, 'String'],
+ ];
$sql = <<<EOS
-SELECT count(id)
+SELECT count(*)
FROM {$this->getReferenceTable()}
WHERE {$this->getReferenceKey()} = %1
EOS;
- return array(
- 'name' => implode(':', array('sql', $this->getReferenceTable(), $this->getReferenceKey())),
+ return [
+ 'name' => implode(':', ['sql', $this->getReferenceTable(), $this->getReferenceKey()]),
'type' => get_class($this),
'table' => $this->getReferenceTable(),
'key' => $this->getReferenceKey(),
'count' => CRM_Core_DAO::singleValueQuery($sql, $params),
- );
+ ];
}
+
}