<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Abel,</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 class="moz-txt-link-freetext" 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.<br>
</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)</p>
<p>Even<br>
</p>
<div class="moz-cite-prefix">Le 20/12/2023 à 20:58, Abel Pau via
gdal-dev a écrit :<br>
</div>
<blockquote type="cite"
cite="mid:PAXPR07MB77751F0B4F233D2F29A4DB9EA296A@PAXPR07MB7775.eurprd07.prod.outlook.com">
<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-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;}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;}span.EstiloCorreo17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}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]-->
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">HI,<o:p></o:p></span></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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I try to do that:<o:p></o:p></span></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><span
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></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).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></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()?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></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!<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thanks!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:CA"
lang="EN-US"> </span><span style="mso-fareast-language:CA"><o:p></o:p></span></p>
<table class="MsoNormalTable" style="width:375.0pt" width="0"
cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="width:232.5pt;padding:0cm 0cm 0cm 0cm"
width="310">
<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><span style="mso-fareast-language:CA"><o:p></o:p></span></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><span
style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
<td style="width:142.5pt;padding:0cm 0cm 0cm 0cm"
width="190" valign="top">
<p class="MsoNormal" style="text-align:right"
align="right"><span
style="font-size:12.0pt;mso-fareast-language:CA"><img
style="width:1.3958in;height:.5208in"
id="Imagen_x0020_8"
src="cid:part1.cShhNAJw.kyt09oNc@spatialys.com"
alt="https://www.creaf.cat/sites/default/files/creaf-signature.png"
class="" width="134" height="50"></span><span
style="mso-fareast-language:CA"><o:p></o:p></span></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"
moz-do-not-send="true"><b><span style="color:blue">a.pau@creaf.uab.cat</span></b></a></span><span
style="mso-fareast-language:CA"><o:p></o:p></span></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"
moz-do-not-send="true"><b><span style="color:blue">Let's
chat on Teams!</span></b></a></span><span
style="mso-fareast-language:CA"><o:p></o:p></span></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><span
style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
<td style="width:106.5pt;padding:0cm 0cm 0cm 0cm"
width="190" valign="top">
<p class="MsoNormal" style="text-align:right"
align="right"><span
style="font-size:12.0pt;mso-fareast-language:CA"><img
style="width:1.0937in;height:.5208in"
id="Imagen_x0020_7"
src="cid:part2.MZM3CAYA.FIJNpk5b@spatialys.com"
alt="https://www.creaf.cat/sites/default/files/so-en-signature.png"
class="" width="105" height="50" border="0"></span><span
style="mso-fareast-language:CA"><o:p></o:p></span></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" moz-do-not-send="true"><span
style="font-size:12.0pt;color:#0563C1;mso-fareast-language:CA;text-decoration:none"
lang="CA"><img
style="width:.177in;height:.177in"
id="Imagen_x0020_6"
src="cid:part3.8pcoR0dd.4wiSkAz0@spatialys.com"
alt="https://www.creaf.cat/sites/default/files/twitter-icon-signature.png"
class="" width="17" height="17" border="0"></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" moz-do-not-send="true"><span
style="font-size:12.0pt;color:#0563C1;mso-fareast-language:CA;text-decoration:none"
lang="CA"><img
style="width:.177in;height:.177in"
id="Imagen_x0020_5"
src="cid:part4.43hSDNl3.PL4VjfPJ@spatialys.com"
alt="https://www.creaf.cat/sites/default/files/linkedin-icon-signature.png"
class="" width="17" height="17" border="0"></span></a><a
href="https://www.youtube.com/c/creafecologia"
target="_blank" moz-do-not-send="true"><span
style="font-size:12.0pt;color:#0563C1;mso-fareast-language:CA;text-decoration:none"
lang="CA"><img
style="width:.177in;height:.177in"
id="Imagen_x0020_4"
src="cid:part5.wkiH0COb.PHjt1PBZ@spatialys.com"
alt="https://www.creaf.cat/sites/default/files/youtube-icon-signature.png"
class="" width="17" height="17" border="0"></span></a><a
href="https://www.instagram.com/CREAF_ecologia/"
target="_blank" moz-do-not-send="true"><span
style="font-size:12.0pt;color:#0563C1;mso-fareast-language:CA;text-decoration:none"
lang="CA"><img
style="width:.177in;height:.177in"
id="Imagen_x0020_3"
src="cid:part6.Sf006JDT.dfIflHYn@spatialys.com"
alt="https://www.creaf.cat/sites/default/files/instagram-icon-signature.png"
class="" width="17" height="17" border="0"></span></a></span><span
style="mso-fareast-language:CA"><o:p></o:p></span></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"
moz-do-not-send="true"><b><span
style="color:#003300">www.creaf.cat</span></b></a><b>
|
</b><a href="http://blog.creaf.cat" target="_blank"
moz-do-not-send="true"><b><span
style="color:#003300">http://blog.creaf.cat</span></b></a></span><span
style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
<td style="padding:0cm 0cm 0cm 0cm" valign="top">
<p class="MsoNormal" style="text-align:right"
align="right"><span
style="font-size:12.0pt;mso-fareast-language:CA"><img
style="width:1.0937in;height:.5208in"
id="Imagen_x0020_2"
src="cid:part7.WlknRtPj.4s9H9eIy@spatialys.com"
alt="https://www.creaf.cat/sites/default/files/uab_logo_signatura.png"
class="" width="105" height="50" border="0"></span><span
style="mso-fareast-language:CA"><o:p></o:p></span></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><span
style="mso-fareast-language:CA"><o:p></o:p></span></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><span
style="mso-fareast-language:CA"><o:p></o:p></span></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
style="width:5.2083in;height:.0625in"
id="Imagen_x0020_1"
src="cid:part8.8OhEK714.AJAv9wSk@spatialys.com"
alt="http://www.creaf.uab.cat/_signatura/line.gif"
class="" width="500" height="6" border="0"></span><span
style="mso-fareast-language:CA"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="mso-fareast-language:CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
gdal-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/gdal-dev">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a>
</pre>
</blockquote>
<pre class="moz-signature" cols="72">--
<a class="moz-txt-link-freetext" href="http://www.spatialys.com">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre>
</body>
</html>