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?