Skip to content

Commit

Permalink
fix it using lower, can use a function based index
Browse files Browse the repository at this point in the history
  • Loading branch information
butonic authored and gitmate-bot committed May 8, 2018
1 parent 001e345 commit 384eed3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 14 deletions.
2 changes: 1 addition & 1 deletion lib/private/DB/AdapterOCI8.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public function lastInsertId($table) {

public function fixupStatement($statement) {
$statement = \preg_replace('( LIKE \?)', '$0 ESCAPE \'\\\'', $statement);
$statement = \preg_replace('/`(\w+)` ILIKE \?/', 'REGEXP_LIKE(`$1`, \'^\' || REPLACE(?, \'%\', \'.*\') || \'$\', \'i\')', $statement);
$statement = \preg_replace('/`(\w+)` ILIKE \?/', "LOWER(`$1`) LIKE LOWER(?) ESCAPE '\\' -- \\'' \n", $statement); // FIXME workaround for singletick matching with regexes in SQLParserUtils::getUnquotedStatementFragments
$statement = \str_replace('`', '"', $statement);
$statement = \str_ireplace('NOW()', 'CURRENT_TIMESTAMP', $statement);
$statement = \str_ireplace('UNIX_TIMESTAMP()', self::UNIX_TIMESTAMP_REPLACEMENT, $statement);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ public function castColumn($column, $type) {
public function iLike($x, $y, $type = null) {
$x = $this->helper->quoteColumnName($x);
$y = $this->helper->quoteColumnName($y);
return new QueryFunction('REGEXP_LIKE('.$x.', \'^\' || REPLACE('.$y.', \'%\', \'.*\') || \'$\', \'i\')');
return new QueryFunction("LOWER($x) LIKE LOWER($y) ESCAPE '\\' -- \\'' \n"); // FIXME workaround for singletick matching with regexes in SQLParserUtils::getUnquotedStatementFragments
}

/**
Expand Down
24 changes: 12 additions & 12 deletions tests/lib/Files/Cache/CacheTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -304,23 +304,23 @@ function testSearch() {
$this->cache->put($file3, $fileData['foo']);
$this->cache->put($file4, $fileData['f[o.o%ba-r']);

$this->assertCount(2, $this->cache->search('%foo%'));
$this->assertCount(1, $this->cache->search('foo'));
$this->assertCount(1, $this->cache->search('%folder%'));
$this->assertCount(1, $this->cache->search('folder%'));
$this->assertCount(4, $this->cache->search('%'));
$this->assertCount(2, $this->cache->search('%foo%'), "expected 2 when searching for '%foo%'");
$this->assertCount(1, $this->cache->search('foo'), "expected 1 when searching for 'foo'");
$this->assertCount(1, $this->cache->search('%folder%'), "expected 1 when searching for '%folder%'");
$this->assertCount(1, $this->cache->search('folder%'), "expected 1 when searching for 'folder%'");
$this->assertCount(4, $this->cache->search('%'), "expected 4 when searching for '%'");

// case insensitive search should match the same files
$this->assertCount(2, $this->cache->search('%Foo%'));
$this->assertCount(1, $this->cache->search('Foo'));
$this->assertCount(1, $this->cache->search('%Folder%'));
$this->assertCount(1, $this->cache->search('Folder%'));
$this->assertCount(2, $this->cache->search('%Foo%'), "expected 2 when searching for '%Foo%'");
$this->assertCount(1, $this->cache->search('Foo'), "expected 1 when searching for 'Foo'");
$this->assertCount(1, $this->cache->search('%Folder%'), "expected 1 when searching for '%Folder%'");
$this->assertCount(1, $this->cache->search('Folder%'), "expected 1 when searching for 'Folder%'");

$this->assertCount(4, $this->cache->searchByMime('foo'));
$this->assertCount(3, $this->cache->searchByMime('foo/file'));
$this->assertCount(4, $this->cache->searchByMime('foo'), "expected 4 when searching for mime 'foo'");
$this->assertCount(3, $this->cache->searchByMime('foo/file'), "expected 3 when searching for mime 'foo/file'");

// oracle uses regexp,
$this->assertCount(1, $this->cache->search('f[o.o%ba-r'));
$this->assertCount(1, $this->cache->search('f[o.o%ba-r'), "expected 1 when searching for 'f[o.o%ba-r'");
}

function testSearchByTag() {
Expand Down

0 comments on commit 384eed3

Please sign in to comment.