<br><div style="visibility: hidden; display: inline;" id="avg_ls_inline_popup"></div><style type="text/css">#avg_ls_inline_popup {  position:absolute;  z-index:9999;  padding: 0px 0px;  margin-left: 0px;  margin-top: 0px;  width: 240px;  overflow: hidden;  word-wrap: break-word;  color: black;  font-size: 10px;  text-align: left;  line-height: 13px;}</style><br>
<div class="gmail_quote">2010/7/30 Frank Warmerdam <span dir="ltr">&lt;<a href="mailto:warmerdam@pobox.com">warmerdam@pobox.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><br></div>
I do not agree with applications directly changing the OGRFieldDefn, even<br>
if ultimately the flag is stored here.  There needs to be a virtual method<br>
on the OGRLayer (IMHO) so that drivers have an opportunity to hook the<br>
method to do something special when the list of desired fields changes.<br>
<br></blockquote><div><br>I agree with this approach if I understood correctly, that the flags would be stored in OGRFieldDefn/OGRFeatueDefn and would be set by a single virtual method in  OGRLayer which could continue to be:<br>
<br><pre class="wiki">virtual OGRErr OGRLayer::SetIgnoredFields( const char **papszFields );<br></pre><br></div></div>With the assumption that the fields are identified by name and not by the position in the array.<br><br>
<br>Best regards,<br><br>Tamas<br><br>