summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/appframework/db/db.php9
-rw-r--r--lib/private/db/connection.php44
-rw-r--r--lib/private/db/querybuilder/querybuilder.php2
-rw-r--r--lib/public/idbconnection.php8
4 files changed, 39 insertions, 24 deletions
diff --git a/lib/private/appframework/db/db.php b/lib/private/appframework/db/db.php
index 6134d33b6c9..cde85831687 100644
--- a/lib/private/appframework/db/db.php
+++ b/lib/private/appframework/db/db.php
@@ -48,15 +48,6 @@ class Db implements IDb {
/**
* Gets the ExpressionBuilder for the connection.
*
- * @return \OCP\DB\QueryBuilder\IExpressionBuilder
- */
- public function getExpressionBuilder() {
- return $this->connection->getExpressionBuilder();
- }
-
- /**
- * Gets the ExpressionBuilder for the connection.
- *
* @return \OCP\DB\QueryBuilder\IQueryBuilder
*/
public function getQueryBuilder() {
diff --git a/lib/private/db/connection.php b/lib/private/db/connection.php
index ae5d22bf4d8..def3f2fd120 100644
--- a/lib/private/db/connection.php
+++ b/lib/private/db/connection.php
@@ -54,21 +54,53 @@ 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 '';
}
/**
diff --git a/lib/private/db/querybuilder/querybuilder.php b/lib/private/db/querybuilder/querybuilder.php
index 38c3966d9a0..1a1408876f1 100644
--- a/lib/private/db/querybuilder/querybuilder.php
+++ b/lib/private/db/querybuilder/querybuilder.php
@@ -65,7 +65,7 @@ class QueryBuilder implements IQueryBuilder {
* @return \OCP\DB\QueryBuilder\IExpressionBuilder
*/
public function expr() {
- return $this->connection->getExpressionBuilder();
+ return new ExpressionBuilder($this->connection);
}
/**
diff --git a/lib/public/idbconnection.php b/lib/public/idbconnection.php
index 7c94611a684..0d04c43d73e 100644
--- a/lib/public/idbconnection.php
+++ b/lib/public/idbconnection.php
@@ -41,14 +41,6 @@ namespace OCP;
*/
interface IDBConnection {
/**
- * Gets the ExpressionBuilder for the connection.
- *
- * @return \OCP\DB\QueryBuilder\IExpressionBuilder
- * @since 8.2.0
- */
- public function getExpressionBuilder();
-
- /**
* Gets the QueryBuilder for the connection.
*
* @return \OCP\DB\QueryBuilder\IQueryBuilder