fix: fix oci string length with empty strings

Signed-off-by: Robin Appelman <robin@icewind.nl>
pull/54203/head
Robin Appelman 10 months ago
parent 6bc6ed95a3
commit 222cbd0af6
No known key found for this signature in database
GPG Key ID: 42B69D8A64526EFB
  1. 4
      lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php
  2. 1
      tests/lib/DB/QueryBuilder/FunctionBuilderTest.php

@ -81,12 +81,12 @@ class OCIFunctionBuilder extends FunctionBuilder {
public function octetLength($field, $alias = ''): IQueryFunction {
$alias = $alias ? (' AS ' . $this->helper->quoteColumnName($alias)) : '';
$quotedName = $this->helper->quoteColumnName($field);
return new QueryFunction('LENGTHB(' . $quotedName . ')' . $alias);
return new QueryFunction('COALESCE(LENGTHB(' . $quotedName . '), 0)' . $alias);
}
public function charLength($field, $alias = ''): IQueryFunction {
$alias = $alias ? (' AS ' . $this->helper->quoteColumnName($alias)) : '';
$quotedName = $this->helper->quoteColumnName($field);
return new QueryFunction('LENGTH(' . $quotedName . ')' . $alias);
return new QueryFunction('COALESCE(LENGTH(' . $quotedName . '), 0)' . $alias);
}
}

@ -367,6 +367,7 @@ class FunctionBuilderTest extends TestCase {
$result = $query->execute();
$column = $result->fetchOne();
$result->closeCursor();
$this->assertNotNull($column);
$this->assertEquals($bytes, $column);
}

Loading…
Cancel
Save