diff options
author | zotlabs <mike@macgirvin.com> | 2018-01-21 17:06:38 -0800 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2018-01-21 17:06:38 -0800 |
commit | a4588af0f8ef56734ad0a974838f9efeff342eff (patch) | |
tree | 1a0a52e3ed92457ea86f44b4fc5e6f01696b011a | |
parent | 764d6e3407f75cbe7a6f9635dd40cd2cca0f2b4f (diff) | |
download | volse-hubzilla-a4588af0f8ef56734ad0a974838f9efeff342eff.tar.gz volse-hubzilla-a4588af0f8ef56734ad0a974838f9efeff342eff.tar.bz2 volse-hubzilla-a4588af0f8ef56734ad0a974838f9efeff342eff.zip |
mod_search: fix the group by mess
-rw-r--r-- | Zotlabs/Lib/Config.php | 4 | ||||
-rw-r--r-- | Zotlabs/Module/Search.php | 23 |
2 files changed, 14 insertions, 13 deletions
diff --git a/Zotlabs/Lib/Config.php b/Zotlabs/Lib/Config.php index f9f22ba3a..c00b8efb6 100644 --- a/Zotlabs/Lib/Config.php +++ b/Zotlabs/Lib/Config.php @@ -142,9 +142,9 @@ class Config { /** - * @brief Returns a value directly from the database configuration storage. + * @brief Returns a record directly from the database configuration storage. * - * This function queries directly the database and bypasses the chached storage + * This function queries directly the database and bypasses the cached storage * from get_config($family, $key). * * @param string $family diff --git a/Zotlabs/Module/Search.php b/Zotlabs/Module/Search.php index a572a5a42..504c0353f 100644 --- a/Zotlabs/Module/Search.php +++ b/Zotlabs/Module/Search.php @@ -165,40 +165,41 @@ class Search extends \Zotlabs\Web\Controller { if($load) { $r = null; - if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) { - $prefix = 'distinct on (created, mid)'; - $suffix = 'ORDER BY created DESC, mid'; - } else { - $prefix = 'distinct'; - $suffix = 'group by mid ORDER BY created DESC'; - } if(local_channel()) { - $r = q("SELECT $prefix mid, item.id as item_id, item.* from item + $r = q("SELECT mid, MAX(id) as item_id from item WHERE ((( item.allow_cid = '' AND item.allow_gid = '' AND item.deny_cid = '' AND item.deny_gid = '' AND item_private = 0 ) OR ( item.uid = %d )) OR item.owner_xchan = '%s' ) $item_normal $sql_extra - $suffix $pager_sql ", + group by mid order by created desc $pager_sql ", intval(local_channel()), dbesc($sys['xchan_hash']) ); } if($r === null) { - $r = q("SELECT $prefix mid, item.id as item_id, item.* from item + $r = q("SELECT mid, MAX(id) as item_id from item WHERE (((( item.allow_cid = '' AND item.allow_gid = '' AND item.deny_cid = '' AND item.deny_gid = '' AND item_private = 0 ) and owner_xchan in ( " . stream_perms_xchans(($observer) ? (PERMS_NETWORK|PERMS_PUBLIC) : PERMS_PUBLIC) . " )) $pub_sql ) OR owner_xchan = '%s') $item_normal $sql_extra - $suffix $pager_sql", + group by mid order by created desc $pager_sql", dbesc($sys['xchan_hash']) ); } + if($r) { + $str = ids_to_querystr($r,'item_id'); + $r = q("select *, id as item_id from item where id in ( " . $str . ") "); + } } else { $r = array(); } + + + + } if($r) { |