Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Evitar conflitos na nomeação da UDF - Amazon Redshift

Evitar conflitos na nomeação da UDF

Você pode evitar potenciais conflitos e resultados inesperados considerando suas convenções de nomenclatura de UDFs antes da implementação. Como os nomes de função podem ser sobrecarregados, eles podem colidir com nomes de função existentes e futuros do Amazon Redshift. Este tópico discute a sobrecarga e apresenta uma estratégia para evitar conflitos.

Sobrecarga de nomes de função

Uma função é identificada por seu nome e assinatura, que é o número de argumentos de entrada e tipos de dados dos argumentos. Duas funções no mesmo esquema podem ter o mesmo nome se tiverem assinaturas diferentes. Em outras palavras nomes de função podem ser sobrecarregados.

Quando você executa uma consulta, o mecanismo de consulta determina qual função deve ser chamada com base no número de argumentos fornecidos e nos tipos de dados dos argumentos. Você pode usar a sobrecarga para simular funções com um número variável de argumentos, até o limite permitido pelo comando CREATE FUNCTION.

Evitar conflitos com funções integradas do Amazon Redshift

Recomendamos que você nomeie todas as UDFs usando o prefixo f_. O Amazon Redshift reserva o prefixo f_ exclusivamente para UDFs e ao prefixar seus nomes de UDF com f_, você garante que seu nome de UDF não entrará em conflito com nenhum nome de função SQL integrado do Amazon Redshift existente ou futuro. Por exemplo, ao nomear uma nova UDF f_sum, você evita conflito com a função SUM do Amazon Redshift. Da mesma forma, se você nomear uma nova função f_fibonacci, evitará conflito se o Amazon Redshift adicionar uma função chamada FIBONACCI em uma versão futura.

Você pode criar uma UDF com o mesmo nome e assinatura de uma função SQL integrada existente do Amazon Redshift sem que o nome da função seja sobrecarregado se a UDF e a função integrada existirem em esquemas diferentes. Como as funções integradas existem no esquema de catálogo de sistema, pg_catalog, você pode criar uma UDF com o mesmo nome em outro esquema, tal como um esquema público ou definido pelo usuário. Em alguns casos, é possível chamar uma função que não está explicitamente qualificada com um nome de esquema. Em caso afirmativo, o Amazon Redshift pesquisa primeiro o esquema pg_catalog por padrão. Assim, uma função interna é executada antes de uma nova UDF com o mesmo nome.

Você pode alterar esse comportamento configurando o caminho de pesquisa para colocar pg_catalog no final. Se você fizer isso, suas UDFs tomem precedência sobre funções integradas, mas a prática pode causar resultados inesperados. A adoção de uma estratégia de nomeação exclusiva, tal como a utilização do prefixo reservado f_, é uma prática mais confiável. Para ter mais informações, consulte SET e search_path.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.