|
|
|
|
@ -53,22 +53,54 @@ class Connection extends \Doctrine\DBAL\Connection implements IDBConnection {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns a QueryBuilder for the connection.
|
|
|
|
|
*
|
|
|
|
|
* @return \OCP\DB\QueryBuilder\IQueryBuilder
|
|
|
|
|
*/
|
|
|
|
|
public function getQueryBuilder() {
|
|
|
|
|
return new QueryBuilder($this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Gets the QueryBuilder for the connection.
|
|
|
|
|
*
|
|
|
|
|
* @return \Doctrine\DBAL\Query\QueryBuilder
|
|
|
|
|
* @deprecated please use $this->getQueryBuilder() instead
|
|
|
|
|
*/
|
|
|
|
|
public function createQueryBuilder() {
|
|
|
|
|
$backtrace = $this->getCallerBacktrace();
|
|
|
|
|
\OC::$server->getLogger()->debug('Doctrine QueryBuilder retrieved in {backtrace}', ['app' => 'core', 'backtrace' => $backtrace]);
|
|
|
|
|
return parent::createQueryBuilder();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Gets the ExpressionBuilder for the connection.
|
|
|
|
|
*
|
|
|
|
|
* @return \OCP\DB\QueryBuilder\IExpressionBuilder
|
|
|
|
|
* @return \Doctrine\DBAL\Query\Expression\ExpressionBuilder
|
|
|
|
|
* @deprecated please use $this->getQueryBuilder()->expr() instead
|
|
|
|
|
*/
|
|
|
|
|
public function getExpressionBuilder() {
|
|
|
|
|
return new ExpressionBuilder($this);
|
|
|
|
|
$backtrace = $this->getCallerBacktrace();
|
|
|
|
|
\OC::$server->getLogger()->debug('Doctrine ExpressionBuilder retrieved in {backtrace}', ['app' => 'core', 'backtrace' => $backtrace]);
|
|
|
|
|
return parent::getExpressionBuilder();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Gets the QueryBuilder for the connection.
|
|
|
|
|
* Get the file and line that called the method where `getCallerBacktrace()` was used
|
|
|
|
|
*
|
|
|
|
|
* @return \OCP\DB\QueryBuilder\IQueryBuilder
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
public function getQueryBuilder() {
|
|
|
|
|
return new QueryBuilder($this);
|
|
|
|
|
protected function getCallerBacktrace() {
|
|
|
|
|
$traces = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);
|
|
|
|
|
|
|
|
|
|
// 0 is the method where we use `getCallerBacktrace`
|
|
|
|
|
// 1 is the target method which uses the method we want to log
|
|
|
|
|
if (isset($traces[1])) {
|
|
|
|
|
return $traces[1]['file'] . ':' . $traces[1]['line'];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return '';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|