El registro devuelto por la función tiene columnas concatenadas

Tengo una tabla que almacena los cambios de cuenta a lo largo del tiempo. Necesito unir eso con otras dos tablas para crear algunos registros para un día en particular, si esos registros aún no existen.

Para facilitar las cosas (espero), he encapsulado la consulta que devuelve los datos históricos correctos en una función que toma una identificación de cuenta y el día.

Si ejecuto"Select * account_servicetier_for_day(20424, '2014-08-12')", Obtengo el resultado esperado (todos los datos devueltos por la función en columnas separadas). Si uso la función dentro de otra consulta, obtengo todas las columnas unidas en una:

("2014-08-12 14:20:37",hollenbeck,691,12129,20424,69.95,"2Mb/1Mb 20GB Limit",2048,1024,20.000)

Estoy usando "PostgreSQL 9.2.4 en x86_64-slackware-linux-gnu, compilado por gcc (GCC) 4.7.1, 64 bits".

Consulta:

Select
    '2014-08-12' As day, 0 As inbytes, 0 As outbytes, acct.username, acct.accountid, acct.userid,
    account_servicetier_for_day(acct.accountid, '2014-08-12')
From account_tab acct
Where acct.isdsl = 1
    And acct.dslservicetypeid Is Not Null
    And acct.accountid Not In (Select accountid From dailyaccounting_tab Where Day = '2014-08-12')
Order By acct.username

Función:

CREATE OR REPLACE FUNCTION account_servicetier_for_day(_accountid integer, _day timestamp without time zone) RETURNS setof account_dsl_history_info AS
$BODY$
DECLARE _accountingrow record;
BEGIN
  Return Query
  Select * From account_dsl_history_info
  Where accountid = _accountid And timestamp <= _day + interval '1 day - 1 millisecond'
  Order By timestamp Desc 
  Limit 1;
END;
$BODY$ LANGUAGE plpgsql;

Respuestas a la pregunta(2)

Su respuesta a la pregunta