Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Prevención de conflictos al dar nombre a las UDF

Modo de enfoque
Prevención de conflictos al dar nombre a las UDF - Amazon Redshift

Puede evitar resultados inesperados y conflictos potenciales si considera las convenciones para dar nombre a la User-Defined Scalar Function (UDF, Función escalar definida por el usuario) antes de la implementación. Como los nombres de las funciones pueden sobrecargarse, pueden confundirse con nombres de funciones de Amazon Redshift existentes y futuras. En este tema, se analiza la sobrecarga y se presenta una estrategia para evitar cualquier conflicto.

Sobrecarga de los nombres de función

Una función se identifica por su nombre y su firma, que es la cantidad de argumentos de entrada y los tipos de datos de los argumentos. Dos funciones del mismo esquema pueden tener el mismo nombre si tienen diferentes firmas. En otras palabras, los nombres de funciones pueden sobrecargarse.

Cuando se ejecuta una consulta, el motor de consultas determina qué función se debe llamar en función de la cantidad de argumentos proporcionados y los tipos de datos de esos argumentos. Puede utilizar la sobrecarga para simular funciones con una cantidad variable de argumentos, hasta el límite permitido por el comando CREATE FUNCTION.

Cómo evitar conflictos con las funciones integradas de Amazon Redshift

Recomendamos que los nombres que asigne a las UDF incluyan el prefijo f_. Amazon Redshift reserva el prefijo f_ exclusivamente para las UDF y, al utilizar el prefijo f_ en los nombres de las UDF, se asegura de que estos no entren en conflicto con los nombres de las funciones SQL futuras o existentes integradas de Amazon Redshift. Por ejemplo, si asigna el nombre f_sum a una UDF nueva, evitará conflictos con la función SUM de Amazon Redshift. De igual modo, si asigna el nombre f_fibonacci a una función nueva, evitará conflictos en el caso de que Amazon Redshift agregue una función llamada FIBONACCI en una versión futura.

Puede crear una UDF con el mismo nombre y la misma firma que una función SQL integrada de Amazon Redshift existente sin que se sobrecargue el nombre de la función, cada vez que la UDF y la función integrada existan en esquemas diferentes. Como las funciones integradas existen en el esquema de catálogo del sistema, pg_catalog, puede crear una UDF con el mismo nombre en otro esquema; por ejemplo, uno público o definido por el usuario. En algunos casos, es posible que llame a una función que no esté calificada explícitamente con un nombre de esquema. Si es así, Amazon Redshift busca primero el esquema pg_catalog de manera predeterminada. Por lo tanto, una función integrada se ejecuta antes que una UDF nueva con el mismo nombre.

Puede cambiar este comportamiento si configura la ruta de búsqueda de manera que coloque pg_catalog al final. Si lo hace, las UDF tendrán prioridad sobre las funciones integradas, pero esta práctica puede generar resultados inesperados. La adopción de una estrategia de nombres única, como el uso del prefijo reservado f_, es una práctica más confiable. Para obtener más información, consulte SET y search_path.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.