diff --git a/src/Eccube/Doctrine/ORM/Query/Normalize.php b/src/Eccube/Doctrine/ORM/Query/Normalize.php index b7a341e0afa..b731be77901 100644 --- a/src/Eccube/Doctrine/ORM/Query/Normalize.php +++ b/src/Eccube/Doctrine/ORM/Query/Normalize.php @@ -21,7 +21,7 @@ class Normalize extends FunctionNode { protected $string; - public const FROM = 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽぁぃぅぇぉっゃゅょわいえー'; + public const FROM = 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽぁぃぅぇぉっゃゅょゎゐゑー'; public const TO = 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポァィゥェォッャュョヮヰヱー'; public function parse(Parser $parser) diff --git a/tests/Eccube/Tests/Doctrine/ORM/Query/NormalizeTest.php b/tests/Eccube/Tests/Doctrine/ORM/Query/NormalizeTest.php new file mode 100644 index 00000000000..07375721141 --- /dev/null +++ b/tests/Eccube/Tests/Doctrine/ORM/Query/NormalizeTest.php @@ -0,0 +1,42 @@ +entityManager->createQueryBuilder() + ->select('p.id')->from('Eccube\Entity\Product', 'p') + ->where('NORMALIZE(p.name) LIKE :name') + ->getQuery()->getSql(); + switch ($this->entityManager->getConnection()->getDriver()->getDatabasePlatform()->getName()) + { + case 'postgresql': + $this->assertStringContainsString('LOWER(TRANSLATE(', $sql); + $this->assertStringContainsString('あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽぁぃぅぇぉっゃゅょゎゐゑー', $sql); + $this->assertStringContainsString('アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポァィゥェォッャュョヮヰヱー', $sql); + break; + case 'mysql': + $this->assertStringContainsString('CONVERT(', $sql); + $this->assertStringContainsString('USING utf8) COLLATE utf8_unicode_ci', $sql); + break; + case 'sqlite': + $this->assertStringContainsString('LOWER(', $sql); + break; + } + } +}