[GRASS-dev] GRASS 7: d.vect: layer=-1 default conflicts with where option

Glynn Clements glynn at gclements.plus.com
Tue Sep 6 01:20:35 EDT 2011


Markus Neteler wrote:

> > Making it support where= with all layers would require a substantial
> > re-write (and requires that you can come up with a single query which
> > works for all layers).
> 
> Sure but what I meant to say:
> 
> d.vect mylakes where="FTYPE IS NULL" type=area col=red
> 
> ... this works in GRASS 6

... even if the map has multiple layers. This should be considered a
bug in 6.x, IMHO.

> and fails in GRASS 7 since the default
> layer value is unsuitable. IMHO default values should work (as before).

Is layer 1 *genuinely* special? I.e. is there some reason why it
*should* be the default layer?

As it stands, the default behaviour of d.vect in 6.x is to display
*some* data without any indication that it isn't displaying all of it.

I can see an argument for silently selecting layer 1 *if* a map only
has one layer, although this is practically asking for people to write
scripts which can't be used on maps with more than one layer.

If a map has multiple layers, where= is given, and layer= is not
given, then an error seem preferable to silently producing
"incomplete" output.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list