Good point.
The problematic code is here:
https://github.com/geoserver/geoserver/blob/master/src/wms/src/main/java/org/geoserver/wms/WMS.java#L1166
It's not clear to me whether the WMS spec imposes particular semantics on
the intersection test, or whether different dimensions require different
semantics (e.g. TIME vs ELEVATION).
On Wed, Dec 4, 2013 at 1:57 AM, Christian Mueller <
[email protected]> wrote:
> Hi
>
> (? >= VALID_START AND (? < VALID_END OR VALID_END IS NULL))
>
> will not hurt DB2.
>
> The important thing is to switch to the closed/open semantics, otherwise
> the system will not work correctly. I hope this is possible.
>
> Cheers
> Christian
>
>
>
> On Tue, Dec 3, 2013 at 6:51 PM, Martin Davis <[email protected]> wrote:
>
>> Sounds like a good plan to me, if Christian and Ian are in accord.
>>
>>
>> On Tue, Dec 3, 2013 at 9:29 AM, Andrea Aime <[email protected]
>> > wrote:
>>
>>> On Mon, Dec 2, 2013 at 11:47 PM, Martin Davis <[email protected]>wrote:
>>>
>>>> Further to this issue, there's good news and bad news.
>>>>
>>>> The good news is that including the TIME= parameter eliminates the
>>>> error, and appears to work *as designed*. (Although it would be nice to be
>>>> able to omit the TIME= parameter and have some sensible default in place to
>>>> avoid the error. Perhaps the default could be TIME=<current time> ?)
>>>>
>>>> The bad news is that the temporal query emitted by GeoServer does not
>>>> match the temporal semantics of Oracle, and thus does not return enough
>>>> data. For a query of a time instant:
>>>>
>>>> GeoServer emits: SELECT ... WHERE ((? >= VALID_START AND ? <=
>>>> VALID_END) AND SDO_FILTER(... )
>>>>
>>>> As I mentioned before, Oracle uses a closed-open period model, with
>>>> VALID-END = NULL representing an open period. Therefore to return all
>>>> records current at the given time the query should be:
>>>>
>>>> SELECT ... WHERE ((? >= VALID_START AND (? <= VALID_END OR VALID_END
>>>> IS NULL) AND SDO_FILTER(... )
>>>>
>>>
>>> This filter is actually written as an OGC filter somewhere in the WMS
>>> module (WMS class, buildDimensionFilter method), adding an extra to it
>>> would be easy.
>>> DB2 should not break because of the extra condition right? I mean, the
>>> validation should be done on inserts/updates, but now on the
>>> queries being performed on the data, or am I missing something?
>>>
>>> As far as I remember Ian added support for time periods in GeoServer
>>> vector data, would be useful to also hear
>>> his perspective on this (maybe there was a reason to setup the code to
>>> work on closed periods only?)
>>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Rapidly troubleshoot problems before they affect your business. Most IT
>> organizations don't have a clear picture of how application performance
>> affects their revenue. With AppDynamics, you get 100% visibility into your
>> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics
>> Pro!
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
>> _______________________________________________
>> Geoserver-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>>
>>
>
>
> --
> DI Christian Mueller MSc (GIS), MSc (IT-Security)
> OSS Open Source Solutions GmbH
>
>
------------------------------------------------------------------------------
Sponsored by Intel(R) XDK
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users