[Pgsql-ayuda] Returns SETOF

From: Carmen Gloria Sepulveda Dedes <csepulveda(at)atichile(dot)com>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: [Pgsql-ayuda] Returns SETOF
Date: 2003-11-20 14:16:28
Message-ID: 3FBCCCBC.AB7A4278@atichile.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola nuevamente.

Tengo una funcion que retorna varias columnas de distintas tablas, por
lo tanto, he definido un tipo que se ajusta a las columnas que se
retornan:

CREATE TYPE X AS (
A tipo_a,
B tipo_b,
...etc ...
);

CREATE FUNCTION FX(INTEGER)
RETURNS SETOF X AS
'
SELECT T1.A as A,
T2.B as B ....
FROM T1, T2
WHERE ...
' LANGUAGE 'sql';

Lo distinto de la situacion real es que el select dento de FX
corresponde a la union de varios otros select (no lo incluyo por que es
muy largo).

Al ejecutar la funcion, me da el siguiente error:
ERROR: Query-specified return tuple and actual function return tuple do
not match

He revisado la definicion del tipo y es acorde con el resultado del
select. Hice una prueba, creando una tabla identica al tipo (tabla TX),
retornando en la funcion SETOF TX. Dentro de la funcion, hago primero
un delete a la tabla, luego un insert del select y finalmente un select
* from tx, y funciona bien. El problema es que esta solucion no es muy
util ya que agrega overhead innecesario.

Cual puede ser el problema??? El equipo esta con pgsql 7.3.3, redhat 9
... puede ser este el problema??, aunque este tambien probe en 7.3.4 con
solaris 9 y el resultado es el mismo.

Saludos y gracias,

CG

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2003-11-20 20:33:07 [Pgsql-ayuda] Super lento!!!Ayuda
Previous Message Victor Chavez 2003-11-20 14:07:52 Re: [Pgsql-ayuda] Duda con el Order by...