From d9d576aa9906147727787ee34ce103f09e6b9155 Mon Sep 17 00:00:00 2001 From: hawk__ Date: Thu, 4 Aug 2011 23:01:39 +0000 Subject: [PATCH] Changed SQL_CALC_FOUND_ROWS handling git-svn-id: https://plugins.svn.wordpress.org/postgresql-for-wordpress/trunk@419551 b8457f37-d9ea-0310-8a92-e5e31aec5664 --- pg4wp/driver_pgsql.php | 16 ++++++++-------- readme.txt | 2 ++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/pg4wp/driver_pgsql.php b/pg4wp/driver_pgsql.php index 9a05de7..24860b3 100644 --- a/pg4wp/driver_pgsql.php +++ b/pg4wp/driver_pgsql.php @@ -118,17 +118,11 @@ if( false !== strpos($sql, 'SQL_CALC_FOUND_ROWS')) { $catchnumrows = true; - $sql = str_replace('GROUP BY '.$wpdb->prefix.'posts.ID', '' , $sql); - $GLOBALS['pg4wp_numrows'] = str_replace( 'SQL_CALC_FOUND_ROWS', 'DISTINCT', $sql); - $GLOBALS['pg4wp_numrows'] = preg_replace( '/SELECT DISTINCT.+FROM ('.$wpdb->prefix.'posts)/', 'SELECT DISTINCT "ID" FROM $1', $GLOBALS['pg4wp_numrows']); - $GLOBALS['pg4wp_numrows'] = preg_replace( '/SELECT(.+)FROM/', 'SELECT COUNT($1) FROM', $GLOBALS['pg4wp_numrows']); - $GLOBALS['pg4wp_numrows'] = preg_replace( '/(ORDER BY|LIMIT).+/', '', $GLOBALS['pg4wp_numrows']); $sql = str_replace('SQL_CALC_FOUND_ROWS', '', $sql); } elseif( false !== strpos($sql, 'FOUND_ROWS()')) - { - $sql = $GLOBALS['pg4wp_numrows']; - } + return $GLOBALS['pg4wp_numrows']; + // Handle COUNT(*)...ORDER BY... $sql = preg_replace( '/COUNT(.+)ORDER BY.+/', 'COUNT$1', $sql); @@ -374,6 +368,12 @@ if( false === strpos($err, 'relation "'.$wpdb->prefix.'options"')) error_log("Error running :\n$initial\n---- converted to ----\n$sql\n----\n$err\n---------------------\n", 3, PG4WP_LOG.'pg4wp_errors.log'); + if( $catchnumrows && $GLOBALS['pg4wp_result'] !== false) + { + $GLOBALS['pg4wp_numrows'] = pg_num_rows( $GLOBALS['pg4wp_result']); + if( PG4WP_DEBUG) + error_log( "Catched number of rows for :\n$sql\nResult is :".$GLOBALS['pg4wp_numrows']."\n---------------------\n", 3, PG4WP_LOG.'pg4wp_NUMROWS.log'); + } return $GLOBALS['pg4wp_result']; } diff --git a/readme.txt b/readme.txt index d7db692..1a87fc4 100644 --- a/readme.txt +++ b/readme.txt @@ -50,6 +50,8 @@ There is no screenshot for this plugin == Changelog == +* Some code optimizations + = 1.2.0b1 = * Somewhat improved Wordpress plugins compatibility * Added 'PG4WP_INSECURE' parameter for future use