select distinct
       i.identity_public_id
       , s.created_at
       , s.expired_at
       , s.revoked_at
from session  s
join identity i using (identity_id)
where (($1 is null) or (s.token_hash = $1))
and (($2 is null) or (i.identity_public_id = $2))
and (($3 is null) or (s.expired_at > $3))
and ((revoked_at is null) or ($4 is null) or (s.revoked_at > $4));
