<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
pre
{mso-style-priority:99;
mso-style-link:"HTML con formato previo Car";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
mso-fareast-language:CA;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman",serif;
mso-fareast-language:CA;}
span.EstiloCorreo19
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.HTMLconformatoprevioCar
{mso-style-name:"HTML con formato previo Car";
mso-style-priority:99;
mso-style-link:"HTML con formato previo";
font-family:Consolas;
mso-fareast-language:EN-US;}
span.EstiloCorreo22
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="CA" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span lang="ES" style="color:#1F497D">Even,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="ES" style="color:#1F497D">thanks for the answer.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="ES" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">I saw it recently in the list but I didn’t relate with that!<br>
Thanks. I understand! I think it’s a good idea have al sealed before. And as you can remember I would seal the number of features also :p<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Thanks :)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="mso-fareast-language:CA">De:</span></b><span lang="EN-US" style="mso-fareast-language:CA"> Even Rouault <even.rouault@spatialys.com>
<br>
<b>Enviado el:</b> dimecres, 20 de desembre de 20</span><span lang="ES" style="mso-fareast-language:CA">23 21:06<br>
<b>Para:</b> Abel Pau <a.pau@creaf.uab.cat>; gdal-dev@lists.osgeo.org<br>
<b>Asunto:</b> Re: [gdal-dev] How to assign a new eType to a feature<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>Abel,<span style="font-size:12.0pt;mso-fareast-language:CA"><o:p></o:p></span></p>
<p>You should not change the type of field types (or the number of fields) once GetLayerDefn() has been called on the layer, after which the layer definition must be considered as sealed (cf recent RFC
<a href="https://gdal.org/development/rfc/rfc97_feature_and_fielddefn_sealing.html">
https://gdal.org/development/rfc/rfc97_feature_and_fielddefn_sealing.html</a>), until potential calls from the user to CreateField()/DeleteField()/etc. which might unseal it. Changing field types during feature iteration would break expectations from users
of the GDAL API (included GDAL tools such as ogr2ogr) and could cause nasty crashing bugs.<o:p></o:p></p>
<p>If you don't have a way to figure out the field type by looking at the header of your dataset, then you need to do a first reading pass to establish it (like done for example in the GeoJSON driver)<o:p></o:p></p>
<p>Even<o:p></o:p></p>
<div>
<p class="MsoNormal">Le 20/12/2023 à 20:58, Abel Pau via gdal-dev a écrit :<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span lang="EN-US">HI,</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">In the GetNewtRawFeature() I am processing all fields and a previusly
</span><span style="font-size:9.5pt;font-family:Consolas;color:darkslategray">OFTString type
</span><span lang="EN-US">field has to be changed into </span><span style="font-size:9.5pt;font-family:Consolas;color:darkslategray">OFTStringList
</span><span lang="EN-US">type. After that, It’ll be probably a </span><span style="font-size:9.5pt;font-family:Consolas;color:darkslategray">OFTString
</span><span lang="EN-US">again.</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">I try to do that:</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">poFeature->GetDefnRef()->GetFieldDefn(nIField)->SetType(</span><span style="font-size:9.5pt;font-family:Consolas;color:darkslategray">OFTStringList</span><span style="font-size:9.5pt;font-family:Consolas;color:black">);</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">And when the destination driver gets it, the
</span><span style="font-size:9.5pt;font-family:Consolas;color:darkslategray">OFTStringList
</span><span lang="EN-US">is again </span><span style="font-size:9.5pt;font-family:Consolas;color:darkslategray">OFTString.
</span><span lang="EN-US">I’ve lost the property by magic.</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">The line that does that is </span><span style="font-size:9.5pt;font-family:Consolas;color:black">poDstFeature</span><span style="font-size:9.5pt;font-family:Consolas;color:teal">-></span><span style="font-size:9.5pt;font-family:Consolas;color:black">SetFDefnUnsafe(poDstFDefn);
</span><span lang="EN-US">in Translate() line5746 (probably).</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">So, there is a good way to change the type I’ve assigned in the constructor by the same but a “List” instead in the GetNextRawFeature()?</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">Sorry for asking a question (again) but I’ve been a long time trying to figure out what happens!</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">Thanks!</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:CA"> </span><o:p></o:p></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="0" style="width:375.0pt">
<tbody>
<tr>
<td width="310" style="width:232.5pt;padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:11.5pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA">Abel Pau Garcia</span></b><span style="font-size:12.0pt;mso-fareast-language:CA">
</span><o:p></o:p></p>
<p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#669900;mso-fareast-language:CA">GIS developer</span></b><o:p></o:p></p>
</td>
<td width="190" valign="top" style="width:142.5pt;padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:12.0pt;mso-fareast-language:CA"><img border="0" width="134" height="50" style="width:1.3958in;height:.5208in" id="Imagen_x0020_8" src="cid:image001.png@01DA338E.87B74B00" alt="https://www.creaf.cat/sites/default/files/creaf-signature.png"></span><o:p></o:p></p>
</td>
</tr>
<tr>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA"><a href="mailto:a.pau@creaf.uab.cat"><b><span style="color:blue">a.pau@creaf.uab.cat</span></b></a></span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA"><a href="https://teams.microsoft.com/l/chat/0/0?users=a.pau@creaf.uab.cat"><b><span style="color:blue">Let's chat on Teams!</span></b></a></span><o:p></o:p></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA">Tel. +34 934814277</span></b><o:p></o:p></p>
</td>
<td width="190" valign="top" style="width:106.5pt;padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:12.0pt;mso-fareast-language:CA"><img border="0" width="105" height="50" style="width:1.0937in;height:.5208in" id="Imagen_x0020_7" src="cid:image002.png@01DA338E.87B74B00" alt="https://www.creaf.cat/sites/default/files/so-en-signature.png"></span><o:p></o:p></p>
</td>
</tr>
<tr>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span lang="ES"><a href="https://twitter.com/CREAF_ecologia" target="_blank"><span lang="CA" style="font-size:12.0pt;mso-fareast-language:CA;text-decoration:none"><img border="0" width="17" height="17" style="width:.177in;height:.177in" id="Imagen_x0020_6" src="cid:image003.png@01DA338E.87B74B00" alt="https://www.creaf.cat/sites/default/files/twitter-icon-signature.png"></span></a><a href="https://www.linkedin.com/company/1363052?trk=tyah&trkInfo=clickedVertical:company,clickedEntityId:1363052,idx:2-1-2,tarId:1465807877789,tas:creaf" target="_blank"><span lang="CA" style="font-size:12.0pt;mso-fareast-language:CA;text-decoration:none"><img border="0" width="17" height="17" style="width:.177in;height:.177in" id="Imagen_x0020_5" src="cid:image004.png@01DA338E.87B74B00" alt="https://www.creaf.cat/sites/default/files/linkedin-icon-signature.png"></span></a><a href="https://www.youtube.com/c/creafecologia" target="_blank"><span lang="CA" style="font-size:12.0pt;mso-fareast-language:CA;text-decoration:none"><img border="0" width="17" height="17" style="width:.177in;height:.177in" id="Imagen_x0020_4" src="cid:image005.png@01DA338E.87B74B00" alt="https://www.creaf.cat/sites/default/files/youtube-icon-signature.png"></span></a><a href="https://www.instagram.com/CREAF_ecologia/" target="_blank"><span lang="CA" style="font-size:12.0pt;mso-fareast-language:CA;text-decoration:none"><img border="0" width="17" height="17" style="width:.177in;height:.177in" id="Imagen_x0020_3" src="cid:image006.png@01DA338E.87B74B00" alt="https://www.creaf.cat/sites/default/files/instagram-icon-signature.png"></span></a></span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA"><a href="http://www.creaf.cat" target="_blank"><b><span style="color:#003300">www.creaf.cat</span></b></a><b> |
</b><a href="http://blog.creaf.cat" target="_blank"><b><span style="color:#003300">http://blog.creaf.cat</span></b></a></span><o:p></o:p></p>
</td>
<td valign="top" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:12.0pt;mso-fareast-language:CA"><img border="0" width="105" height="50" style="width:1.0937in;height:.5208in" id="Imagen_x0020_2" src="cid:image007.jpg@01DA338E.87B74B00" alt="https://www.creaf.cat/sites/default/files/uab_logo_signatura.png"></span><o:p></o:p></p>
</td>
</tr>
<tr>
<td colspan="2" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#003300;mso-fareast-language:CA">CREAF. Campus UAB. Edifici C. 08193 Bellaterra (Barcelona)</span><o:p></o:p></p>
</td>
</tr>
<tr>
<td colspan="2" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span style="font-size:8.5pt;font-family:"Arial",sans-serif;color:#999999;mso-fareast-language:CA"><br>
Before printing this electronic message, think about the environment.</span><o:p></o:p></p>
</td>
</tr>
<tr>
<td colspan="2" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:CA"><img border="0" width="500" height="6" style="width:5.2083in;height:.0625in" id="Imagen_x0020_1" src="cid:image008.jpg@01DA338E.87B74B00" alt="http://www.creaf.uab.cat/_signatura/line.gif"></span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="mso-fareast-language:CA"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="ES"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif;mso-fareast-language:CA"><br>
<br>
<o:p></o:p></span></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>gdal-dev mailing list<o:p></o:p></pre>
<pre><a href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a><o:p></o:p></pre>
<pre><a href="https://lists.osgeo.org/mailman/listinfo/gdal-dev">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a><o:p></o:p></pre>
</blockquote>
<pre>-- <o:p></o:p></pre>
<pre><a href="http://www.spatialys.com">http://www.spatialys.com</a><o:p></o:p></pre>
<pre>My software is free, but my time generally not.<o:p></o:p></pre>
</div>
</body>
</html>