You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Gwyn Evans (JIRA)" <ji...@apache.org> on 2007/10/16 11:08:50 UTC

[jira] Commented: (WICKET-579) Need for DataTable not to require size

    [ https://issues.apache.org/jira/browse/WICKET-579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12535209 ] 

Gwyn Evans commented on WICKET-579:
-----------------------------------

I've not been working on the system that's my 'use case' for this issue for some time, but just to confirm that there is a use case, and for that system, it is a fairly major issue.  

The problem might be down to something wrong with the Oracle DB, but there's a number of years worth of transactions in a table and while the actual data selection SQL works immediately (even with the convoluted SQL you need to make sense of the Oracle Rownum), the "select count(*) from table where <condition>" can take many minutes to return - certainly much, much longer than I want to block up a thread on a production system.

On the other hand, using a fixed count just ends up with odd behaviour, i.e. only being able to get a limited number of records on 1 hand, while on the other, getting a tiny resultset of less than a page but with the toolbar saying "1 of 10" pages.


> Need for DataTable not to require size
> --------------------------------------
>
>                 Key: WICKET-579
>                 URL: https://issues.apache.org/jira/browse/WICKET-579
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket, wicket-extensions
>    Affects Versions: 1.3.0-beta1
>         Environment: 1.3 snapshot dated 4/25
>            Reporter: Kurt Roekle
>             Fix For: 1.3.0-final
>
>         Attachments: WICKET-578.patch, wicket-toolbar.jar
>
>
> Requiring a size query for the DataProvider passed to the DataTable hurts performance and scalability (not to mention, it wont be accurate in a system when a lot of updates/deletes are taking place).  I had hoped to be able to code just a new toolbar and DataProvider that would fix this, but I found I needed changes in DataTable and  AbstractPageableView due to the fact AbstractPageableView caches the row count.  I've made fixes for DataTable and AbstractPageableView and I've included one new interface that would be required.  I've also added an implementation of a new toolbar and DataProvider that will enable DataTable to work without size (I've also included a modified NavigationToolbar (and friends) that could be implemented instead of a new toolbar.  I've tested these changes with my limited knowledge of wicket and they seem to not break any existing code.  I currently can't give you a diff, but the line #'s that changed are as follows:
>   
> AbstractPageableView: 70,97,137,139,142-149
> DataTable: 120-122
> NavigationToolbar: 39,49,60,64,88,104
> PagingNavigator: 48,62-66,81,97,110
> NavigatorLabel: 42,54,74

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.