]> git.mxchange.org Git - friendica.git/commitdiff
Fix GROUP BY in acl_selector, api, notifier, photos, messages
authorAlexandre Alapetite <alexandre@alapetite.fr>
Wed, 12 Apr 2017 13:11:50 +0000 (15:11 +0200)
committerAlexandre Alapetite <alexandre@alapetite.fr>
Wed, 12 Apr 2017 13:11:50 +0000 (15:11 +0200)
https://github.com/friendica/friendica/issues/3322

include/acl_selectors.php
include/api.php
include/notifier.php
include/photos.php
mod/message.php
mod/photos.php
mod/videos.php

index f4b644d68fb0201a322db05d497f324fe31f74df..87230a1409f7aaf1b85486b0f64905b281db0191 100644 (file)
@@ -502,7 +502,7 @@ function acl_lookup(App $a, $out_type = 'json') {
                                INNER JOIN `group_member` ON `group_member`.`gid`=`group`.`id` AND `group_member`.`uid` = `group`.`uid`
                                WHERE NOT `group`.`deleted` AND `group`.`uid` = %d
                                        $sql_extra
-                               GROUP BY `group`.`name`
+                               GROUP BY `group`.`name`, `group`.`id`
                                ORDER BY `group`.`name`
                                LIMIT %d,%d",
                        intval(local_user()),
@@ -619,7 +619,7 @@ function acl_lookup(App $a, $out_type = 'json') {
                                FROM `item` WHERE `parent` = %d
                                        AND (`author-name` LIKE '%%%s%%' OR `author-link` LIKE '%%%s%%')
                                        AND `author-link` NOT IN ('%s')
-                               GROUP BY `author-link`
+                               GROUP BY `author-link`, `author-avatar`, `author-name`
                                ORDER BY `author-name` ASC
                                ",
                                intval($conv_id),
index 9fc853340af520d22f9a56b945906a7bd54e9fd2..477eb94b4e55de8026fa805266d2e802dfd64f6d 100644 (file)
@@ -3064,7 +3064,7 @@ use \Friendica\Core\Config;
        function api_fr_photos_list($type) {
                if (api_user()===false) throw new ForbiddenException();
                $r = q("select `resource-id`, max(scale) as scale, album, filename, type from photo
-                               where uid = %d and album != 'Contact Photos' group by `resource-id`",
+                               where uid = %d and album != 'Contact Photos' group by `resource-id`, album, filename, type",
                        intval(local_user())
                );
                $typetoext = array(
@@ -3102,8 +3102,10 @@ use \Friendica\Core\Config;
                $data_sql = ($scale === false ? "" : "data, ");
 
                $r = q("select %s `resource-id`, `created`, `edited`, `title`, `desc`, `album`, `filename`,
-                                               `type`, `height`, `width`, `datasize`, `profile`, min(`scale`) as minscale, max(`scale`) as maxscale
-                               from photo where `uid` = %d and `resource-id` = '%s' %s group by `resource-id`",
+                                       `type`, `height`, `width`, `datasize`, `profile`, min(`scale`) as minscale, max(`scale`) as maxscale
+                               from photo where `uid` = %d and `resource-id` = '%s' %s
+                               group by `resource-id`, `created`, `edited`, `title`, `desc`, `album`, `filename`,
+                                       `type`, `height`, `width`, `datasize`, `profile`",
                        $data_sql,
                        intval(local_user()),
                        dbesc($_REQUEST['photo_id']),
index e3d7d10d6b2a7595e76143eaf60ae4cf4b6e78d3..ed34288e8f3e30eaa0cafc3a384b1c66393a8cc2 100644 (file)
@@ -517,7 +517,7 @@ function notifier_run(&$argv, &$argc){
                        }
 
                        $r1 = q("SELECT DISTINCT(`batch`), `id`, `name`,`network` FROM `contact` WHERE `network` = '%s'
-                               AND `uid` = %d AND `rel` != %d AND NOT `blocked` AND NOT `pending` AND NOT `archive` GROUP BY `batch` ORDER BY rand()",
+                               AND `uid` = %d AND `rel` != %d AND NOT `blocked` AND NOT `pending` AND NOT `archive` GROUP BY `batch`, `id` ORDER BY rand()",
                                dbesc(NETWORK_DIASPORA),
                                intval($owner['uid']),
                                intval(CONTACT_IS_SHARING)
index 9d8d3309c2bb49d0abce8e5e8a68e653021d5bc0..02d1b174039f4a1956b03cfb7459c08ff79120e0 100644 (file)
@@ -51,7 +51,7 @@ function photo_albums($uid, $update = false) {
                        $albums = qu("SELECT COUNT(DISTINCT `resource-id`) AS `total`, `album`
                                FROM `photo`
                                WHERE `uid` = %d  AND `album` != '%s' AND `album` != '%s' $sql_extra
-                               GROUP BY `album` ORDER BY `created` DESC",
+                               GROUP BY `album`, `created` ORDER BY `created` DESC",
                                intval($uid),
                                dbesc('Contact Photos'),
                                dbesc(t('Contact Photos'))
@@ -61,7 +61,7 @@ function photo_albums($uid, $update = false) {
                        $albums = qu("SELECT DISTINCT(`album`), '' AS `total`
                                FROM `photo`
                                WHERE `uid` = %d  AND `album` != '%s' AND `album` != '%s' $sql_extra
-                               GROUP BY `album` ORDER BY `created` DESC",
+                               GROUP BY `album`, `created` ORDER BY `created` DESC",
                                intval($uid),
                                dbesc('Contact Photos'),
                                dbesc(t('Contact Photos'))
index 9e966914668e40d760be76c3ac0e2f9e950e8fdd..05a8d36f68b4e2aa59f943e0509e3273bb02b27c 100644 (file)
@@ -350,7 +350,7 @@ function message_content(App $a) {
                $o .= $header;
 
                $r = q("SELECT count(*) AS `total` FROM `mail`
-                       WHERE `mail`.`uid` = %d GROUP BY `parent-uri` ORDER BY `created` DESC",
+                       WHERE `mail`.`uid` = %d GROUP BY `parent-uri`, `created` ORDER BY `created` DESC",
                        intval(local_user())
                );
 
@@ -533,7 +533,7 @@ function get_messages($user, $lstart, $lend) {
                `mail`.* , `contact`.`name`, `contact`.`url`, `contact`.`thumb` , `contact`.`network`,
                count( * ) as count
                FROM `mail` LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id`
-               WHERE `mail`.`uid` = %d GROUP BY `parent-uri` ORDER BY `mailcreated` DESC  LIMIT %d , %d ",
+               WHERE `mail`.`uid` = %d GROUP BY `parent-uri`, `mail`.id ORDER BY `mailcreated` DESC  LIMIT %d , %d ",
                intval($user), intval($lstart), intval($lend)
        );
 }
index 3acd39b2af6311f144a1af9fc86a44b13cdaa556..a24cee2559627a2d68a33a785c203dd6befd988e 100644 (file)
@@ -1241,7 +1241,7 @@ function photos_content(App $a) {
                }
 
                $r = q("SELECT `resource-id`, `id`, `filename`, type, max(`scale`) AS `scale`, `desc` FROM `photo` WHERE `uid` = %d AND `album` = '%s'
-                       AND `scale` <= 4 $sql_extra GROUP BY `resource-id` ORDER BY `created` $order LIMIT %d , %d",
+                       AND `scale` <= 4 $sql_extra GROUP BY `resource-id`, `id` ORDER BY `created` $order LIMIT %d , %d",
                        intval($owner_uid),
                        dbesc($album),
                        intval($a->pager['start']),
index 3828b8f1fefb649df1a5973261639dac46636b10..ea2e0d4a24f08ca84c0cca7d6406757e8f601812 100644 (file)
@@ -358,7 +358,7 @@ function videos_content(App $a) {
 
        $r = q("SELECT hash, `id`, `filename`, filetype FROM `attach`
                WHERE `uid` = %d AND filetype LIKE '%%video%%'
-               $sql_extra GROUP BY hash ORDER BY `created` DESC LIMIT %d , %d",
+               $sql_extra GROUP BY hash, `id` ORDER BY `created` DESC LIMIT %d , %d",
                intval($a->data['user']['uid']),
                intval($a->pager['start']),
                intval($a->pager['itemspage'])