]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
PostgreSQL - code changes to avoid problems where user table is referenced in ad...
authorCiaran Gultnieks <ciaran@thurlow.(none)>
Mon, 26 Jan 2009 21:10:32 +0000 (21:10 +0000)
committerCiaran Gultnieks <ciaran@thurlow.(none)>
Fri, 30 Jan 2009 01:12:58 +0000 (01:12 +0000)
classes/Notice.php
classes/User.php
lib/jabber.php
lib/mail.php

index 2cdf80f1c0b7cacf90336a4430e93048648097bf..32998836862043f1ca74a9602f478a9328440774 100644 (file)
@@ -273,8 +273,10 @@ class Notice extends Memcached_DataObject
         if ($cache) {
             $user = new User();
 
+            $UT = common_config('db','type')=='pgsql'?'"user"':'user';
             $user->query('SELECT id ' .
-                         'FROM user JOIN subscription ON user.id = subscription.subscriber ' .
+
+                         "FROM $UT JOIN subscription ON $UT.id = subscription.subscriber " .
                          'WHERE subscription.subscribed = ' . $this->profile_id);
 
             while ($user->fetch()) {
@@ -568,16 +570,17 @@ class Notice extends Memcached_DataObject
 
         if ($enabled === true || $enabled === 'transitional') {
             $inbox = new Notice_inbox();
+            $UT = common_config('db','type')=='pgsql'?'"user"':'user';
             $qry = 'INSERT INTO notice_inbox (user_id, notice_id, created) ' .
-              'SELECT user.id, ' . $this->id . ', "' . $this->created . '" ' .
-              'FROM user JOIN subscription ON user.id = subscription.subscriber ' .
+              "SELECT $UT.id, " . $this->id . ', "' . $this->created . '" ' .
+              "FROM $UT JOIN subscription ON $UT.id = subscription.subscriber " .
               'WHERE subscription.subscribed = ' . $this->profile_id . ' ' .
               'AND NOT EXISTS (SELECT user_id, notice_id ' .
               'FROM notice_inbox ' .
-              'WHERE user_id = user.id ' .
+              "WHERE user_id = $UT.id " .
               'AND notice_id = ' . $this->id . ' )';
             if ($enabled === 'transitional') {
-                $qry .= ' AND user.inboxed = 1';
+                $qry .= " AND $UT.inboxed = 1";
             }
             $inbox->query($qry);
         }
@@ -628,16 +631,17 @@ class Notice extends Memcached_DataObject
                 // FIXME: do this in an offline daemon
 
                 $inbox = new Notice_inbox();
+                $UT = common_config('db','type')=='pgsql'?'"user"':'user';
                 $qry = 'INSERT INTO notice_inbox (user_id, notice_id, created, source) ' .
-                  'SELECT user.id, ' . $this->id . ', "' . $this->created . '", 2 ' .
-                  'FROM user JOIN group_member ON user.id = group_member.profile_id ' .
+                  "SELECT $UT.id, " . $this->id . ', "' . $this->created . '", 2 ' .
+                  "FROM $UT JOIN group_member ON $UT.id = group_member.profile_id " .
                   'WHERE group_member.group_id = ' . $group->id . ' ' .
                   'AND NOT EXISTS (SELECT user_id, notice_id ' .
                   'FROM notice_inbox ' .
-                  'WHERE user_id = user.id ' .
+                  "WHERE user_id = $UT.id " .
                   'AND notice_id = ' . $this->id . ' )';
                 if ($enabled === 'transitional') {
-                    $qry .= ' AND user.inboxed = 1';
+                    $qry .= " AND $UT.inboxed = 1";
                 }
                 $result = $inbox->query($qry);
             }
index b1bae88351ad82a3f5b78b0de587aa9e3c3eeb78..b1c061c18fb096f59c43115813b7a6505ae0516f 100644 (file)
@@ -338,11 +338,12 @@ class User extends Memcached_DataObject
         {
 
         # 3-way join; probably should get cached
-        $qry = 'SELECT user.* ' .
-          'FROM subscription sub1 JOIN user ON sub1.subscribed = user.id ' .
-          'JOIN subscription sub2 ON user.id = sub2.subscriber ' .
+       $UT = common_config('db','type')=='pgsql'?'"user"':'user';
+        $qry = "SELECT $UT.* " .
+          "FROM subscription sub1 JOIN $UT ON sub1.subscribed = $UT.id " .
+          "JOIN subscription sub2 ON $UT.id = sub2.subscriber " .
           'WHERE sub1.subscriber = %d and sub2.subscribed = %d ' .
-          'ORDER BY user.nickname';
+          "ORDER BY $UT.nickname";
         $user = new User();
         $user->query(sprintf($qry, $this->id, $this->id));
 
index 6196bc9e1d92a0a59315f4ac705a3f69bf4402c9..f1be5776813164dd5e37999d4a900d8eaf118c72 100644 (file)
@@ -354,12 +354,13 @@ function jabber_broadcast_notice($notice)
 
     // First, get users to whom this is a direct reply
     $user = new User();
-    $user->query('SELECT user.id, user.jabber ' .
-                 'FROM user JOIN reply ON user.id = reply.profile_id ' .
+    $UT = common_config('db','type')=='pgsql'?'"user"':'user';
+    $user->query("SELECT $UT.id, $UT.jabber " .
+                 "FROM $UT JOIN reply ON $UT.id = reply.profile_id " .
                  'WHERE reply.notice_id = ' . $notice->id . ' ' .
-                 'AND user.jabber is not null ' .
-                 'AND user.jabbernotify = 1 ' .
-                 'AND user.jabberreplies = 1 ');
+                 "AND $UT.jabber is not null " .
+                 "AND $UT.jabbernotify = 1 " .
+                 "AND $UT.jabberreplies = 1 ");
 
     while ($user->fetch()) {
         common_log(LOG_INFO,
@@ -375,12 +376,12 @@ function jabber_broadcast_notice($notice)
     // Now, get users subscribed to this profile
 
     $user = new User();
-    $user->query('SELECT user.id, user.jabber ' .
-                 'FROM user JOIN subscription ' .
-                 'ON user.id = subscription.subscriber ' .
+    $user->query("SELECT $UT.id, $UT.jabber " .
+                 "FROM $UT JOIN subscription " .
+                 "ON $UT.id = subscription.subscriber " .
                  'WHERE subscription.subscribed = ' . $notice->profile_id . ' ' .
-                 'AND user.jabber is not null ' .
-                 'AND user.jabbernotify = 1 ' .
+                 "AND $UT.jabber is not null " .
+                 "AND $UT.jabbernotify = 1 " .
                  'AND subscription.jabber = 1 ');
 
     while ($user->fetch()) {
@@ -399,9 +400,9 @@ function jabber_broadcast_notice($notice)
     // Now, get users who have it in their inbox because of groups
 
     $user = new User();
-    $user->query('SELECT user.id, user.jabber ' .
-                 'FROM user JOIN notice_inbox ' .
-                 'ON user.id = notice_inbox.user_id ' .
+    $user->query("SELECT $UT.id, $UT.jabber " .
+                 "FROM $UT JOIN notice_inbox " .
+                 "ON $UT.id = notice_inbox.user_id " .
                  'WHERE notice_inbox.notice_id = ' . $notice->id . ' ' .
                  'AND notice_inbox.source = 2 ' .
                  'AND user.jabber is not null ' .
index 1c6a10a8a5d8959e23a9f791d542d0804e3fd02a..b424d579fe733eaf6fcd3974cac005eb4d8c9a43 100644 (file)
@@ -331,12 +331,13 @@ function mail_broadcast_notice_sms($notice)
 
     $user = new User();
 
+    $UT = common_config('db','type')=='pgsql'?'"user"':'user';
     $user->query('SELECT nickname, smsemail, incomingemail ' .
-                 'FROM user JOIN subscription ' .
-                 'ON user.id = subscription.subscriber ' .
+                 "FROM $UT JOIN subscription " .
+                 "ON $UT.id = subscription.subscriber " .
                  'WHERE subscription.subscribed = ' . $notice->profile_id . ' ' .
-                 'AND user.smsemail IS NOT null ' .
-                 'AND user.smsnotify = 1 ' .
+                 "AND $UT.smsemail IS NOT null " .
+                 "AND $UT.smsnotify = 1 " .
                  'AND subscription.sms = 1 ');
 
     while ($user->fetch()) {