sql >> Base de Datos >  >> RDS >> PostgreSQL

Postgres Crear vista con función de tipo de registro

En una inspección más cercana:solo necesita dividir el tipo de retorno compuesto de esta manera:

CREATE OR REPLACE VIEW "Sumario" AS 
SELECT ...
 (conta_relatos("Fatores"."ID", "Fatores_1"."ID")).*
FROM ...

Detalles sobre el acceso a tipos compuestos en el manual.

Aparte:recomendaría no usar paréntesis para sus JOIN a menos que sepa exactamente lo que está haciendo. Tal como lo tienes, estás forzando un plan de ejecución en particular. Lo más probable es que no sea el mejor.

El primer enfoque malinterpretó el mensaje de error

Cuando defines una función con RETURNS record (que evito cuando es posible), debe proporcionar una lista de definición de columna con cada llamada, como:

SELECT * FROM conta_relatos(1,2) AS f(col1 int, col2 text, ...)

Cito el manual aquí :

La solución limpia es cambiar su función para devolver un tipo bien conocido en lugar de un registro anónimo. Hay varias maneras de hacerlo, dependiendo de las circunstancias. Si tiene problemas para reescribir su función, abra otra pregunta.