La subconsulta PostgreSQL con error de sintaxis da un resultado válido

¿Que está sucediendo aquí?

Tengo dos tablas, test1 y test2:

create table test1 (id1 int4 primary key);
create table test2 (id2 int4 primary key);

Como era de esperar, esta consulta:

select id1 from test2;

produce un error de sintaxis:

ERROR:  column "id1" does not exist
LINE 1: select id1 from test2;

Sin embargo, cuando intento ejecutar esta consulta:

select * from test1 where id1 in (select id1 from test2);

PostgreSQL no se queja, ejecuta la consulta y me da:

 id1
-----
(0 rows)

¿Hay alguna lógica en esto? ¿O debería presentar un informe de error?

Respuestas a la pregunta(1)

Su respuesta a la pregunta