<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)"><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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.gmail-hoenzb
        {mso-style-name:gmail-hoenzb;}
span.gmail-m-131321399945203073apple-converted-space
        {mso-style-name:gmail-m_-131321399945203073apple-converted-space;}
span.EmailStyle19
        {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:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
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=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Yah we'd need to move the geom_name to the end as Paul suggested to allow it to be defaulted since all optional args need to be at the end of the arg list.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I think making it a default is a good idea.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>But just remember to drop the old-signature in postgis_drop_before.sql and update the docs accordingly.  <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>And put a note in news that after PostGIS 2.4.0beta1 the signature changed to have geom_name at end so that people know how to change their code.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Hopefully not too many people affected by this change.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Was thinking it might be a good idea to putting the note in the docs as well but I'm a bit indifferent on that since it seems unnecessarily wordy and might cause more confusion than help.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Something like <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Availability: 2.4.0  (if you are running <= 2.4.0beta1 you'll need to update your application code to use the new argument order)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Regina<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Paul Ramsey [mailto:pramsey@cleverelephant.ca] <br><b>Sent:</b> Thursday, September 07, 2017 4:39 PM<br><b>To:</b> bjorn@wololo.org<br><b>Cc:</b> Regina Obe <lr@pcorp.us>; PostGIS Development Discussion <postgis-devel@lists.osgeo.org><br><b>Subject:</b> Re: [postgis-devel] geom_name<o:p></o:p></span></p></div></div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>Actually, no, I’d like to see signature changes… in particular, <o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>bytea ST_AsMVT(text layer_name, anyelement row,  int4 extent default 4096, text geom_name default NULL);<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>geometry ST_AsMVTGeom(geometry geom, box2d bounds, int4 extent default 4096, int4 buffer default 0, bool clip_geom default true);<br>bytea ST_AsGeobuf(anyelement row, text geom_name default NULL);<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><br>Then the presence of (geom_name == NULL) implies “automagically use the first geometry you find”<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>And the null checks on extent, buffer, clip_geom can be dropped since PgSQL will automatically in-fill the defaults<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>You don’t have to do the above, I’m just agitating for it.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>Agitate, agitate.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'>P.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='margin-left:.5in'>On Sep 7, 2017, at 1:34 PM, Björn Harrtell <<a href="mailto:bjorn.harrtell@gmail.com">bjorn.harrtell@gmail.com</a>> wrote:<o:p></o:p></p></div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><div><div><p class=MsoNormal style='margin-left:.5in'>So we are agreed that there will be no signature change? Instead I will work towards an implementation and documentation change for geom_name to the following:<o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>"geom_name is the name of the geometry column in the row data. If NULL it will default to use the first geometry column in the row data."<o:p></o:p></p></div><div><div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>/Björn<o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><div><p class=MsoNormal style='margin-left:.5in'>2017-09-07 21:08 GMT+02:00 Paul Ramsey <<a href="mailto:pramsey@cleverelephant.ca" target="_blank">pramsey@cleverelephant.ca</a>>:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>Yes, take the first one unless the geom_name is provided. So geom_name would default to NULL and NULL would mean “the first one you find"<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='color:#888888'>P<o:p></o:p></span></p></div><div><div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='margin-left:.5in'>On Sep 7, 2017, at 12:06 PM, Regina Obe <<a href="mailto:lr@pcorp.us" target="_blank">lr@pcorp.us</a>> wrote:<o:p></o:p></p></div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><div><div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Just to add to this to make sure I'm following:</span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>For this question:</span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p></div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'>> Also, a bit late in the day, but why the text parameter "geom_name" in these various signatures, instead of automagically finding it in the row?<o:p></o:p></p></div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'>> ?<o:p></o:p></p></div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><span style='color:#888888'>> P</span><o:p></o:p></p></div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><span style='color:#888888'> </span><o:p></o:p></p></div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><span style='color:#888888'>Is it ever possible that an MVT row could have more than one geometry column.  I assume so.  If so I think it might be good to keep the geom_name field though perhaps make it a default option and in that case it picks the first one it finds.  Similar to how we do pgsql2shp where you can explicitly set the geometry column or have pgsql2shp do it's thing and just pick the first one it finds.</span><o:p></o:p></p></div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><span style='color:#888888'> </span><o:p></o:p></p></div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><span style='color:#888888'> </span><o:p></o:p></p></div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><span style='color:#888888'>Thanks,</span><o:p></o:p></p></div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><span style='color:#888888'>Regina</span><o:p></o:p></p></div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p></div><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span class=gmail-m-131321399945203073apple-converted-space><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> </span></span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>Regina Obe [<a href="mailto:lr@pcorp.us" target="_blank"><span style='color:purple'>mailto:lr@pcorp.us</span></a>]<span class=gmail-m-131321399945203073apple-converted-space> </span><br><b>Sent:</b><span class=gmail-m-131321399945203073apple-converted-space> </span>Thursday, September 07, 2017 2:57 PM<br><b>To:</b><span class=gmail-m-131321399945203073apple-converted-space> </span>'PostGIS Development Discussion' <<a href="mailto:postgis-devel@lists.osgeo.org" target="_blank"><span style='color:purple'>postgis-devel@lists.osgeo.org</span></a>>; 'Björn Harrtell' <<a href="mailto:bjorn@wololo.org" target="_blank"><span style='color:purple'>bjorn@wololo.org</span></a>><br><b>Cc:</b><span class=gmail-m-131321399945203073apple-converted-space> </span>'Paul Ramsey' <<a href="mailto:pramsey@cleverelephant.ca" target="_blank"><span style='color:purple'>pramsey@cleverelephant.ca</span></a>><br><b>Subject:</b><span class=gmail-m-131321399945203073apple-converted-space> </span>RE: [postgis-devel] geom_name</span><o:p></o:p></p></div></div></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><span style='color:#1F497D'>><span class=gmail-m-131321399945203073apple-converted-space> </span></span>We should ask about API changing, I'm sure Regina would say we're done, which effectively means done-for-all-time, since changing public function signatures is basically impossible one they are done.<o:p></o:p></p></div></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><br><span style='color:#1F497D'>><span class=gmail-m-131321399945203073apple-converted-space> </span></span>P<o:p></o:p></p></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I'm fine with you changing the API now before final 2.4.0 release.  I promised no new functions, not no new API changes to new 2.4 functions.</span><o:p></o:p></p></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I think it would be good to drop the old signature in the postgis_drop_before.sql  since some people have already started using the MVT functions.</span><o:p></o:p></p></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>If it impacts existing code, we should also put in BREAKING CHANGE for postgis -2.4.0  the change so people are warned and know how to change their code if they were using an earlier postgis 2.4.0dev</span><o:p></o:p></p></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks,</span><o:p></o:p></p></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Regina</span><o:p></o:p></p></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p></div><div style='margin-left:.5in'><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p></div></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div></div></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'>On Thu, Sep 7, 2017 at 10:45 AM, Björn Harrtell <<a href="mailto:bjorn.harrtell@gmail.com" target="_blank"><span style='color:purple'>bjorn.harrtell@gmail.com</span></a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'>Hi Paul,<o:p></o:p></p></div></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'>No good reason except that I couldn't find out a deterministic way to find it and put it out of my mind after that. :(<o:p></o:p></p></div></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'>With some guidance I'll be happy to revise the API if it's not too late at this point.<o:p></o:p></p></div></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><span style='color:#888888'> </span><o:p></o:p></p></div></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><span style='color:#888888'>/Björn</span><o:p></o:p></p></div></div><div><div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'>2017-09-07 19:41 GMT+02:00 Paul Ramsey <<a href="mailto:pramsey@cleverelephant.ca" target="_blank"><span style='color:purple'>pramsey@cleverelephant.ca</span></a>>:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'>Also, a bit late in the day, but why the text parameter "geom_name" in these various signatures, instead of automagically finding it in the row?<o:p></o:p></p></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'>?<o:p></o:p></p></div></div><div><div style='margin-left:1.0in'><p class=MsoNormal style='margin-left:.5in'><span style='color:#888888'>P</span><o:p></o:p></p></div></div></div></blockquote></div></div></div></div></div></blockquote></div></div></div></div></blockquote></div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div></div></div></blockquote></div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div></div></div></div></div></div></blockquote></div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div></div></body></html>