Well the hint makes perfect sense … assume there are no duplicates unless that 
"hint" is there to advise you that:
a) there are duplicates
b) how to handle them

As for how to handle them - the query pulls back a feature with the same "id" … 
that happen to differ based on the contents of a join.

As for how to handle them - can we take a similar approach to how this is done 
for *time*?  


Can you handle this in the same way as we do for revisions 
(http://docs.geotools.org/latest/userguide/library/opengis/filter.html#identifer)?
 Which amounts to a compound key … sticking some magic on the end of the 
"normal" feature id.  While this key is structured for revisions we could just 
keep appending for the time / elevation / nD case.

As for deciding how a DISTINCT Hint works?
Q: Can we figure out the id of rows that are being brought into the join? Or 
just the randomly generated Fids?
Q: Or should we use the hint to supply column name(s) …
  
--  
Jody Garnett


On Wednesday, 24 April 2013 at 6:40 AM, Justin Deoliveira wrote:

> Hi all,
>  
> Recently a client of ours forwarded along an initial patch that added support 
> for a query hint to do "distinct" queries. In this context "distinct" implies 
> the same semantics as the "distinct" keyword as supported by most relational 
> databases. The end use case of which is to make GeoServer WMS capabilities 
> generation more efficient with regard to dimensions, and calculating the 
> distinct values of a time / elevation / custom dimension.  
>  
> In applying and cleaning up the patch I started to realize that there are a 
> few details making the patch not so straight forward as I originally thought. 
> So I would love to get some feedback before proceeding.  
>  
> So the basic idea is to add a new hint called "DISTINCT" (or something along 
> those lines) and then have the jdbc feature sources add it as a supported 
> hint. When the hint is set queries to the back end will use the "DISTINCT" 
> keyword. Pretty straight forward but a few questions I am struggling with.  
>  
> 1. Hint?
>  
> I guess the first question is whether a hint is the best way to approach 
> this. I am very open to alternatives here.
>  
> 2. Feature ids  
>  
> Second question is with regard to returned features from a distinct query. A 
> distinct query is really a derived result set in which any primary key of the 
> underlying table doesn't really make sense. However to return features we 
> need a fid. My thought here is just to return the default randomly generated 
> fid for features returned from a distinct query.   
>  
> Thanks folks. Thoughts and feedback welcome.
>  
> -Justin
>  
> --  
> Justin Deoliveira
> OpenGeo - http://opengeo.org
> Enterprise support for open source geospatial.
>  
>  
>  
> ------------------------------------------------------------------------------
> Try New Relic Now & We'll Send You this Cool Shirt
> New Relic is the only SaaS-based application performance monitoring service  
> that delivers powerful full stack analytics. Optimize and monitor your
> browser, app, & servers with just a few lines of code. Try New Relic
> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
>  
> _______________________________________________
> GeoTools-Devel mailing list
> [email protected] 
> (mailto:[email protected])
> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>  
>  


------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
_______________________________________________
GeoTools-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to