<html><head></head><body>I guess what I'm getting at is what is it used for outside of, and not within qgis. Are they used for queries? (Also, ctid can change on vacuum, as such they can't be relied upon outside the query (with any guarantees.) How would the situation be different if qgis used an incremental, internal integer? It's a guaranteed unique value (can't be said for oid or any column without an actual unique constraint), it just can't be persisted (can't be said for the ctid or a windowed function).<br>
<br>
As I mentioned, qgis will accept non-unique fields as the primary key for a view (after being loaded, I don't expect that to be checked beforehand), so qgis isn't attempting to store the primary key in a constrained data store? This is what I'm most confused about. Why am i , as a user, being (poorly) to give qgis the name of the pk, when a non-unique field is just as acceptable?<br>
<br>
Jim<br><br><div class="gmail_quote">On September 1, 2015 12:09:28 PM EDT, Matthias Kuhn <matthias@opengis.ch> 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="k9mail">On 09/01/2015 05:54 PM, James Keener wrote:<br /><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> We also need to ask what qgis is doing with this and why we need to<br /> bug the user about it at all.<br /><br /> Why do we not big the user about tables without a primary key? If<br /> tables can be loaded without a pk, why can't views.<br /></blockquote>QGIS relies on feature ids for a lot of different things to<br />unambiguously identify features.<br /><br />For tables there is a (also not optimal) ctid which can be used as<br />feature id:<br /><a href="http://www.postgresql.org/docs/8.2/static/ddl-system-columns.html">http://www.postgresql.org/docs/8.2/static/ddl-system-columns.html</a><br /><br />For views there is none (see<br /><a href="http://www.postgresql.org/docs/9.1/static/rules-views.html">http://www.postgresql.org/docs/9.1/static/rules-views.html</a>, section 37.2.4)<br
/><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><br /> Why can I select non-unique columns as primary keys and after loading<br /> the layer get no error?<br /></blockquote>Because a lot of things in QGIS rely on feature ids and see above why<br />the fallback which exists for tables does not work for views.<br />Especially - but not only - editing. See my proposal #4.<br /><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><br /> Are these also bugs? Should I make (or find?) tickets for them?<br /><br /> Jim<br /><br /> On September 1, 2015 11:49:23 AM EDT, Matthias Kuhn<br /> <matthias@opengis.ch> wrote:<br /><br />     Hi,<br /><br />     I would like to second Andreas, what we need is an improvement in the UI<br />     to make the user aware of the problem.<br /><br />     My proposal (please review and improve!!!!)<br /><br />     1.
Let the user choose whatever table/view he likes. Don't disable any<br />     items.<br />     2. If there are tables without a PK open a second modal dialog with an<br />     explanation of the problem and offer to select a pk from a combobox.<br /><br />     -------------<br /><br />     3. Optional: Add a button "search suitable pk" which looks for a<br />     suitable unique column.<br />     4. Optional: Add a selection "read-only" to the combobox and do some<br />     row_number() or other black magic and warn the user with a big red<br />     dialog that he's about to do something very dangerous, unreliable and<br />     that his warranty is now very void.<br /><br />     Best,<br />     Matthias<br /><br />     On 09/01/2015 05:36 PM, Andreas Neumann wrote:<br /><br />         Hi, I would regard the loading of layers from a database<br />         something "relatively advanced". Normally I prepare ready to<br />         use QGIS project to my users who edit and query our GIS
data<br />         where they don't have to bother with loading layers. But you<br />         are correct that it can be different persons - the one who<br />         creates the view and the ones who are loading them. You are<br />         welcome to improve the situation/GUI, but please don't go back<br />         to the old behavior where it is an assumption that the first<br />         column in the list is always the primary key. Andreas On<br />         01.09.2015 14:51, James Keener wrote:<br /><br />             Why are you assuming the user who created the view is the<br />             one using QGIS? Jim On 09/01/2015 08:50 AM, Andreas<br />             Neumann wrote:<br /><br />                 Hi, I agree with Jürgen - better let the user choose<br />                 the pkey column. If the user knows how to create a<br />                 Postgis View he also knows how to select a primary key<br />                 column. Andreas On 01.09.2015 14:37, Jürgen E.
Fischer<br />                 wrote:<br /><br />                     Hi Sandro, On Tue, 01. Sep 2015 at 13:48:33 +0200,<br />                     Sandro Santilli wrote:<br /><br />                         I agree with Luca this should have been better<br />                         not backported to 2.8.3. Only proper bugs<br />                         should be backported, and this was a<br />                         (debatable) GUI enhancement, as far as I can<br />                         tell. <br /><br />                     We intend to only backport fixes and not bugs. ;)<br />                     You were always supposed to select the key column<br />                     - preselecting the first column was the bug (also<br />                     debatable). And #11317 is a ticket that<br />                     demonstrates there were unaware users. That the<br />                     first column often happens to be the primary key<br />                     and and the
combobox is not lexically sorted is<br />                     somewhat pure luck - and unless you avoid having<br />                     the key verified (using "use estimated metadata"),<br />                     keeping a wrongly select column will make the<br />                     layer to insert invalid. But I agree that the<br />                     tooltip that you get on disabled lines (not only<br />                     for the key selection, but also geometry type and<br />                     srid) might not be visible enough (but that IMHO<br />                     would be just a GUI enhancement). Jürgen<br /><hr /><br />                     Qgis-user mailing list Qgis-user@lists.osgeo.org<br />                     <a href="http://lists.osgeo.org/mailman/listinfo/qgis-user">http://lists.osgeo.org/mailman/listinfo/qgis-user</a> <br /><br /><hr /><br />                 Qgis-user mailing list Qgis-user@lists.osgeo.org<br />                 <a
href="http://lists.osgeo.org/mailman/listinfo/qgis-user">http://lists.osgeo.org/mailman/listinfo/qgis-user</a><br /><br /><hr /><br />         Qgis-user mailing list Qgis-user@lists.osgeo.org<br />         <a href="http://lists.osgeo.org/mailman/listinfo/qgis-user">http://lists.osgeo.org/mailman/listinfo/qgis-user</a> <br /><br /><br /><hr /><br /><br />     Qgis-user mailing list<br />     Qgis-user@lists.osgeo.org<br />     <a href="http://lists.osgeo.org/mailman/listinfo/qgis-user">http://lists.osgeo.org/mailman/listinfo/qgis-user</a><br /><br /> -- Sent from my Android device with K-9 Mail. Please excuse my brevity. <br /></blockquote></pre></blockquote></div><br>
-- <br>
Sent from my Android device with K-9 Mail. Please excuse my brevity.</body></html>