Saludos ,soy nuevo en Yii,estoy usando SGB Postgres ,tengo una funcion en postgres de la siguiente manera
CREATE OR REPLACE FUNCTION public.palabra_acepciones (
  id integer
)
RETURNS TABLE (
  acepcion varchar,
  tomo varchar
) AS
$body$
SELECT  acepcion.acepcion, obra_completa.tomo
FROM acepcion, obra_completa, palabra, obra, acepcion_obra
WHERE palabra.id=$1
AND acepcion.id_palabra=palabra.id
AND obra_completa.id=obra.id_obracompleta
AND acepcion.id=acepcion_obra.id_acepcion
AND obra.id=acepcion_obra.id_obra;
$body$
LANGUAGE 'sql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100 ROWS 1000;
no es nada complicado me retorna una tabla con dos columnas …ahora cuando ejecuto
$list=Yii::app()->db->createCommand("select palabra_acepciones('$id')")->queryAll();
$dataProvider=new CArrayDataProvider($list);//esto es básico ,sin muchas complicaciones
obtengo
CArrayDataProvider Object
(
    [keyField] => id
    [rawData] => Array
        (
            [0] => Array
                (
                    [palabra_acepciones] => ("lorem itsum dolor ",tomo1)
                )
        )
    [caseSensitiveSort] => 1
    [_id:private] => id
    [_data:private] => 
    [_keys:private] => 
    [_totalItemCount:private] => 
    [_sort:private] => 
    [_pagination:private] => 
    [_e:private] => 
    [_m:private] => 
)
como ven el rowData esta algo raro porque,no me esta devolviendo el array indexado por el nombre de la funcion y no por los campos de la funcion …
ahora si repito lo mismo pero de esta forma …
$list=Yii::app()->db->createCommand("select distinct acepcion.acepcion, obra_completa.tomo 
											FROM acepcion, obra_completa, palabra, obra, acepcion_obra
											WHERE palabra.id='$id'
											AND acepcion.id_palabra=palabra.id
											AND obra_completa.id=obra.id_obracompleta
											AND acepcion.id=acepcion_obra.id_acepcion
											AND obra.id=acepcion_obra.id_obra")->queryAll();
		$dataProvider=new CArrayDataProvider($list);  
obtengo como salida
CArrayDataProvider Object
(
    [keyField] => id
    [rawData] => Array
        (
            [0] => Array
                (
                    [acepcion] => lorem itsum dolor
                    [tomo] => tomo1
                )
        )
    [caseSensitiveSort] => 1
    [_id:private] => 
    [_data:private] => 
    [_keys:private] => 
    [_totalItemCount:private] => 
    [_sort:private] => 
    [_pagination:private] => 
    [_e:private] => 
    [_m:private] => 
)
que es lo que esta mal? la funcion en postgres? Uso el EMS Manager for Postgres y me devuelve la tabla bien…