diff --git a/pg4wp/rewriters/SelectSQLRewriter.php b/pg4wp/rewriters/SelectSQLRewriter.php index 30f5d14..bbe13d6 100644 --- a/pg4wp/rewriters/SelectSQLRewriter.php +++ b/pg4wp/rewriters/SelectSQLRewriter.php @@ -65,6 +65,9 @@ class SelectSQLRewriter extends AbstractSQLRewriter // Handle COUNT(*)...ORDER BY... $sql = preg_replace('/COUNT(.+)ORDER BY.+/s', 'COUNT$1', $sql); + // HANDLE REGEXP + $sql = preg_replace('/REGEXP/', '~', $sql); + // In order for users counting to work... $matches = array(); if(preg_match_all('/COUNT[^C]+\),/', $sql, $matches)) { diff --git a/tests/rewriteTest.php b/tests/rewriteTest.php index 8865f29..9dfa187 100644 --- a/tests/rewriteTest.php +++ b/tests/rewriteTest.php @@ -724,9 +724,9 @@ final class rewriteTest extends TestCase ) GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value+0 DESC, wp_posts.post_date DESC - SQL; + SQL; - $expected = << '2024-07-17 23:59:59' @@ -737,14 +737,25 @@ final class rewriteTest extends TestCase ) ORDER BY CAST(wp_postmeta.meta_value AS INTEGER) DESC, wp_posts.post_date DESC - SQL; + SQL; - $postgresql = pg4wp_rewrite($sql); - $this->assertSame(trim($expected), trim($postgresql)); + $postgresql = pg4wp_rewrite($sql); + $this->assertSame(trim($expected), trim($postgresql)); } + public function test_it_rewrites_regexp() + { + $sql = <<assertSame(trim($expected), trim($postgresql)); + }