Hi, I agree with contextualizing on Query the various "canXYZ" methods in ContentFeatureSource, and agree on the implementation that deprecates the method without any parameter, having the new one delegate back. It fits just fine with the main branch.
However, I'm worried about the backports. We don't have precedent for deprecating bits of an important API like ContentFeatureSource on stable/maintenance too. What to do? Options: - Don't backport. It's what we normally do, don't think it's what Bjorn needs though. - Backport without deprecation? Would a warning in the javadoc that the method will be deprecated help any? Not sure anyone would read it. - Backport as is. That would be new, don't think it's fair to just deprecate stuff like that in stable (and more importantly, in maintenance) but I'm open to discussion. Cheers Andrea On Fri, Dec 15, 2023 at 1:10 PM Björn Harrtell <bjorn.harrt...@gmail.com> wrote: > Hi, > > TL;DR - I propose to add query as parameter for capability methods like > canOffset in ContentFeatureSource to allow native optimization to be > implemented for specific categories of queries. See JIRA issue at (1). > > Longer story, > > I recently discovered that fetching larger datasets from static files like > FlatGeobuf (and presumably Shapefile?) using paged access (startIndex > offset) is not optimal and will result in "full scans" on each request. > > Currently a datastore must either provide native implementation for all > cases or none based on the boolean answer for a capability. This works fine > for flexible storages like databases and the like which can support these > things generally. However, fx. FlatGeobuf can only support offset in > certain circumstances based on the actual query. For example, it can > support offset on queries for the full dataset without any filtering or > custom ordering but it cannot support offset in combination with an > attribute filter. > > To be able to optimize the queries it can handle it would therefore in > this case be useful to be able implement capabilities so that the answer > can depend on the actual query. > > There has been some informal discussion on the naming sensibility of this > and I suppose there could be an issue that this removes the ability for a > data store to generally advertise that it can do something generally > without supplying an actual query. > > See proposed implementation at (2). > > 1) https://osgeo-org.atlassian.net/browse/GEOT-7509 > 2) https://github.com/geotools/geotools/pull/4593 > > Regards, > Björn Harrtell > _______________________________________________ > GeoTools-Devel mailing list > GeoTools-Devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/geotools-devel > -- Regards, Andrea Aime == GeoServer Professional Services from the experts! Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions Group phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 https://www.geosolutionsgroup.com/ http://twitter.com/geosolutions_it ------------------------------------------------------- Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail
_______________________________________________ GeoTools-Devel mailing list GeoTools-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel