You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Antonio Gallardo <ag...@agsoftware.dnsalias.com> on 2002/12/26 04:01:11 UTC

Help with

Hi!

I am trying to make use of <esql:more-results> in a simple PostgreSQL
database page using XSP. I am using Cocoon 2.1 CVS (today - 25-Dic-02 at
night CST). My problem is that the <esql:more-results> is not working. I
know already there are more than 50 registers of the database that can be
retrieved.

<snip>
<esql:execute-query>
  <esql:query>
    <esql:use-limit-clause/>
    <esql:skip-rows>1</esql:skip-rows>
    <esql:max-rows>10</esql:max-rows>
    <esql:results>
      <table><header-stuff/>
        <esql:row-results>
          <esql:previous-results>previous rows</esql:previous-results>
          <esql:more-results>more rows</esql:more-results>
          <td><esql:get-string column="name"/></td>
        </esql:row-results>
      </table>
    </esql:results>
  </esql:query>
</snip>

The point is: everything works well but the more-results is not working no
matter if you put it as descendant of <esql:results> or <esql:row-results>

My database is PostgreSQL 7.2 on Red Hat Linux 7.2

Please help me.

Regards,

Antonio Gallardo



---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail:     <co...@xml.apache.org>
For additional commands, e-mail:   <co...@xml.apache.org>


Re: Change in for postgresql

Posted by Antonio Gallardo <ag...@agsoftware.dnsalias.com>.
Thanks! :-)

Antonio

Torsten Curdt dijo:
>> This is why I started thinking about this issue and suggested the
>> workaround. I think the solutions is not too ugly because is better to
>> get 5 rows in a resultset than 8,000 or more, just to get the row
>> number 5 and trigger the  tag.
>
>
> Thanks for reporting, Antonio.
>
> I've had a closer look. I think you are right. It's not too bad.
>
> If one uses the esql:row-count tag (which is an additional count query)
> it wouldn't be necessary to get another row because we know about the
> total number rows of the result. But since I don't wanna force to have a
>  count query for everyone using the more-results tag I think we are
> better off with the additional row - as you proposed.
>
> I added this to the javadocs and all the different database query
> implementations. Please crosscheck and report back if it works for you.
> --
> Torsten
>
>
> --------------------------------------------------------------------- To
> unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Re: Change in for postgresql

Posted by Torsten Curdt <tc...@dff.st>.
> This is why I started thinking about this issue and suggested the
> workaround. I think the solutions is not too ugly because is better to get
> 5 rows in a resultset than 8,000 or more, just to get the row number 5 and
> trigger the  tag.


Thanks for reporting, Antonio.

I've had a closer look. I think you are right. It's not too bad.

If one uses the esql:row-count tag (which is an additional count query) 
it wouldn't be necessary to get another row because we know about the 
total number rows of the result. But since I don't wanna force to have a 
count query for everyone using the more-results tag I think we are 
better off with the additional row - as you proposed.

I added this to the javadocs and all the different database query 
implementations. Please crosscheck and report back if it works for you.
--
Torsten


---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Re: Change in for postgresql

Posted by Antonio Gallardo <ag...@agsoftware.dnsalias.com>.
Hi Torsten:


I am also using:

<esql:use-limit-clause/>
<esql:skip-rows>1</esql:skip-rows>
<esql:max-rows>4</esql:max-rows>

You have no way to trigger the <esql:more-result> tag.

Currently in my test DB on PostgreSQL there are more that 8,000 rows and
this does not trigger the <esql:more-results> tag. As you can see I setted
the <esql:maxrows> to 4.

This is why I started thinking about this issue and suggested the
workaround. I think the solutions is not too ugly because is better to get
5 rows in a resultset than 8,000 or more, just to get the row number 5 and
trigger the <esql:more-results> tag.

Regards,

Antonio Gallardo.

Torsten Curdt dijo:
> I must have missed you previous posts... :-/
>
> <snip/>
>
>> to:
>>   if (getMaxRows() > -1) sb.append(" LIMIT ").append(getMaxRows()+1);
>>
>> that way, when we will request maxrows=4 the code will limit the query
>> to 5 (4+1) and there will be another row that will trigger the
>> <esql:more-results> tag.
>
> Hm... this sounds like an very ugly work around. We better check the
> loop and the more-results condition.
>
> <snip/>
>
>> > I was checking the code behind esql. I think the problem is related
>> to the new LIMT OFFSET in the Query:
>> >
>> > If we set the limit of returned rows the database will return in the
>> recordset only the numbers of rows that we requested with the LIMIT
>> keyword. That means that we cannot know if there are more rows. XSP
>> does not know it too and then the <esql:more-results> do nothing.
>
> This shouldn't be a problem since we (already) can get the total number
> of rows with a count query. (see the query classes)
>
> I'll have a look...
> --
> Torsten
>
>
> --------------------------------------------------------------------- To
> unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Re: Change in for postgresql

Posted by Torsten Curdt <tc...@dff.st>.
I must have missed you previous posts... :-/

<snip/>

