Cita:
Iniciado por webness ERROR: wrong record type supplied in RETURN NEXT
CONTEXT: PL/pgSQL function "p_test" line 12 at return next
Este error es porque uno de los tipos de datos devueltos por la consulta no coincide con la definición que el pusiste en el listado "AS(country_name varchar ,
region_name varchar,
city_name varchar,
locale_name varchar,
locale_code integer,
socioeconomic_status varchar,
city_code integer,
total integer
);"
Puede que uno de los parámetros devuelto en la consulta no sea varchar, sino char o text, o que no sea integer sino bigint o smallint. Revisa bien
Te estás acercando.