|
|
|
@ -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 ''; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|