> to:
>   if (getMaxRows() > -1) sb.append(" LIMIT ").append(getMaxRows()+1);
>
> that way, when we will request maxrows=4 the code will limit the query to
> 5 (4+1) and there will be another row that will trigger the
> <esql:more-results> tag.

Hm... this sounds like an very ugly work around. We better check the
loop and the more-results condition.

<snip/>

> > I was checking the code behind esql. I think the problem is related to
> > the new LIMT OFFSET in the Query:
> >
> > If we set the limit of returned rows the database will return in the
> > recordset only the numbers of rows that we requested with the LIMIT
> > keyword. That means that we cannot know if there are more rows. XSP does
> > not know it too and then the <esql:more-results> do nothing.

This shouldn't be a problem since we (already) can get the total number
of rows with a count query. (see the query classes)

I'll have a look...
--
Torsten


---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Change in for postgresql

Posted by Antonio Gallardo <ag...@agsoftware.dnsalias.com>.
Hi!

I thinked about the problem of non-working <esql:more-results> tag with
PostgreSQL and the easy way to resolve this problem is to change in
PostgresEsqlQuery.java in line 85 from:


  if (getMaxRows() > -1) sb.append(" LIMIT ").append(getMaxRows());

to:

  if (getMaxRows() > -1) sb.append(" LIMIT ").append(getMaxRows()+1);

that way, when we will request maxrows=4 the code will limit the query to
5 (4+1) and there will be another row that will trigger the
<esql:more-results> tag.

Please review this little change.

Thanks in advance,

Antonio Gallardo

Antonio Gallardo dijo:
> Hi:
>
> I was checking the code behind esql. I think the problem is related to
> the new LIMT OFFSET in the Query:
>
> If we set the limit of returned rows the database will return in the
> recordset only the numbers of rows that we requested with the LIMIT
> keyword. That means that we cannot know if there are more rows. XSP does
> not know it too and then the <esql:more-results> do nothing.
>
> I thinked that we can change this because one of the use of the
> <esql:more-results> tag is pagination. If we cannot know if there are
> more rows then we cannot make use of the "previous page" and "next page"
> approach.
>
> I hope you will resolve this issue or please tell us how to resolve
> this.
>
> Thanks in advance,
>
> Antonio Gallardo
>
>
>
> Antonio Gallardo dijo:
>> Hi!
>>
>> I am trying to make use of <esql:more-results> in a simple PostgreSQL
>> database page using XSP. I am using Cocoon 2.1 CVS (today - 25-Dic-02
>> at night CST). My problem is that the <esql:more-results> is not
>> working. I know already there are more than 50 registers of the
>> database that can be retrieved.
>>
>> <snip>
>> <esql:execute-query>
>>   <esql:query>
>>     <esql:use-limit-clause/>
>>     <esql:skip-rows>1</esql:skip-rows>
>>     <esql:max-rows>10</esql:max-rows>
>>     <esql:results>
>>       <table><header-stuff/>
>>         <esql:row-results>
>>           <esql:previous-results>previous rows</esql:previous-results>
>> <esql:more-results>more rows</esql:more-results>
>>           <td><esql:get-string column="name"/></td>
>>         </esql:row-results>
>>       </table>
>>     </esql:results>
>>   </esql:query>
>> </snip>
>>
>> The point is: everything works well but the more-results is not
>> working no matter if you put it as descendant of <esql:results> or
>> <esql:row-results>
>>
>> My database is PostgreSQL 7.2 on Red Hat Linux 7.2
>>
>> Please help me.
>>
>> Regards,
>>
>> Antonio Gallardo
>>
>>
>>
>> ---------------------------------------------------------------------
>> Please check that your question  has not already been answered in the
>> FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>
>>
>> To unsubscribe, e-mail:     <co...@xml.apache.org>
>> For additional commands, e-mail:   <co...@xml.apache.org>
>
>
>
>
> ---------------------------------------------------------------------
> Please check that your question  has not already been answered in the
> FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>
>
> To unsubscribe, e-mail:     <co...@xml.apache.org>
> For additional commands, e-mail:   <co...@xml.apache.org>




---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail:     <co...@xml.apache.org>
For additional commands, e-mail:   <co...@xml.apache.org>


Cocoon can not be cached by Squid proxy server.

Posted by Bv Cc <bv...@hotmail.com>.
Hi all

I installed Cocoon on my Pertium 600 machine, OS is Linux. I also setup a
Squid transparent proxy server for caching documents.
But it seems Cocoon server does not provide "last modified" date in http
resposed header,
so Squid can not do cache.
What can I do?

thank you very much in advance.



---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail:     <co...@xml.apache.org>
For additional commands, e-mail:   <co...@xml.apache.org>


Change in for postgresql

Posted by Antonio Gallardo <ag...@agsoftware.dnsalias.com>.
Hi!

I thinked about the problem of non-working <esql:more-results> tag with
PostgreSQL and the easy way to resolve this problem is to change in
PostgresEsqlQuery.java in line 85 from:


  if (getMaxRows() > -1) sb.append(" LIMIT ").append(getMaxRows());

to:

  if (getMaxRows() > -1) sb.append(" LIMIT ").append(getMaxRows()+1);

