SELECT
    u.id AS user_id
    , CASE
        WHEN p.must_be_domain THEN CONCAT(u.user_name, '@', d.name)
        ELSE u.user_name
    END AS login_name
    , COALESCE(d.is_primary, TRUE) AS is_primary
    , u.instance_id
FROM
    projections.login_names3_users AS u
LEFT JOIN LATERAL (
    SELECT
        must_be_domain
        , is_default
    FROM
        projections.login_names3_policies AS p
    WHERE
        (
            p.instance_id = u.instance_id
            AND NOT p.is_default
            AND p.resource_owner = u.resource_owner
        ) OR (
            p.instance_id = u.instance_id
            AND p.is_default
        )
    ORDER BY
        p.is_default -- custom first
    LIMIT 1
) AS p ON TRUE
LEFT JOIN 
    projections.login_names3_domains d
    ON 
        p.must_be_domain 
        AND u.resource_owner = d.resource_owner 
        AND u.instance_id = d.instance_id