<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi Linda,</p>
    <p>(Mailing lists have had issues lately)</p>
    <blockquote type="cite"
      cite="mid:nA.Ilib.5alAPaRWMH7.1fIf9P@seznam.cz">
      <p>And internally I also have
        the full update pipeline implemented - when the dataset is
        opened in
        <code class="-wm-western">GDAL_OF_UPDATE</code> mode, an
        instance of
        <code class="-wm-western">OGRMVTWriterDataset</code> is created,
        which
        allows me to call <code class="-wm-western">DeleteFeature</code>
        (D) and
        <code class="-wm-western">CreateFeature</code> (I), or a
        combination of
        both when an existing feature needs to be updated (U). </p>
    </blockquote>
    Updating an existing feature would normally be done through
    SetFeature(), but Delete+Create may be OK for your use case
    <blockquote type="cite"
      cite="mid:nA.Ilib.5alAPaRWMH7.1fIf9P@seznam.cz"><br>
      <p>Given this, I started thinking about an alternative solution
        based
        on a stable, domain-level identifier such as <code
          class="-wm-western">domain_id</code>
        (in practice, e.g., <code class="-wm-western">parcel_id</code>),
        which is
        already known at write time. This would require storing such an
        identifier explicitly in the intermediate SQLite table (in
        addition
        to the internal <code class="-wm-western">idx</code>, geometry,
        and tile
        coordinates). <code class="-wm-western">DeleteFeature</code>
        could then
        be implemented by removing all rows associated with that
        domain-level
        identifier (that would be an input parameter).</p>
    </blockquote>
    <p>I'm not clear if you intend to submit the changes you mention
      upstream, but if so, using your domain-level identifier for
      DeleteFeature() wouldn't be appropriate given that DeleteFeature()
      is supposed to take the OGR FID as input parameter. So, either you
      would need to add logic into the driver to report a domain-level
      identifier as the OGR FID (for example through an open option that
      would take the name of an attribute), or you would need to
      implement a pseudo-SQL command through ExecuteSQL(), like
      "DELETE_FEATURE_BY_DOMAIN_ID {domain-level-identifier}"</p>
    <p>Even</p>
    <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>