diff -Nur ./blog_addons.module ../../modules/blog_addons/blog_addons.module
--- ./blog_addons.module	2008-05-08 00:23:57.000000000 -0400
+++ ../../modules/blog_addons/blog_addons.module	2008-08-04 15:17:32.000000000 -0400
@@ -124,7 +124,7 @@
   $query = "SELECT COUNT(DISTINCT(u.name)) FROM {users} u INNER JOIN {node} n ON u.uid = n.uid WHERE n.type = 'blog'";
   $counts = db_rewrite_sql($query);
 
-  $query = "SELECT u.name, COUNT(n.uid) AS nposts FROM {users} u INNER JOIN {node} n ON u.uid = n.uid WHERE n.status=1 AND n.type = 'blog' GROUP BY u.uid " . $sortby;
+  $query = "SELECT u.name, COUNT(n.uid) AS nposts FROM {users} u INNER JOIN {node} n ON u.uid = n.uid WHERE n.status=1 AND n.type = 'blog' GROUP BY u.uid, u.name " . $sortby;
   $result = pager_query(db_rewrite_sql($query), variable_get('blog_addons_nbloggers', 20),0,$counts);
 
   blog_addons_show_bloggers($result,$pager_attrib );
@@ -251,7 +251,7 @@
       $bcontent .= "<li>" . l(t("My blog"),'blog/'. $user->name) . "</li>";
       $bcontent .= "<li>" . l('Post new blog entry','node/add/blog') . "</li>";
       $bcontent .= "<li>Top bloggers </li>";
-      $query = "SELECT u.name, COUNT(n.uid) AS nposts FROM {users} u INNER JOIN {node} n ON u.uid = n.uid WHERE n.status=1 AND n.type = 'blog' GROUP BY u.uid  ORDER BY nposts DESC LIMIT " . variable_get('blog_addons_ntopbloggers', 5);
+      $query = "SELECT u.name, COUNT(n.uid) AS nposts FROM {users} u INNER JOIN {node} n ON u.uid = n.uid WHERE n.status=1 AND n.type = 'blog' GROUP BY u.uid, u.name  ORDER BY nposts DESC LIMIT " . variable_get('blog_addons_ntopbloggers', 5);
       $result = db_query(db_rewrite_sql($query));
       $bcontent .= "<ul>";
 
@@ -298,10 +298,22 @@
       }
       if ($month != $lastmonth)
       {
-        $limit = " AND YEAR(FROM_UNIXTIME(n.created)) = " . $year;
-        $limit .= " AND MONTH(FROM_UNIXTIME(n.created)) = " . $month_numeric;
-        $query = "SELECT n.nid, n.created FROM {node} n WHERE n.type = 'blog' AND n.status = 1 AND n.uid = " . $account->uid . $limit . " ORDER By n.created DESC ";
-        $postpermonth =  mysql_num_rows(db_query($query));
+	  switch ($GLOBALS['db_type']) {
+	    case 'mysql':
+	    case 'mysqli':
+	      $limit = " AND YEAR(FROM_UNIXTIME(n.created)) = " . $year;
+	      $limit .= " AND MONTH(FROM_UNIXTIME(n.created)) = " . $month_numeric;
+	      $query = "SELECT n.nid, n.created FROM {node} n WHERE n.type = 'blog' AND n.status = 1 AND n.uid = " . $account->uid . $limit . " ORDER By n.created DESC ";
+	      $postpermonth =  mysql_num_rows(db_query($query));
+	      break;
+
+	    case 'pgsql':
+	      $limit = " AND EXTRACT(YEAR FROM (n.created::ABSTIME::TIMESTAMP)) = " . $year;
+	      $limit .= " AND EXTRACT(MONTH FROM (n.created::ABSTIME::TIMESTAMP)) = " . $month_numeric;
+	      $query = "SELECT n.nid, n.created FROM {node} n WHERE n.type = 'blog' AND n.status = 1 AND n.uid = " . $account->uid . $limit . " ORDER By n.created DESC ";
+	      $postpermonth =  pg_numrows(db_query($query));
+	      break;
+	  }
 
         $bcontent .= "<li>" . l($month,'blog/' . $account->name . '/' . $year . '/' . $month_numeric)  . " (" . $postpermonth . ") </li>";
 	$lastmonth = $month;
@@ -393,14 +405,32 @@
    else	 
      $tempuser = user_load(array('name' => $user));
 
+switch ($GLOBALS['db_type']) {
+case 'mysql':
+case 'mysqli':
 if ($year) 
- $limit = " AND YEAR(FROM_UNIXTIME(n.created)) = " . $year;
+ $limit = " AND YEAR(TIMESTAMP(FROM_UNIXTIME(n.created)) = " . $year;
 if (is_numeric($month)) 
  $limit .= " AND MONTH(FROM_UNIXTIME(n.created)) = " . $month;
 if (is_numeric($day)) 
  $limit .= " AND DAY(FROM_UNIXTIME(n.created)) = " . $day;
 
 $query = "SELECT n.nid, n.created, YEAR(FROM_UNIXTIME(n.created)) AS year, MONTH(FROM_UNIXTIME(n.created)) AS month, DAY(FROM_UNIXTIME(n.created)) AS day FROM {node} n WHERE n.type = 'blog' AND n.status = 1  AND n.uid = " . $tempuser->uid . " " . $limit .  $sortby;
+break;
+
+case 'pgsql':
+if ($year) 
+ $limit = " AND EXTRACT(YEAR FROM (n.created::ABSTIME::TIMESTAMP)) = " . $year;
+if (is_numeric($month)) 
+ $limit .= " AND EXTRACT(MONTH FROM (n.created::ABSTIME::TIMESTAMP)) = " . $month;
+if (is_numeric($day)) 
+ $limit .= " AND EXTRACT(DAY FROM(n.created::ABSTIME::TIMESTAMP)) = " . $day;
+
+$query = "SELECT n.nid, n.created, EXTRACT (YEAR from (n.created::ABSTIME::TIMESTAMP)) AS year, EXTRACT (MONTH FROM(n.created::ABSTIME::TIMESTAMP)) AS month, EXTRACT (DAY from (n.created::ABSTIME::TIMESTAMP)) AS day FROM {node} n WHERE n.type = 'blog' AND n.status = 1  AND n.uid = " . $tempuser->uid . " " . $limit .  $sortby;
+
+break;
+}
+
 
  $result = pager_query($query,variable_get('blog_addons_nposts_userhomepage', 20));
 
