Recebi uma lista de nomes de colunas de outra equipe. Para garantir que todos os nomes de coluna de campo sejam válidos dentro de um esquema específico, eu os coloco em uma tabela temporária. Agora estou querendo ver se eles existem. Ao tentar entrar com information_schema.columns
, recebi os erros abaixo:
ERROR: 0A000: Specified types or functions (one per INFO message) not supported on Redshift tables.
Column "c.column_name" has unsupported type "information_schema.sql_identifier".
Column "a.*" has unsupported type "pg_attribute".
Column "t.*" has unsupported type "pg_type".
Function "format_type(oid,integer)" not supported.
Function "format_type(oid,integer)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Tentei lançar column_name
em diferentes tipos, mas não tive sorte. Alguém poderia aconselhar o que está errado e como posso atingir esse objetivo?
PG_TABLE_DEF
A Amazon considera as funções internas que
INFORMATION_SCHEMA.COLUMNS
estão usando funções Leader-Node Only . Em vez de ser sensato e redefinir o padronizadoINFORMATION_SCHEMA.COLUMNS
, a Amazon procurou definir sua própria versão proprietária. Para isso disponibilizaram outra funçãoPG_TABLE_DEF
que parece responder à mesma necessidade. Preste atenção à nota no centro sobre como adicionar o esquema aosearch_path
.Então, usando seu código de exemplo (reescrito para uso
NOT EXISTS
para maior clareza),Veja também,