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));