I have written a query as follows

select xmlelement(name accgroup, xmlforest(accgroupid, accgroupname,
xmlforest(refaccdocid,d, c) as doc))::xml AS xmldata
 from (select 'acc group' as accgroup, accgroups.accgroupid,
accgroups.accgroupname,  'docs' as doc, act.refaccdocid, sum(act.debit) as
d, sum(act.credit) as c from accgroups inner join accountingtransactions as
act on accgroups.accgroupid=act.accgroupid where accgroups.accgroupid
between 6050 and 6055 group by accgroups.accgroupid,
accgroups.accgroupname, act.refaccdocid limit 10) as b

which gives output I need in really fast way. (processing 1000 rows in
around 200 ms)
but when using query_to_xml with the same output is taking much higher time
(processing 1000 rows in around 4000 ms) .

Can you please give me the answer for this? Why query_to_xml is taking too
much time?

Regards,

CPKulkarni

On Sat, Jan 21, 2012 at 9:40 PM, Pavel Stehule <pavel.steh...@gmail.com>wrote:

> Hello
>
> there are others SQL/XML functions - with this function, you can
> create xml like you need
>
> http://www.postgresql.org/docs/9.1/static/functions-xml.html
>
> Regards
>
> Pavel Stehule
>
>
> 2012/1/21 c k <shreeseva.learn...@gmail.com>:
> > Hi friends,
> >
> > I am working with some xml exporting functionality of our application. I
> am
> > testing query_to_xml function supported in PostgreSQL 9.1. XML output
> should
> > be
> >  <accgroup>
> >   <accgroupid>1</accgroupid>
> >   <accgroupname>COMPANY ACCOUNT</accgroupname>
> >  <docs>
> >   <refaccdocid>638168</refaccdocid>
> >   <debit>10000.0000</debit>
> >   <credit>0.0000</credit>
> >  </docs>
> >  <docs>
> >  <refaccdocid>638168</refaccdocid>
> >   <debit>0.0000</debit>
> >   <credit>10000.0000</credit>
> >   </docs>
> > </accgroup>
> >
> > but the output is as follows:
> > <row>
> >   <accgroup>acc group</accgroup>
> >   <accgroupid>1</accgroupid>
> >   <accgroupname>COMPANY ACCOUNT</accgroupname>
> >   <docs>docs</docs>
> >   <refaccdocid>638168</refaccdocid>
> >   <debit>10000.0000</debit>
> >   <credit>0.0000</credit>
> > </row>
> >
> > <row>
> >   <accgroup>acc group</accgroup>
> >   <accgroupid>1</accgroupid>
> >   <accgroupname>COMPANY ACCOUNT</accgroupname>
> >   <docs>docs</docs>
> >   <refaccdocid>638168</refaccdocid>
> >   <debit>0.0000</debit>
> >   <credit>10000.0000</credit>
> > </row>
> >
> > How can grouping on specific columns can be done in result xml through
> using
> > query_to_xml?
> > I am expecting help from postgresql community as always.
> >
> > Thanks
> >
> > CPKulkarni
> >
>

Reply via email to