From 2b0b57d304630a3120a68d7dbee469adab216622 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 5 Nov 2020 10:50:21 +0100 Subject: [PATCH 1/2] Fix casting to integer on Oracle Signed-off-by: Joas Schilling --- .../QueryBuilder/ExpressionBuilder/OCIExpressionBuilder.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/private/DB/QueryBuilder/ExpressionBuilder/OCIExpressionBuilder.php b/lib/private/DB/QueryBuilder/ExpressionBuilder/OCIExpressionBuilder.php index 2aa007dba0496..e8e436ba5bd2c 100644 --- a/lib/private/DB/QueryBuilder/ExpressionBuilder/OCIExpressionBuilder.php +++ b/lib/private/DB/QueryBuilder/ExpressionBuilder/OCIExpressionBuilder.php @@ -170,6 +170,10 @@ public function castColumn($column, $type) { $column = $this->helper->quoteColumnName($column); return new QueryFunction('to_char(' . $column . ')'); } + if ($type === IQueryBuilder::PARAM_INT) { + $column = $this->helper->quoteColumnName($column); + return new QueryFunction('to_number(to_char(' . $column . '))'); + } return parent::castColumn($column, $type); } From 990bb0700239c8dab1000f21ac05d186fc4acede Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 6 Nov 2020 13:32:14 +0100 Subject: [PATCH 2/2] Cast bool things to numbers as that is how they are stored in the database Signed-off-by: Joas Schilling --- .../DB/QueryBuilder/ExpressionBuilder/OCIExpressionBuilder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/DB/QueryBuilder/ExpressionBuilder/OCIExpressionBuilder.php b/lib/private/DB/QueryBuilder/ExpressionBuilder/OCIExpressionBuilder.php index e8e436ba5bd2c..c37150746855f 100644 --- a/lib/private/DB/QueryBuilder/ExpressionBuilder/OCIExpressionBuilder.php +++ b/lib/private/DB/QueryBuilder/ExpressionBuilder/OCIExpressionBuilder.php @@ -170,7 +170,7 @@ public function castColumn($column, $type) { $column = $this->helper->quoteColumnName($column); return new QueryFunction('to_char(' . $column . ')'); } - if ($type === IQueryBuilder::PARAM_INT) { + if ($type === IQueryBuilder::PARAM_INT || $type === IQueryBuilder::PARAM_BOOL) { $column = $this->helper->quoteColumnName($column); return new QueryFunction('to_number(to_char(' . $column . '))'); }