that way, when we will request maxrows=4 the code will limit the query to
5 (4+1) and there will be another row that will trigger the
<esql:more-results> tag.

Please review this little change.

Thanks in advance,

Antonio Gallardo

Antonio Gallardo dijo:
> Hi:
>
> I was checking the code behind esql. I think the problem is related to
> the new LIMT OFFSET in the Query:
>
> If we set the limit of returned rows the database will return in the
> recordset only the numbers of rows that we requested with the LIMIT
> keyword. That means that we cannot know if there are more rows. XSP does
> not know it too and then the <esql:more-results> do nothing.
>
> I thinked that we can change this because one of the use of the
> <esql:more-results> tag is pagination. If we cannot know if there are
> more rows then we cannot make use of the "previous page" and "next page"
> approach.
>
> I hope you will resolve this issue or please tell us how to resolve
> this.
>
> Thanks in advance,
>
> Antonio Gallardo
>
>
>
> Antonio Gallardo dijo:
>> Hi!
>>
>> I am trying to make use of <esql:more-results> in a simple PostgreSQL
>> database page using XSP. I am using Cocoon 2.1 CVS (today - 25-Dic-02
>> at night CST). My problem is that the <esql:more-results> is not
>> working. I know already there are more than 50 registers of the
>> database that can be retrieved.
>>
>> <snip>
>> <esql:execute-query>
>>   <esql:query>
>>     <esql:use-limit-clause/>
>>     <esql:skip-rows>1</esql:skip-rows>
>>     <esql:max-rows>10</esql:max-rows>
>>     <esql:results>
>>       <table><header-stuff/>
>>         <esql:row-results>
>>           <esql:previous-results>previous rows</esql:previous-results>
>> <esql:more-results>more rows</esql:more-results>
>>           <td><esql:get-string column="name"/></td>
>>         </esql:row-results>
>>       </table>
>>     </esql:results>
>>   </esql:query>
>> </snip>
>>
>> The point is: everything works well but the more-results is not
>> working no matter if you put it as descendant of <esql:results> or
>> <esql:row-results>
>>
>> My database is PostgreSQL 7.2 on Red Hat Linux 7.2
>>
>> Please help me.
>>
>> Regards,
>>
>> Antonio Gallardo
>>
>>
>>
>> ---------------------------------------------------------------------
>> Please check that your question  has not already been answered in the
>> FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>
>>
>> To unsubscribe, e-mail:     <co...@xml.apache.org>
>> For additional commands, e-mail:   <co...@xml.apache.org>
>
>
>
>
> ---------------------------------------------------------------------
> Please check that your question  has not already been answered in the
> FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>
>
> To unsubscribe, e-mail:     <co...@xml.apache.org>
> For additional commands, e-mail:   <co...@xml.apache.org>




---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Re: Help with

Posted by Antonio Gallardo <ag...@agsoftware.dnsalias.com>.
Hi:

I was checking the code behind esql. I think the problem is related to the
new LIMT OFFSET in the Query:

If we set the limit of returned rows the database will return in the
recordset only the numbers of rows that we requested with the LIMIT
keyword. That means that we cannot know if there are more rows. XSP does
not know it too and then the <esql:more-results> do nothing.

I thinked that we can change this because one of the use of the
<esql:more-results> tag is pagination. If we cannot know if there are more
rows then we cannot make use of the "previous page" and "next page"
approach.

I hope you will resolve this issue or please tell us how to resolve this.

Thanks in advance,

Antonio Gallardo



Antonio Gallardo dijo:
> Hi!
>
> I am trying to make use of <esql:more-results> in a simple PostgreSQL
> database page using XSP. I am using Cocoon 2.1 CVS (today - 25-Dic-02 at
> night CST). My problem is that the <esql:more-results> is not working. I
> know already there are more than 50 registers of the database that can
> be retrieved.
>
> <snip>
> <esql:execute-query>
>   <esql:query>
>     <esql:use-limit-clause/>
>     <esql:skip-rows>1</esql:skip-rows>
>     <esql:max-rows>10</esql:max-rows>
>     <esql:results>
>       <table><header-stuff/>
>         <esql:row-results>
>           <esql:previous-results>previous rows</esql:previous-results>
> <esql:more-results>more rows</esql:more-results>
>           <td><esql:get-string column="name"/></td>
>         </esql:row-results>
>       </table>
>     </esql:results>
>   </esql:query>
> </snip>
>
> The point is: everything works well but the more-results is not working
> no matter if you put it as descendant of <esql:results> or
> <esql:row-results>
>
> My database is PostgreSQL 7.2 on Red Hat Linux 7.2
>
> Please help me.
>
> Regards,
>
> Antonio Gallardo
>
>
>
> ---------------------------------------------------------------------
> Please check that your question  has not already been answered in the
> FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>
>
> To unsubscribe, e-mail:     <co...@xml.apache.org>
> For additional commands, e-mail:   <co...@xml.apache.org>




---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail:     <co...@xml.apache.org>
For additional commands, e-mail:   <co...@xml.apache.org>