<div>Hello everyone,<br></div><div><br></div><div>I am currently tinkering with the PostGIS topology capabilities and therefore having QGIS as an "frontend" for editing the TopoGeometries. That works really well so far, as long as we are talking about really minor counts of polygons in the layer to be edited.<br></div><div>That is because there is no spatial indexing available for the columns of type TopoGeometry.<br></div><div>I was examining the SQL-statements which QGIS uses to deal with TopoGeometry layers. It essentialy looks somewhat like this:<br></div><div><br></div><div>---</div><div>SELECT st_asbinary("topo",'NDR'),"gid"
<br></div><div>FROM "public"."topo_test"
<br></div><div>WHERE "topo" && st_makeenvelope(138.48618410228871767,-35.03610634074148322,138.71434043049001161,-34.78702094367417885,4326)<br></div><div>---<br></div><div><br></div><div>Those kind of statements run really slow because the column "topo" of type TopoGeometry does not have any spatial index. <br></div><div>In my case the table has a "normal" Geometry column AND a TopoGeometry column, which are pretty much in sync.<br></div><div><br></div><div>If the statement above is altered to get the overlapping features based on the Geometry column instead of the TopoGeometry column one can benefit from a spatial index on the Geometry column.<br></div><div><br></div><div>So I am asking for your opinion if a possibly small addition to a TopoGeometry layer properties in form of e.g. a checkbox is thinkable/reasonable which enables the alteration of the statement to something like that (given the hint, that both geometry columns have to be more or less in sync):<br></div><div><br>---<br></div><div style="color: rgb(34, 34, 34); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 23.1px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;">SELECT st_asbinary("topo",'NDR'),"gid"<span class="Apple-converted-space"> </span><br></div><div style="color: rgb(34, 34, 34); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 23.1px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;">FROM "public"."topo_test"<span class="Apple-converted-space"> </span><br></div><div style="color: rgb(34, 34, 34); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 23.1px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;">WHERE "geom" && st_makeenvelope(138.48618410228871767,-35.03610634074148322,138.71434043049001161,-34.78702094367417885,4326)<br></div><div style="color: rgb(34, 34, 34); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 23.1px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;">---<br></div><div style="color: rgb(34, 34, 34); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 23.1px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br></div><div style="color: rgb(34, 34, 34); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 23.1px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="color:rgb(34, 34, 34)" class="colour"><span style="font-family:Arial, "Helvetica Neue", Helvetica, sans-serif" class="font"><span style="font-size:14px" class="size"><span class="Apple-converted-space"> Would that be a way</span> to tackle this well known performance issue?</span></span></span><br></div><div style="color: rgb(34, 34, 34); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 23.1px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br></div><div style="color: rgb(34, 34, 34); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 23.1px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Thanks<br></div><div style="color: rgb(34, 34, 34); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 23.1px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Andreas</div><div style="color: rgb(34, 34, 34); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 23.1px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br></div>