Unioning linestrings is in fact useless here... Splitting initial polygon ring with duplicate points generates the linestrings used by st_buildArea:<div><br></div><div>with duplicates as (</div><div>    select st_collect(point) as points from (</div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span>select distinct (st_dumppoints(geometry)).geom as point </div><div>        from test_polygon</div><div>        group by (st_dumppoints(geometry)).geom</div>
<div>        having count((st_dumppoints(geometry)).geom)>1</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>) as foo</div><div>) select st_buildArea(</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>st_difference(st_exteriorRing(t.geometry), points)</div>
<div>)</div><div>from duplicates dup, test_polygon t;</div><div><br></div><div>Nicolas <br><br><div class="gmail_quote">On 10 March 2012 21:49, Nicolas Ribot <span dir="ltr"><<a href="mailto:nicolas.ribot@gmail.com">nicolas.ribot@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">(sorry for all these spelling mistakes, I should have reread my mail)
</blockquote></div><br></div>