Hi Marcin,

In these cases previously I've used a SQL trick to implement this, by setting a 
default value for the parameter (of a non-existent ID) and adding an OR clause 
to the SQL. E.g;

VALIDATION
    "default_pid" "-1"
..

WHERE (pid  = %pid% OR %pid% = -1)

If no value is provided then the SQL will be WHERE (pid  = -1 OR -1 = -1) which 
will always return True so all records will return.

Seth

--
web:https://geographika.net & https://mapserverstudio.net
twitter: @geographika

On Tue, Nov 28, 2023, at 3:32 PM, Marcin Niemyjski via MapServer-users wrote:
> Hello, 
> I would like to define several dimensions for filtering my WMS (Web Map 
> Service). They are based on a PostGIS table from which the service is 
> exposed. Here lies my problem because among the required information to 
> expose, I need to provide the following to the map server:
> 
>  • wms_dimensionlist: (Mandatory)
>  • wms_[dimensionname]_item: (Mandatory)
>  • wms_[dimensionname]_units: (Mandatory)
>  • wms_[dimensionname]_extent: (Mandatory)
>  • wms_[dimensionname]_default: (Optional)
> My issue arises because I want to filter my data based on the "product_id" 
> column containing a string. The table is large, so it's not possible to 
> provide all the ID values to "wms_productid_extent."
> 
> So, I thought about using 
> https://mapserver.org/cgi/runsub.html#table-of-contents, but the problem 
> arises with the implementation in the query. I would like to lead to a 
> situation where if I don't provide any filtering parameters (product_id, 
> cloud_cover), the entire data set is returned.
> 
> I do not want to use this:
> DATA 'geometry from (select * from mrc order by maxcc desc) where pid = 
> '%pid%' as subquerry using unique unique_id using srid=3857'
> because if I do not provide pid, my query wiill not work.
> 
> 
> 
> So, to summarize I'm looking for something like this:
> 
> DATA 'geometry from (select * from mrc order by maxcc desc) as subquerry 
> using unique unique_id using srid=3857'
> 
> VALIDATION
>     'maxCC' '^[0-9](1, 3)$'
>     'tile' '^.{6}$'
>     'pid' '^.{65}$'
> END
> 
> No default values (except time), if none is provided Mapserver does not 
> filter the data (except time).
> 
> Best,
> Marcin
> 
 
<https://outlook.office.com/bookwithme/user/6347c7def05a478ba013ae9486487...@cloudferro.com?anonymous&ep=signature>
> 
> Book time to meet with me 
> <https://outlook.office.com/bookwithme/user/6347c7def05a478ba013ae9486487...@cloudferro.com?anonymous&ep=signature>
> 
> _______________________________________________
> MapServer-users mailing list
> MapServer-users@lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-users
> 
_______________________________________________
MapServer-users mailing list
MapServer-users@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to