Comment 11 for bug 1918145

Revision history for this message
Tyler Stachecki (tstachecki) wrote :

I was able to come up with one solution, which is to change the subquery from:

    SELECT
        networks.id AS networks_id FROM networks
    LEFT OUTER JOIN networkrbacs
        ON networks.id = networkrbacs.object_id
    WHERE
        networkrbacs.action = 'access_as_external' AND
        networkrbacs.target_tenant = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' OR
        networkrbacs.target_tenant = '*' OR
        networks.project_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' OR
        networkrbacs.action = 'access_as_shared' AND (
            networkrbacs.target_tenant = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' OR
            networkrbacs.target_tenant = '*'

to:

    SELECT
        networks.id AS networks_id FROM networks
    INNER JOIN networkrbacs
        ON networks.id = networkrbacs.object_id
    WHERE
        networkrbacs.action = 'access_as_external' AND
        networkrbacs.target_tenant = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' OR
        networkrbacs.target_tenant = '*' OR
        networkrbacs.action = 'access_as_shared' AND (
            networkrbacs.target_tenant = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' OR
            networkrbacs.target_tenant = '*'
    UNION
    SELECT
        networks.id AS networks_ID FROM networks
    WHERE
        networks.project_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

Thinking a little more to see if there is a better way... this feels a bit kludgy.