]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
PostgreSQL - made all 'weight' calculating SQL expressions compatible with both datab...
authorCiaranG <ciaran@ciarang.com>
Wed, 4 Mar 2009 15:32:26 +0000 (15:32 +0000)
committerCiaranG <ciaran@ciarang.com>
Wed, 4 Mar 2009 15:32:26 +0000 (15:32 +0000)
actions/favorited.php
lib/groupsbymemberssection.php
lib/groupsbypostssection.php
lib/grouptagcloudsection.php
lib/personaltagcloudsection.php
lib/popularnoticesection.php

index fd5ff413cbbfd9cc8f0ac478c7aa084a7c0d43ca..5082f4a4eb3e5ae258c67804516924c73907c686 100644 (file)
@@ -169,8 +169,14 @@ class FavoritedAction extends Action
 
     function showContent()
     {
+        if (common_config('db', 'type') == 'pgsql') {
+            $weightexpr='sum(exp(-extract(epoch from (now() - fave.modified)) / %s))';
+        } else {
+            $weightexpr='sum(exp(-(now() - fave.modified) / %s))';
+        }
+
         $qry = 'SELECT notice.*, '.
-          'sum(exp(-(now() - fave.modified) / %s)) as weight ' .
+          $weightexpr . ' as weight ' .
           'FROM notice JOIN fave ON notice.id = fave.notice_id ' .
           'GROUP BY fave.notice_id ' .
           'ORDER BY weight DESC';
index 4fa07a244a5951a25a6b3ac048cbbf2c55f8df80..5f26c6626faa975e4d212efec9eb90cf378d7a4f 100644 (file)
@@ -45,7 +45,7 @@ class GroupsByMembersSection extends GroupSection
 {
     function getGroups()
     {
-        $qry = 'SELECT user_group.*, count(*) as value ' .
+        $qry = 'SELECT user_group.id, count(*) as value ' .
           'FROM user_group JOIN group_member '.
           'ON user_group.id = group_member.group_id ' .
           'GROUP BY user_group.id ' .
index a5e33a93de317305058ed7ac5e21c5ac96aeb1e7..1a60ddb4fc8ebc0ad6fb169c95537fa952ce2eb0 100644 (file)
@@ -45,7 +45,7 @@ class GroupsByPostsSection extends GroupSection
 {
     function getGroups()
     {
-        $qry = 'SELECT user_group.*, count(*) as value ' .
+        $qry = 'SELECT user_group.id, count(*) as value ' .
           'FROM user_group JOIN group_inbox '.
           'ON user_group.id = group_inbox.group_id ' .
           'GROUP BY user_group.id ' .
index f05be85cbbdf33f49997fb663c217f3de6e2b117..5d68af28bf7bdc62e8a9ba3b3892a3b03c6d8084 100644 (file)
@@ -58,8 +58,14 @@ class GroupTagCloudSection extends TagCloudSection
 
     function getTags()
     {
+        if (common_config('db', 'type') == 'pgsql') {
+            $weightexpr='sum(exp(-extract(epoch from (now() - notice_tag.created)) / %s))';
+        } else {
+            $weightexpr='sum(exp(-(now() - notice_tag.created) / %s))';
+        }
+
         $qry = 'SELECT notice_tag.tag, '.
-          'sum(exp(-(now() - notice_tag.created)/%s)) as weight ' .
+          $weightexpr . ' as weight ' .
           'FROM notice_tag JOIN notice ' .
           'ON notice_tag.notice_id = notice.id ' .
           'JOIN group_inbox on group_inbox.notice_id = notice.id ' .
index 0882822db2a2532e1c44782e89f3138a9dce5adb..978153a84e33cf04a007a853db100b9f773b6fab 100644 (file)
@@ -58,8 +58,14 @@ class PersonalTagCloudSection extends TagCloudSection
 
     function getTags()
     {
-        $qry = 'SELECT notice_tag.tag, '.
-          'sum(exp(-(now() - notice_tag.created)/%s)) as weight ' .
+        if (common_config('db', 'type') == 'pgsql') {
+            $weightexpr='sum(exp(-extract(epoch from (now() - notice_tag.created)) / %s))';
+        } else {
+            $weightexpr='sum(exp(-(now() - notice_tag.created) / %s))';
+        }
+       $qry = 'SELECT notice_tag.tag, '.
+          $weightexpr . ' as weight ' .
           'FROM notice_tag JOIN notice ' .
           'ON notice_tag.notice_id = notice.id ' .
           'WHERE notice.profile_id = %d ' .
index c7c7f02150407a850bbcc8a3172cfd8b05f90dfd..f7fb935543a761c3d98f448fae6fd6360e14df44 100644 (file)
@@ -48,10 +48,16 @@ class PopularNoticeSection extends NoticeSection
 {
     function getNotices()
     {
-        $qry = 'SELECT notice.*, '.
-          'sum(exp(-(now() - fave.modified) / %s)) as weight ' .
+        if (common_config('db', 'type') == 'pgsql') {
+            $weightexpr='sum(exp(-extract(epoch from (now() - fave.modified)) / %s))';
+        } else {
+            $weightexpr='sum(exp(-(now() - fave.modified) / %s))';
+        }
+
+        $qry = 'SELECT notice.id, '.
+          $weightexpr . ' as weight ' .
           'FROM notice JOIN fave ON notice.id = fave.notice_id ' .
-          'GROUP BY fave.notice_id ' .
+          'GROUP BY notice.id ' .
           'ORDER BY weight DESC';
 
         $offset = 0;