diff options
author | provokateurin <kate@provokateurin.de> | 2024-09-26 08:57:06 +0200 |
---|---|---|
committer | backportbot[bot] <backportbot[bot]@users.noreply.github.com> | 2024-09-26 13:16:02 +0000 |
commit | bbeda126cccac03eba75436fb69621d569e3dd60 (patch) | |
tree | 2efd28e7b81a5bff3b94db4a569db433e60caf4b /lib/private | |
parent | e4a564392ed820f8ea48634a5cf4f2e699409680 (diff) | |
download | nextcloud-server-bbeda126cccac03eba75436fb69621d569e3dd60.tar.gz nextcloud-server-bbeda126cccac03eba75436fb69621d569e3dd60.zip |
fix(QueryBuilder): Restrict identifier length to 30 characters due to Oracle limitationsbackport/48361/stable30
Signed-off-by: provokateurin <kate@provokateurin.de>
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/DB/QueryBuilder/QueryBuilder.php | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/private/DB/QueryBuilder/QueryBuilder.php b/lib/private/DB/QueryBuilder/QueryBuilder.php index d1207ebdb97..e936a7bb15a 100644 --- a/lib/private/DB/QueryBuilder/QueryBuilder.php +++ b/lib/private/DB/QueryBuilder/QueryBuilder.php @@ -206,6 +206,23 @@ class QueryBuilder implements IQueryBuilder { // } // } + $tooLongOutputColumns = []; + foreach ($this->getOutputColumns() as $column) { + if (strlen($column) > 30) { + $tooLongOutputColumns[] = $column; + } + } + + if (!empty($tooLongOutputColumns)) { + $exception = new QueryException('More than 30 characters for an output column name are not allowed on Oracle.'); + $this->logger->error($exception->getMessage(), [ + 'query' => $this->getSQL(), + 'columns' => $tooLongOutputColumns, + 'app' => 'core', + 'exception' => $exception, + ]); + } + $numberOfParameters = 0; $hasTooLargeArrayParameter = false; foreach ($this->getParameters() as $parameter) { |