[
https://issues.apache.org/jira/browse/WICKET-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12793969#action_12793969
]
Juergen Donnerstag commented on WICKET-2618:
--------------------------------------------
Since 1.4.x releases must remain backwards compatible, no changes to the API
are permitted. It'll be considered for 1.5 than.
Question on your application: I assume you are not using something like <first>
<prev> 1 2 3 4 5 ... 10 <next> <last> in your app, since for that to work
you'll obviously need the size. Please consider that with your changes since
the implementation has to work many use cases.
> Don't call IDataProvider.size method when IDataProvider.iterator(first,
> count) returned the number of elements less than "count"
> --------------------------------------------------------------------------------------------------------------------------------
>
> Key: WICKET-2618
> URL: https://issues.apache.org/jira/browse/WICKET-2618
> Project: Wicket
> Issue Type: Improvement
> Components: wicket
> Affects Versions: 1.4.4
> Reporter: Michael Mikhulya
>
> IDataProvider has two mehtods:
> Iterator<? extends T> iterator(int first, int count);
> int size()
> which in many implementations do access to database.
> Normally iterator do SQL query with LIMIT and OFFSET, and size do SQL COUNT
> query.
> SQL COUNT is O(N) for most transactional databases (e.g. for postgresql) and
> so it is rather heavy.
> In some cases it is possible to avoid call to IDataProvider.size method.
> For example when "iterator" returned the number of elements less than
> acquired "count".
> This case appears in 90% in my application (whenever search is used normally
> number of found elements is less than number of elements on page).
> Also pgFouine shows me these queries as the most slow one. So I suggest to
> implement this optimization.
> First I though that appropriate place to implement it is AbstractPageableView
> class, but unfortunatelly not all IPageable classes extends this abstract
> class (for example DataTable doesn't do so).
> So I suggest to implement Decorator of IDataProvider and reuse it in
> DataViewBase, DataTable, ...
> If nobody see any problems with this suggestion I would like to implement it
> on my own.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.