When exogenously-given pointers to another p_id are requested as targets (say, a user wants to have p_id_parent_1 to be part of her results to save a merge operation), we just return p_id_parent_1 from the input data directly.
When computing pointers endogenously, we only know the internal p_id. Because of that, we are raising fail_if__endogenous_p_id_among_targets as of #42.
This should not be hard to implement, but without a use case it seems unnecessary.