Está utilizando DROP con la opción CASCADE. Por lo tanto, cualquier eliminación de tablas que tengan integridad referencial también eliminará la tabla secundaria asociada con la tabla principal.
Para solucionar si esto es realmente lo que está sucediendo, antes de ejecutar su código, tome una instantánea de las tablas existentes con su OID (creo que pg_tables o pg_relations deberían tener esta información). Ejecute el código y verifique el OID del mensaje de error con la instantánea del nombre de la tabla.
Editar:podría deberse a cómo los planes se almacenan en caché en PostgreSQL (por lo tanto, en Redshift) para las funciones. Este es un error documentado hasta la versión 8.2, por lo que es posible que desee buscar una solución. El plan se almacenará en caché de acuerdo con la primera ejecución de la función, pero para la segunda ejecución, algunos de los objetos habrán obtenido nuevos OID debido a que se recrearon.http://merlinmoncure.blogspot.ie/2007/09/as-previously-stated-postgresql-8.html
http://www.postgresql.org/message-id/example @sqldat.com