Skip to content

Instantly share code, notes, and snippets.

@nimaai
Last active January 7, 2016 07:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nimaai/b37d076e868ea1301249 to your computer and use it in GitHub Desktop.
Save nimaai/b37d076e868ea1301249 to your computer and use it in GitHub Desktop.
-- BEST
-- "HashAggregate (cost=478.98..478.99 rows=1 width=67) (actual time=0.159..0.159 rows=1 loops=1)"
SELECT DISTINCT media_entries.*
FROM media_entries
INNER JOIN meta_data md1 ON (md1.media_entry_id = media_entries.id AND md1.string ILIKE '%Tigernase%')
INNER JOIN meta_data md2 ON md2.media_entry_id = media_entries.id
INNER JOIN meta_data_keywords ON meta_data_keywords.meta_datum_id = md2.id
INNER JOIN keywords ON meta_data_keywords.keyword_id = keywords.id AND keywords.term ILIKE '%greis%'
WHERE (media_entries.get_metadata_and_previews = TRUE
OR media_entries.responsible_user_id = '16ae30bc-8f4a-4aef-aafe-918ec1c8b03e'
OR EXISTS
(SELECT 1
FROM media_entry_user_permissions meup
WHERE ((meup.media_entry_id = media_entries.id
AND meup.get_metadata_and_previews = TRUE)
AND meup.user_id = '16ae30bc-8f4a-4aef-aafe-918ec1c8b03e'))
OR EXISTS
(SELECT 1
FROM media_entry_group_permissions megp
INNER JOIN groups ON groups.id = megp.group_id
INNER JOIN groups_users gu ON gu.group_id = groups.id
WHERE ((megp.media_entry_id = media_entries.id
AND megp.get_metadata_and_previews = TRUE)
AND gu.user_id = '16ae30bc-8f4a-4aef-aafe-918ec1c8b03e')));
-- Limit (cost=450.65..450.65 rows=1 width=67) (actual time=0.231..0.232 rows=1 loops=1)
SELECT media_entries.*
FROM (
SELECT media_entries.*
FROM media_entries
INNER JOIN meta_data ON meta_data.media_entry_id = media_entries.id
WHERE meta_data.meta_key_id = 'madek_core:title'
AND meta_data.string ILIKE '%Tigernase%' ) AS media_entries
INNER JOIN meta_data ON meta_data.media_entry_id = media_entries.id
INNER JOIN meta_data_keywords ON meta_data_keywords.meta_datum_id = meta_data.id
INNER JOIN keywords ON meta_data_keywords.keyword_id = keywords.id
AND keywords.term ILIKE '%greis%'
AND (media_entries.get_metadata_and_previews = TRUE
OR media_entries.responsible_user_id = '16ae30bc-8f4a-4aef-aafe-918ec1c8b03e'
OR EXISTS
(SELECT 1
FROM media_entry_user_permissions meup
WHERE ((meup.media_entry_id = media_entries.id
AND meup.get_metadata_and_previews = TRUE)
AND meup.user_id = '16ae30bc-8f4a-4aef-aafe-918ec1c8b03e'))
OR EXISTS
(SELECT 1
FROM media_entry_group_permissions megp
INNER JOIN groups ON groups.id = megp.group_id
INNER JOIN groups_users gu ON gu.group_id = groups.id
WHERE ((megp.media_entry_id = media_entries.id
AND megp.get_metadata_and_previews = TRUE)
AND gu.user_id = '16ae30bc-8f4a-4aef-aafe-918ec1c8b03e'
)))
ORDER BY media_entries.created_at ASC LIMIT 10
OFFSET 0;
-- Nested Loop (cost=1615.32..27255.55 rows=1 width=67) (actual time=9.251..61.326 rows=1 loops=1)
SELECT media_entries.*
FROM media_entries
WHERE
EXISTS
(SELECT 1
FROM meta_data
WHERE meta_data.meta_key_id = 'madek_core:title'
AND meta_data.string ILIKE '%Tigernase%'
AND meta_data.media_entry_id = media_entries.id )
AND EXISTS
(SELECT 1
FROM meta_data
INNER JOIN meta_data_keywords ON meta_data_keywords.meta_datum_id = meta_data.id
INNER JOIN keywords ON meta_data_keywords.keyword_id = keywords.id
AND keywords.term ILIKE '%greis%'
and meta_data.media_entry_id = media_entries.id )
AND (media_entries.get_metadata_and_previews = TRUE
OR media_entries.responsible_user_id = '16ae30bc-8f4a-4aef-aafe-918ec1c8b03e'
OR EXISTS
(SELECT 1
FROM media_entry_user_permissions meup
WHERE ((meup.media_entry_id = media_entries.id
AND meup.get_metadata_and_previews = TRUE)
AND meup.user_id = '16ae30bc-8f4a-4aef-aafe-918ec1c8b03e'))
OR EXISTS
(SELECT 1
FROM media_entry_group_permissions megp
INNER JOIN groups ON groups.id = megp.group_id
INNER JOIN groups_users gu ON gu.group_id = groups.id
WHERE ((megp.media_entry_id = media_entries.id
AND megp.get_metadata_and_previews = TRUE)
AND gu.user_id = '16ae30bc-8f4a-4aef-aafe-918ec1c8b03e')));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment