<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Thanks for pointing that out Alexander. I was just about to start
      a test after some code modifications, but now realized based on
      the example you pointed out that I was missing the "FROM cte"
      clause in my SQL statement. It feels a bit unnatural to have to
      specify that one, as you already define the cte name after the
      WITH keyword. But this example sorted it out.</p>
    <p>Curious to see how it runs and if it leads to a measurable
      performance enhancement.<br>
    </p>
    <p>Marco<br>
    </p>
    <div class="moz-cite-prefix">Op 27-9-2020 om 18:30 schreef Alexander
      Gataric:<br>
    </div>
    <blockquote type="cite"
      cite="mid:1b1b99ae-548e-4c8d-b079-5e2a8091a030@usa.net">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="auto">You have the correct link. Here's an example.<br>
        <br>
      </div>
      <div dir="auto"><a
href="https://stackoverflow.com/questions/36908495/update-with-result-from-cte-postgresql"
          moz-do-not-send="true">https://stackoverflow.com/questions/36908495/update-with-result-from-cte-postgresql</a><br>
        <br>
      </div>
      <div dir="auto"><!-- tmjah_g_1299s -->Get
        <!-- tmjah_g_1299e --><a href="http://www.bluemail.me/r?b=16117"
          moz-do-not-send="true"><!-- tmjah_g_1299s -->BlueMail for
          Android<!-- tmjah_g_1299e --></a><!-- tmjah_g_1299s -->
        <!-- tmjah_g_1299e --></div>
      <div class="gmail_quote">On Sep 27, 2020, at 7:47 AM, Marco
        Boeringa <<a href="mailto:marco@boeringa.demon.nl"
          target="_blank" moz-do-not-send="true">marco@boeringa.demon.nl</a>>
        wrote:
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          <p>Hi Alexander, <br>
          </p>
          <p>I guess I could use the optional WITH clause that is part
            of UPDATE in PostgreSQL?:</p>
          <div class="moz-cite-prefix"><a class="moz-txt-link-freetext"
              href="https://www.postgresql.org/docs/12/sql-update.html"
              moz-do-not-send="true">https://www.postgresql.org/docs/12/sql-update.html</a></div>
          <div class="moz-cite-prefix"><br>
          </div>
          <div class="moz-cite-prefix">It would have been nice to see an
            example of such usage in the PostgreSQL help, but I'll
            figure it out.</div>
          <div class="moz-cite-prefix"><br>
          </div>
          <div class="moz-cite-prefix">Marco</div>
          <div class="moz-cite-prefix"><br>
          </div>
          <div class="moz-cite-prefix">Op 27-9-2020 om 13:59 schreef
            Alexander Gataric:<br>
          </div>
          <blockquote type="cite"
            cite="mid:7548c833-814a-4847-960e-e67d637d86a9@usa.net">
            <div dir="auto">Rewrite to have a CTE with the area
              calculations and join to the table.<br>
              <br>
            </div>
            <div dir="auto"><!-- tmjah_g_1299s -->Get
              <!-- tmjah_g_1299e --><a
                href="http://www.bluemail.me/r?b=16117"
                moz-do-not-send="true"><!-- tmjah_g_1299s -->BlueMail
                for Android<!-- tmjah_g_1299e --></a><!-- tmjah_g_1299s -->
              <!-- tmjah_g_1299e --></div>
            <div class="gmail_quote">On Sep 27, 2020, at 2:29 AM, Marco
              Boeringa <<a href="mailto:marco@boeringa.demon.nl"
                target="_blank" moz-do-not-send="true">marco@boeringa.demon.nl</a>>
              wrote:
              <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
                0.8ex; border-left: 1px solid rgb(204, 204, 204);
                padding-left: 1ex;">
                <pre class="blue">Hi all,

This may be an irrelevant basic question, but I just cannot find a clear 
answer to this, there is no documentation in the PostgreSQL docs for 
UPDATE about this:

In case I set multiple columns using some PostGIS function that clearly 
has a (considerable) cost associated with it, and the value of the first 
column being set is also needed to set the second column, does 
PostgreSQL automatically optimize this and re-use the value already 
calculated for column 1 to set column 2's value, or is each column's SET 
statement treated as independent entity?

E.g. let's say I want to calculate both area, and the division of area 
and perimeter, like:

UPDATE <MY_TABLE> SET area = ST_Area(<GEOMETRY_COLUMN>), area_perimeter 
= ST_Area(<GEOMETRY_COLUMN>) / ST_Perimeter(<GEOMETRY_COLUMN>)

Will PostgreSQL only process 'ST_Area(<GEOMETRY_COLUMN>)' once in this 
case, thus saving CPU load, or do I need to rewrite the SQL statement 
somehow to achieve that?

Marco

<hr>
postgis-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:postgis-users@lists.osgeo.org" moz-do-not-send="true">postgis-users@lists.osgeo.org</a>
<a href="https://lists.osgeo.org/mailman/listinfo/postgis-users" moz-do-not-send="true">https://lists.osgeo.org/mailman/listinfo/postgis-users</a></pre>
              </blockquote>
            </div>
            <br>
            <fieldset class="mimeAttachmentHeader"></fieldset>
            <pre class="moz-quote-pre" wrap="">_______________________________________________
postgis-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:postgis-users@lists.osgeo.org" moz-do-not-send="true">postgis-users@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/postgis-users" moz-do-not-send="true">https://lists.osgeo.org/mailman/listinfo/postgis-users</a></pre>
          </blockquote>
          <pre class="blue"><hr>
postgis-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a>
<a href="https://lists.osgeo.org/mailman/listinfo/postgis-users" moz-do-not-send="true">https://lists.osgeo.org/mailman/listinfo/postgis-users</a></pre>
        </blockquote>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
postgis-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/postgis-users">https://lists.osgeo.org/mailman/listinfo/postgis-users</a></pre>
    </blockquote>
  </body>
</html>