<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Postgres OnLine Journal - postgis</title>
    <link>http://www.postgresonline.com/journal/</link>
    <description>an In depth look at the PostgreSQL open source database</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <pubDate>Sat, 07 Apr 2012 17:14:18 GMT</pubDate>

    <image>
        <url>http://www.postgresonline.com/journal/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Postgres OnLine Journal - postgis - an In depth look at the PostgreSQL open source database</title>
        <link>http://www.postgresonline.com/journal/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Moving PostGIS to another schema with Extensions</title>
    <link>http://www.postgresonline.com/journal/archives/248-Moving-PostGIS-to-another-schema-with-Extensions.html</link>
            <category>9.1</category>
            <category>basics</category>
            <category>postgis</category>
    
    <comments>http://www.postgresonline.com/journal/archives/248-Moving-PostGIS-to-another-schema-with-Extensions.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=248</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=248</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;One of the things people have complained about for quite some time is that postgis is installed in the public schema by default and it&#039;s difficult to move after the fact.  With now over 900 functions types, etc, in the 2.0.0 release  that is a lot of cluttering of workspace.  Now that postgis 2.0.0 is packaged as an extension, you can move all those functions etc. to another schema with the ALTER EXTENSION command.  PgAdmin even throws a nice GUI on top to allow you to do this with some mouse maneuvering if you prefer the guided way.  This might very well be my most favorite usability feature, because if things don&#039;t work out you can just move it back to public.  I&#039;ve been hesitant to do this before because well it was harder and I have a lot of 3rd party apps I work with and fear one of them hard-coded &lt;cdoe&gt;public.geometry&lt;/code&gt; somewhere.  With extensions I can easily revert if it doesn&#039;t work out. &lt;/p&gt;

&lt;p&gt;I&#039;ve done this with some of my databases and been testing out how it works.  So far so good. Here is how you do it.&lt;/p&gt;

&lt;pre&gt;
&lt;code&gt;CREATE SCHEMA postgis;
ALTER DATABASE &lt;em&gt;your_db_goes_here&lt;/em&gt; SET search_path=&quot;$user&quot;, public, postgis,topology;
GRANT ALL ON SCHEMA postgis TO public;
ALTER EXTENSION postgis SET SCHEMA postgis;&lt;/code&gt;
&lt;/pre&gt;


&lt;p&gt;On a somewhat unrelated side note aside from the fact it has to do with postgis not being in same schema as geometry table is &lt;a href=&quot;http://www.postgis.org/pipermail/postgis-users/2012-March/033092.html&quot;&gt;someone mentioned in PostGIS newsgroup recently&lt;/a&gt; that is an issue if you are using conditional triggers.  That is that if you have a conditional when trigger it can&#039;t find the geometry when you restore the database because of the way the restore process changes search_path.&lt;/p&gt;

&lt;p&gt;I&#039;m expecting the extension model to significantly simplify PostGIS upgrades in the future, because since the functions don&#039;t get backed up, they don&#039;t get in the way when you do a hard upgrade.  Hard upgrade will simply reduce to just restoring your database.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sat, 07 Apr 2012 13:13:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/248-guid.html</guid>
    <category>extensions</category>
<category>postgis</category>

</item>
<item>
    <title>PostGIS 2.0.0 is out</title>
    <link>http://www.postgresonline.com/journal/archives/247-PostGIS-2.0.0-is-out.html</link>
            <category>editor note</category>
            <category>gis</category>
            <category>postgis</category>
    
    <comments>http://www.postgresonline.com/journal/archives/247-PostGIS-2.0.0-is-out.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=247</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=247</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;Yap that&#039;s right.  &lt;a href=&quot;http://www.postgis.org/news/20120403/&quot; target=&quot;_blank&quot;&gt;PostGIS 2.0.0 is finally out the door&lt;/a&gt;. It took us Two years and 2 months, a super long incubation for us, but we did it and just in time for &lt;a href=&quot;http://whereconf.com/where2012/public/schedule/detail/23432&quot;&gt;Javier&#039;s Where 2.0 2.0 Talk.&lt;/a&gt;.  &lt;a href=&quot;http://blog.opengeo.org/2012/04/03/postgis-2-0-released/&quot; target=&quot;_blank&quot;&gt;Paul has some border-line R rated pictures of the birthing process&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;We have &lt;a href=&quot;http://www.postgis.org/download/windows/#windbinaries&quot; target=&quot;_blank&quot;&gt;windows 32 binaries posted&lt;/a&gt; for those adventurous enough to taste the cookies while they are hot. We are working on the windows 64-bit binaries.  Those should be out tomorrow.  We&#039;ll be working in the coming week to get the installers ready to put up so they are available via Stack Builder.  We&#039;ll probably put up the 32-bit ones first, hopefully followed shortly by the 64-bit ones. You should see PostGIS 2.0.0 soon on Yum as well. Devrim is cooking :).&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 03 Apr 2012 20:58:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/247-guid.html</guid>
    <category>postgis</category>

</item>
<item>
    <title>Rendering PostGIS Raster graphics with LibreOffice Base Reports</title>
    <link>http://www.postgresonline.com/journal/archives/244-Rendering-PostGIS-Raster-graphics-with-LibreOffice-Base-Reports.html</link>
            <category>application development</category>
            <category>intermediate</category>
            <category>oobase</category>
            <category>postgis</category>
    
    <comments>http://www.postgresonline.com/journal/archives/244-Rendering-PostGIS-Raster-graphics-with-LibreOffice-Base-Reports.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=244</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=244</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;I was excited to learn from Pasha Golub&#039;s blog &lt;a href=&quot;http://pgolub.wordpress.com/2012/02/15/libreoffice-announces-native-support-for-postgresql&quot;&gt;LibreOffice Base 3.5 now comes packaged with native PostgreSQL driver&lt;/a&gt; so no separate configuration is required.
The connection string syntax follows the old SBC native driver of prior OpenOffice versions we itemized in &lt;a href=&quot;http://www.postgresonline.com/journal/archives/8-Using-OpenOffice-Base-2.3.1-with-PostgreSQL.html&quot;&gt;Using OpenOffice Base with PostgeSQL&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What I really wanted to do with it is experiment with its graphical rendering capabilities.  As discussed in &lt;a href=&quot;http://www.postgresonline.com/journal/archives/243-PSQL-needs-a-better-way-of-outputting-bytea-to-binary-files.html&quot; target=&quot;_blank&quot;&gt;PSQL needs a better way of outputting bytea&lt;/a&gt;
one of the frequently asked questions on the PostGIS list by folks using the new not yet officially released (alpha5 recently released) functionality in &lt;a href=&quot;http://www.postgis.org/documentation/manual-svn/&quot;  target=&quot;blank&quot;&gt;PostGIS 2.0&lt;/a&gt; is how to render rasters 
with common variety tools.  I suspected Base was a capable option, but had never tested it to confirm.  Since I was installing new LibreOffice 3.5, I thought this might be a good test of its metal.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/244-Rendering-PostGIS-Raster-graphics-with-LibreOffice-Base-Reports.html#extended&quot;&gt;Continue reading &quot;Rendering PostGIS Raster graphics with LibreOffice Base Reports&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 17 Feb 2012 18:21:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/244-guid.html</guid>
    <category>libre office</category>
<category>oobase</category>
<category>openoffice</category>

</item>
<item>
    <title>GeoInformatics article and new book in the works</title>
    <link>http://www.postgresonline.com/journal/archives/237-GeoInformatics-article-and-new-book-in-the-works.html</link>
            <category>editor note</category>
            <category>gis</category>
            <category>postgis</category>
    
    <comments>http://www.postgresonline.com/journal/archives/237-GeoInformatics-article-and-new-book-in-the-works.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=237</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=237</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;Two exciting things happened this past month.  &lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;Our article on upcoming PostGIS 2.0 recently came out in &lt;a href=&quot;http://www.geoinformatics.com/archive-2011&quot; target=&quot;_blank&quot;&gt;GeoInformatics Magazine December 2011 Issue 8&lt;/a&gt;.  Check it out here.  Starts on page 30.&lt;/li&gt;
&lt;li&gt;We just got notice that our book proposal has been accepted and this time it&#039;s not about PostGIS.&lt;/li&gt;
&lt;/ul&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/237-GeoInformatics-article-and-new-book-in-the-works.html#extended&quot;&gt;Continue reading &quot;GeoInformatics article and new book in the works&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 14 Dec 2011 22:56:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/237-guid.html</guid>
    <category>book writing</category>
<category>postgis</category>

</item>
<item>
    <title>Code Profiling with PostGIS raster</title>
    <link>http://www.postgresonline.com/journal/archives/235-Code-Profiling-with-PostGIS-raster.html</link>
            <category>contrib spotlight</category>
            <category>gis</category>
            <category>postgis</category>
    
    <comments>http://www.postgresonline.com/journal/archives/235-Code-Profiling-with-PostGIS-raster.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=235</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=235</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;What happens when you take a bunch of auto-generated tests and test results
which you burn into rasters with SQL?  
You get a code fingerprint of sorts.  Well that was the dream I wanted to explore.  Now that PostGIS 2.0 has introduced a new spatial type called &lt;b&gt;raster&lt;/b&gt;
and lots of functionality including some very cool &lt;a href=&quot;http://www.postgis.org/documentation/manual-svn/RT_ST_MapAlgebraFct2.html&quot; target=&quot;_blank&quot; &gt;Map Algebra functionality&lt;/a&gt; to go with it,
this is now possible without too much fuss. My first attempt at it didn&#039;t produce quite what I expected. I have to admit it is absolutely gorgeous 
and will be hopefully useful once I figure out how to read it, tweak the rendering process to achieve more of a breakout of results, or patent it as a fabric style.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/journal/dbox2_15.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now for the story of how a computer nerd is born and how rasters can be useful to nerds.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/235-Code-Profiling-with-PostGIS-raster.html#extended&quot;&gt;Continue reading &quot;Code Profiling with PostGIS raster&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 04 Dec 2011 10:20:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/235-guid.html</guid>
    <category>postgis</category>
<category>raster</category>

</item>
<item>
    <title>XPathing XML data with PostgreSQL</title>
    <link>http://www.postgresonline.com/journal/archives/232-XPathing-XML-data-with-PostgreSQL.html</link>
            <category>8.4</category>
            <category>9.0</category>
            <category>9.1</category>
            <category>9.2</category>
            <category>basics</category>
            <category>gis</category>
            <category>intermediate</category>
            <category>postgis</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/232-XPathing-XML-data-with-PostgreSQL.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=232</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=232</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;One of my favorite tools and I think that of many folks working with GIS and other kinds of Multimedia is the GDAL/OGR suite.
Though I started using it to conquer GIS ETL activities, I found myself using it for problems that are inherently not GIS at all. I talked
about the GDAL OGR2OGR component a while ago in &lt;a href=&quot;http://www.postgresonline.com/journal/archives/31-GDAL-OGR2OGR-for-Data-Loading.html&quot; target=&quot;_blank&quot;&gt;GDAL OGR2OGR for Data Loading&lt;/a&gt;
and this time I&#039;ll talk tangentially about its raster capabilities.  It is a fantastic tool for converting between various raster formats and applying various raster operations.
In PostGIS world the new 2.0 raster functionality puts an SQL wrapper around much of its power.  I&#039;m not going to talk about that though except as a fleeting comment to explore later (we&#039;ve got cool &lt;a href=&quot;http://www.postgis.org/documentation/manual-svn/RT_ST_MapAlgebraExpr2.html&quot; target=&quot;_blank&quot;&gt;2 band Map Algebra in PostGIS 2.0&lt;/a&gt; to flaunt its stuff).
So what does this have to do with XPathing XML data with PostgreSQL? Well that&#039;s what I&#039;m going to talk about what to do with machine generated data that comes at you in XML format.&lt;/p&gt;
&lt;p&gt;A lot of machine generated data is hitting us in an XML like form.  I talked about GPX data and navigating that in &lt;a href=&quot;http://www.postgresonline.com/journal/archives/116-Loading-and-Processing-GPX-XML-files-using-PostgreSQL.html&quot; target=&quot;_blank&quot;&gt;Which by the way GDAL/OGR can load and export easily into/out of a PostGIS enabled database&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;GDAL exposes another kind of machine generated data in XML format which turns out to be very useful for all kinds of things.  This is &lt;a href=&quot;http://en.wikipedia.org/wiki/Exchangeable_image_file_format&quot; target=&quot;_blank&quot;&gt;Exchangeable image file format (EXIF) data&lt;/a&gt;. There are all kinds 
of random text information embedded in pictures and this varies depending on what camera is taking it.  Newer cameras like the ones you have built into your iphone or android 
embed location based information into them sometimes like where you were standing when you took the picture.  Most cameras these days embed the time the picture was taken.
This information is important because if you are taking electronic notes while you are snapping your pictures, it provides an easy way to match up your notes with the picture about the object.  So what does this EXIF info look like when you point GDAL at it? We&#039;ll see. &lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/232-XPathing-XML-data-with-PostgreSQL.html#extended&quot;&gt;Continue reading &quot;XPathing XML data with PostgreSQL&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 11 Nov 2011 03:57:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/232-guid.html</guid>
    <category>etl</category>
<category>raster</category>
<category>regex</category>
<category>regular expressions</category>
<category>unnest</category>
<category>xml</category>
<category>xpath</category>

</item>
<item>
    <title>What objects are in a PostgreSQL installed extension</title>
    <link>http://www.postgresonline.com/journal/archives/231-What-objects-are-in-a-PostgreSQL-installed-extension.html</link>
            <category>9.1</category>
            <category>intermediate</category>
            <category>postgis</category>
            <category>q&amp;a</category>
    
    <comments>http://www.postgresonline.com/journal/archives/231-What-objects-are-in-a-PostgreSQL-installed-extension.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=231</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=231</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;As mentioned in &lt;a href=&quot;http://www.postgresonline.com/journal/archives/227-Lessons-learned-Packaging-PostGIS-Extensions-Part-2.html&quot;&gt;Lessons Learned Packaging PostGIS extensions&lt;/a&gt;, I am working on PostGIS 2.0.0 extension packaging.  One of the things I wanted to know was what objects, types, functions etc were installed by my extension.  The new packaging system allows for cataloging this relatively easily, but I couldn&#039;t find a function or view for this  and didn&#039;t see one mentioned in the manual, so I created this query which seems to work pretty well as far as I can tell.  The basic idea being that any object that an extension depends on 
that is not an extension is part of the extension package.&lt;/p&gt;

&lt;code&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;syntax-KEYWORD1&quot;&gt;SELECT&lt;/span&gt; c.relname &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;As&lt;/span&gt; item_type, 
    &lt;span class=&quot;syntax-KEYWORD2&quot;&gt;COALESCE&lt;/span&gt;&lt;span class=&quot;syntax-OPERATOR&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax-KEYWORD1&quot;&gt;proc&lt;/span&gt;.proname,typ.typname, cd.relname, op.oprname, 
        &lt;span class=&quot;syntax-LITERAL1&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt;CAST(&lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt;&#039;&lt;/span&gt; &lt;span class=&quot;syntax-OPERATOR&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;syntax-OPERATOR&quot;&gt;|&lt;/span&gt; cs.typname &lt;span class=&quot;syntax-OPERATOR&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;syntax-OPERATOR&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;syntax-LITERAL1&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt;AS&lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt;&#039;&lt;/span&gt; &lt;span class=&quot;syntax-OPERATOR&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;syntax-OPERATOR&quot;&gt;|&lt;/span&gt; ct.typname &lt;span class=&quot;syntax-OPERATOR&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;syntax-OPERATOR&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;syntax-LITERAL1&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt;&#039;&lt;/span&gt;, opcname, opfname&lt;span class=&quot;syntax-OPERATOR&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;As&lt;/span&gt; item_name,
    &lt;span class=&quot;syntax-KEYWORD2&quot;&gt;COALESCE&lt;/span&gt;&lt;span class=&quot;syntax-OPERATOR&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax-KEYWORD1&quot;&gt;proc&lt;/span&gt;.proisagg,false&lt;span class=&quot;syntax-OPERATOR&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;As&lt;/span&gt; is_agg, &lt;span class=&quot;syntax-FUNCTION&quot;&gt;oidvectortypes&lt;/span&gt;&lt;span class=&quot;syntax-OPERATOR&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax-KEYWORD1&quot;&gt;proc&lt;/span&gt;.proargtypes&lt;span class=&quot;syntax-OPERATOR&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;As&lt;/span&gt; arg_types
&lt;span class=&quot;syntax-KEYWORD1&quot;&gt;FROM&lt;/span&gt; pg_depend &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;As&lt;/span&gt; d &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;INNER&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;JOIN&lt;/span&gt; pg_extension &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;As&lt;/span&gt; e
    &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ON&lt;/span&gt; d.refobjid &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; e.oid &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;INNER&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;JOIN&lt;/span&gt; pg_class &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;As&lt;/span&gt; c &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ON&lt;/span&gt;
        c.oid &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; d.classid
        &lt;span class=&quot;syntax-KEYWORD2&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;JOIN&lt;/span&gt; pg_proc &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;AS&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;proc&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ON&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;proc&lt;/span&gt;.oid &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; d.objid
        &lt;span class=&quot;syntax-KEYWORD2&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;JOIN&lt;/span&gt; pg_type &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;AS&lt;/span&gt; typ &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ON&lt;/span&gt; typ.oid &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; d.objid
        &lt;span class=&quot;syntax-KEYWORD2&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;JOIN&lt;/span&gt; pg_class &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;As&lt;/span&gt; cd &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ON&lt;/span&gt; cd.oid &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; d.objid
        &lt;span class=&quot;syntax-KEYWORD2&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;JOIN&lt;/span&gt; pg_operator &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;As&lt;/span&gt; op &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ON&lt;/span&gt; op.oid &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; d.objid
        &lt;span class=&quot;syntax-KEYWORD2&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;JOIN&lt;/span&gt; pg_cast &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;AS&lt;/span&gt; ca &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ON&lt;/span&gt; ca.oid &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; d.objid
        &lt;span class=&quot;syntax-KEYWORD2&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;JOIN&lt;/span&gt; pg_type &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;AS&lt;/span&gt; cs &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ON&lt;/span&gt; ca.castsource &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; cs.oid
        &lt;span class=&quot;syntax-KEYWORD2&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;JOIN&lt;/span&gt; pg_type &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;AS&lt;/span&gt; ct &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ON&lt;/span&gt; ca.casttarget &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; ct.oid
        &lt;span class=&quot;syntax-KEYWORD2&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;JOIN&lt;/span&gt; pg_opclass &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;As&lt;/span&gt; oc &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ON&lt;/span&gt; oc.oid &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; d.objid
        &lt;span class=&quot;syntax-KEYWORD2&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;JOIN&lt;/span&gt; pg_opfamily &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;As&lt;/span&gt; ofa &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ON&lt;/span&gt; ofa.oid &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; d.objid
&lt;span class=&quot;syntax-KEYWORD1&quot;&gt;WHERE&lt;/span&gt; d.deptype &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax-LITERAL1&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt;&#039;&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;and&lt;/span&gt; e.extname &lt;span class=&quot;syntax-OPERATOR&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax-LITERAL1&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt;postgis&lt;/span&gt;&lt;span class=&quot;syntax-LITERAL1&quot;&gt;&#039;&lt;/span&gt;
&lt;span class=&quot;syntax-KEYWORD1&quot;&gt;ORDER&lt;/span&gt; &lt;span class=&quot;syntax-KEYWORD1&quot;&gt;BY&lt;/span&gt; item_type, item_name;
&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;The output looks like: &lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/231-What-objects-are-in-a-PostgreSQL-installed-extension.html#extended&quot;&gt;Continue reading &quot;What objects are in a PostgreSQL installed extension&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 03 Nov 2011 16:55:13 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/231-guid.html</guid>
    <category>extensions</category>
<category>postgis</category>

</item>
<item>
    <title>Many PostGIS FOSS4G 2011 videos have landed</title>
    <link>http://www.postgresonline.com/journal/archives/229-Many-PostGIS-FOSS4G-2011-videos-have-landed.html</link>
            <category>editor note</category>
            <category>gis</category>
            <category>postgis</category>
    
    <comments>http://www.postgresonline.com/journal/archives/229-Many-PostGIS-FOSS4G-2011-videos-have-landed.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=229</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=229</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;http://www.fosslc.org/drupal/category/event/foss4g2011&quot; target=&quot;_blank&quot;&gt;FOSS 4G 2011 Videos&lt;/a&gt;.
My resident PostGIS developer strk says he can&#039;t see them because blip.tv is using some sort of proprietary video swf format. I can&#039;t really tell what he is talking about.  Does anyone know if fosslic videos are available in other formats like ogg or a &lt;a href=&quot;http://www.gnu.org/s/gnash/&quot; target=&quot;_blank&quot;&gt;Gnash swf viewer compatible format&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;We mentioned in prior article &lt;a href=&quot;http://www.postgresonline.com/journal/archives/220-FOSS4G-2011-PostGIS-the-new-stuf.html&quot;&gt;Our FOSS4G 2011 the new Stuff&lt;/a&gt; and provided the slides in that article.  Now we have the video to go with it.&lt;/p&gt;
Here is a partial list of PostGIS videos:
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://fosslc.org/drupal/content/state-postgis&quot; target=&quot;_blank&quot;&gt;Paul&#039;s standard State of PostGIS&lt;/a&gt; He ran out of time so our&#039;s is more like a continuation.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.fosslc.org/drupal/content/postgis-20-new-stuff&quot; target=&quot;_blank&quot;&gt;PostGIS 2.0 the new Stuff (our presentation)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/fosslc/foss4g-window-pierre-storem-5656323&quot; target=&quot;_blank&quot;&gt;PostGIS Raster 2.0 - store, manipulate and analyze raster&lt;/a&gt; Pierre Racine&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/229-Many-PostGIS-FOSS4G-2011-videos-have-landed.html#extended&quot;&gt;Continue reading &quot;Many PostGIS FOSS4G 2011 videos have landed&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 28 Oct 2011 17:33:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/229-guid.html</guid>
    <category>postgis</category>
<category>videos</category>

</item>
<item>
    <title>Lessons learned Packaging PostGIS Extensions: Part 2</title>
    <link>http://www.postgresonline.com/journal/archives/227-Lessons-learned-Packaging-PostGIS-Extensions-Part-2.html</link>
            <category>9.1</category>
            <category>advanced</category>
            <category>contrib spotlight</category>
            <category>postgis</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/227-Lessons-learned-Packaging-PostGIS-Extensions-Part-2.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=227</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=227</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;One of the great lessons learned in building PostGIS extensions is my rediscovery of &lt;a href=&quot;http://en.wikipedia.org/wiki/Sed&quot; target=&quot;_blank&quot;&gt;SED&lt;/a&gt;.  SED turned out to be
mighty useful in this regard and I&#039;ll explain a bit in this article.  Unfortunately there is still a lot I need to learn about it 
to take full advantage of it and most of my use can be summed up as &lt;em&gt;monkey see, monkey scratch head, monkey do&lt;/em&gt;. In addition I came across what I shall refer to as &lt;b&gt;Pain points&lt;/b&gt; with using
the PostgreSQL Extension model.  Part of which has a lot to do with the non-granular management of changes in PostGIS,
the day to day major flux of changes happening in PostGIS 2.0 space, and my attempt at trying to creat upgrade freeze points amidst these changes.
When PostGIS 2.0 finally arrives, the freeze points will be better defined and not change from day to day.  So some of these issues
may not be that big of a deal.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/227-Lessons-learned-Packaging-PostGIS-Extensions-Part-2.html#extended&quot;&gt;Continue reading &quot;Lessons learned Packaging PostGIS Extensions: Part 2&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 18 Oct 2011 22:10:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/227-guid.html</guid>
    <category>extensions</category>
<category>postgis</category>
<category>regular expressions</category>
<category>sed</category>

</item>
<item>
    <title>Improving speed of GIST indexes in PostgreSQL 9.2</title>
    <link>http://www.postgresonline.com/journal/archives/225-Improving-speed-of-GIST-indexes-in-PostgreSQL-9.2.html</link>
            <category>9.2</category>
            <category>editor note</category>
            <category>gis</category>
            <category>hstore</category>
            <category>intermediate</category>
            <category>ltree</category>
            <category>pgtrgm</category>
            <category>postgis</category>
            <category>postgresql versions</category>
            <category>tsearch</category>
    
    <comments>http://www.postgresonline.com/journal/archives/225-Improving-speed-of-GIST-indexes-in-PostgreSQL-9.2.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=225</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=225</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;This is about improvements to GIST indexes that I hope to see in PostgreSQL 9.2.  One is a patch for possible inclusion in PostgreSQL 9.2 called &lt;b&gt;&lt;a href=&quot;https://commitfest.postgresql.org/action/patch_view?id=631&quot; target=&quot;_blank&quot;&gt;SP-GiST, Space-Partitioned GiST&lt;/a&gt;&lt;/b&gt; created by 
&lt;a href=&quot;http://www.sigaev.ru/&quot; target=&quot;_blank&quot;&gt;Teodor Sigaev&lt;/a&gt; and &lt;a href=&quot;http://www.sai.msu.su/~megera/&quot; target=&quot;_blank&quot;&gt;Oleg Bartunov&lt;/a&gt; whose basic technique is described in &lt;a href=&quot;http://www.cs.purdue.edu/spgist/papers/W87R36P214137510.pdf&quot; target=&quot;_blank&quot;&gt;SP-GiST: An Extensible Database Index for Supporting Space Partitioning Trees&lt;/a&gt;. For those who don&#039;t know Teodor and Oleg,  they are the great fellows that brought us many other GiST and GIN goodnesses that many specialty PostgreSQL
extensions enjoy -- e.g. &lt;a href=&quot;http://www.postgis.org/documentation/manual-svn/&quot; target=&quot;_blank&quot;&gt;PostGIS&lt;/a&gt;, &lt;a href=&quot;http://developer.postgresql.org/pgdocs/postgres/pgtrgm.html&quot; target=&quot;_blank&quot;&gt;trigrams&lt;/a&gt;, &lt;a href=&quot;http://developer.postgresql.org/pgdocs/postgres/ltree.html&quot; target=&quot;_blank&quot;&gt;ltree&lt;/a&gt;, &lt;a href=&quot;http://pgsphere.projects.postgresql.org/&quot; target=&quot;_blank&quot;&gt;pgsphere&lt;/a&gt;, &lt;a href=&quot;http://developer.postgresql.org/pgdocs/postgres/hstore.html&quot; target=&quot;_blank&quot;&gt;hstore&lt;/a&gt;, &lt;a href=&quot;http://developer.postgresql.org/pgdocs/postgres/textsearch-intro.html&quot; target=&quot;_blank&quot;&gt;full-text search&lt;/a&gt; to name a few.&lt;/p&gt;
&lt;p&gt;Another is a recent one just committed by Alexander Korotkov which I just recently found out about on &lt;a href=&quot;http://www.postgis.org/pipermail/postgis-devel/2011-October/015561.html&quot; target=&quot;_blank&quot;&gt;New node splitting algorithm for GIST&lt;/a&gt; and admit I don&#039;t know enough about to judge. I have to admit to being very clueless when it comes to the innards of index implementations so don&#039;t ask me any technical details.  It&#039;s one of those short-comings among the trillion others I have that I have learned to accept will probably never change.&lt;/p&gt;
&lt;p&gt;What the SP-GIST patch will provide in terms of performance and speed was outlined in 
&lt;a href=&quot;http://www.pgcon.org/2011/schedule/events/309.en.html&quot; target=&quot;_blank&quot;&gt;PGCon 2011: SP-GiST - a new indexing infrastructure for PostgreSQL
Space-Partitioning trees in PostgreSQL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What it provides specifically for PostGIS is summarized in Paul&#039;s call for action noted below.  As a passionate user of PostGIS
,ltree, tsearch, and hstore, I&#039;m pretty excited about these patches and other GIST and general index enhancements and there potential use in GIST dependent extensions. I&#039;m hoping to see
these spring to life in PostgreSQL 9.2 and think it will help to further push the envelope of where PostgreSQL can go as a defacto platform 
for cutting-edge technology and scientific research.  I think one of PostgreSQL&#039;s greatest strength is its extensible index API.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.postgis.org/pipermail/postgis-users/2011-October/031078.html&quot; target=&quot;_blank&quot;&gt;Paul&#039;s PostGIS newsgroup note about seeking funding for faster GIST indexes&lt;/a&gt; , work done so far on SP-GIST and call for further action is rebroadcast in it&#039;s entirety here.
&lt;pre&gt;Thanks to the sponsorship of &lt;a href=&quot;http://www.mtu.edu&quot; target=&quot;_blank&quot;&gt;Michigan Technological University&lt;/a&gt;, we now
have 50% of the work complete. There is a working patch at the
commitfest &lt;a href=&quot;https://commitfest.postgresql.org/action/patch_view?id=631&quot; target=&quot;_blank&quot;&gt;https://commitfest.postgresql.org/action/patch_view?id=631&lt;/a&gt;
which provides quad-tree and kd-tree indexes.

However, there is a problem: unless the patch is reviewed and goes
through more QA/QC, it&#039;ll never get into PostgreSQL proper. In case
you think I am kidding: we had a patch for KNN searching ready for the
9.0 release, but it wasn&#039;t reviewed in time, so we had to wait all the
way through the 9.1 cycle to get it.

I am looking for sponsors in the $5K to $10K range to complete this
work. If you use PostgreSQL in your business, this is a chance to add
a basic capability that may help you in all kinds of ways you don&#039;t
expect. We&#039;re talking about faster geospatial indexes here, but this
facility will also radically speed any partitioned space. (For
example, the suffix-tree, which can search through URLs incredibly
fast. Another example, you can use a suffix tree to very efficiently
index geohash strings. Interesting.)

If you think there&#039;s a possibility, please contact me and I will send
you a prospectus you can take to your manager. Let&#039;s make this happen
folks!

Paul
&lt;/pre&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/225-Improving-speed-of-GIST-indexes-in-PostgreSQL-9.2.html#extended&quot;&gt;Continue reading &quot;Improving speed of GIST indexes in PostgreSQL 9.2&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 12 Oct 2011 18:24:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/225-guid.html</guid>
    <category>gist</category>
<category>index</category>
<category>postgis</category>
<category>postgresql 9.2</category>
<category>sp-gist</category>

</item>
<item>
    <title>Lessons learned Packaging PostGIS Extensions: Part 1</title>
    <link>http://www.postgresonline.com/journal/archives/224-Lessons-learned-Packaging-PostGIS-Extensions-Part-1.html</link>
            <category>9.1</category>
            <category>contrib spotlight</category>
            <category>intermediate</category>
            <category>postgis</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/224-Lessons-learned-Packaging-PostGIS-Extensions-Part-1.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=224</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=224</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;In prior articles we talked about the new &lt;a href=&quot;http://www.postgresonline.com/journal/archives/216-PostgreSQL-9.1-Exploring-Extensions.html&quot; target=&quot;_blank&quot;&gt;PostgreSQL 9.1 extension model&lt;/a&gt;
and upcoming &lt;a href=&quot;http://www.postgresonline.com/journal/archives/220-FOSS4G-2011-PostGIS-the-new-stuf.html&quot; target=&quot;_blank&quot;&gt;PostGIS 2.0 extensions&lt;/a&gt; which we have experimental builds of so far.
In this article and other&#039;s to follow, we shall provide a documentary of our venture into this new extensions world.  We&#039;ll discuss some of the obstacles we had with building 
extensions, lessons learned, and foolishness exposed, with the hope that others can learn from our experience.&lt;/p&gt;
&lt;p&gt;First off, the upcoming PostGIS 2.0 extensions will be packaged as at least two extensions -- &lt;b&gt;postgis&lt;/b&gt; which will contain both PostGIS geometry/geography types, functions, meta views and tables as well as raster type and associated functions and tables.  Topology support, while a part of upcoming PostGIS 2.0, will be packaged as a separate extension called &lt;b&gt;postgis_topology&lt;/b&gt;.  The main reason for breaking topology out as a separate extension is that it is always stored in a schema called &lt;b&gt;topology&lt;/b&gt; and is not relocatable
to another schema.  The way the current extension model works, all the parts of your extension should live in the same schema. Later we plan to package tiger geocoder as an extension, but this one probably makes more sense to live on &lt;a href=&quot;http://pgxn.org/&quot; target=&quot;_blank&quot;&gt;http://pgxn.org/&lt;/a&gt; since it is only of interest to United States users,
, is purely plpgsql with dependency on PostGIS, and we had beefed it up as part of a consulting contract for a company running PostGIS 1.5. It&#039;s the only piece documented in PostGIS 2.0 that works on 1.5 as well (aside from the tiger toplogy loader which has dependency on toplogy), although it has always lived as an extra in the PostGIS code base.&lt;/p&gt;
&lt;p&gt;We&#039;ll probably package postgis_legacy_functions as an extension too for those people who badly need those 500 alias functions I chucked.&lt;/p&gt;
&lt;p&gt;We mentioned in our prior article that we ran into some issues with how our extension worked -- e.g. topology referencing the postgis extension.  Most of these turned out just to be ignorance on my part as to how the different pieces fit together and I&#039;ll elaborate on these. &lt;/p&gt;
&lt;p&gt;Much of what will be described here is also documented in &lt;a href=&quot;http://www.postgresql.org/docs/9.1/static/extend-extensions.html&quot; target=&quot;_blank&quot;&gt;Packaging Related Objects into an Extension&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In the future I&#039;m hoping we&#039;ll also see plr and pgrouting packaged as extensions which are common favorites of PostGIS users.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/224-Lessons-learned-Packaging-PostGIS-Extensions-Part-1.html#extended&quot;&gt;Continue reading &quot;Lessons learned Packaging PostGIS Extensions: Part 1&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 06 Oct 2011 05:21:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/224-guid.html</guid>
    <category>extensions</category>
<category>postgis</category>

</item>
<item>
    <title>Sweat the small stuff, it really matters</title>
    <link>http://www.postgresonline.com/journal/archives/223-Sweat-the-small-stuff,-it-really-matters.html</link>
            <category>8.2</category>
            <category>8.4</category>
            <category>9.0</category>
            <category>9.1</category>
            <category>basics</category>
            <category>postgis</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/223-Sweat-the-small-stuff,-it-really-matters.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=223</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=223</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;In most release notices, it&#039;s the big shiny sexy features that get all the glamor, but in reality on day to day use
it&#039;s the small usability enhancements that make the most difference.  I&#039;m reminded about this now that I&#039;m working
on upgrade scripts and extensions for PostGIS.  There are a couple of new features that make application upgrades easier that I
regret not having in older versions of PostgreSQL we support and additional ones I had in other databases that I find lacking in PostgreSQL. PostgreSQL 8.2 for example brought us &lt;code&gt;DROP IF EXISTS ...&lt;/code&gt;
and all I can say is thank goodness we dropped support of prior versions of PostgreSQL in PostGIS 1.4 otherwise developing upgrade scripts would have been more of a nightmare.
PostgreSQL 8.4 introduced the ability to add additional columns to a view using &lt;code&gt;&lt;a href=&quot;http://www.postgresql.org/docs/8.4/static/sql-createview.html&quot; target=&quot;_blank&quot;&gt;CREATE OR REPLACE VIEW&lt;/a&gt;&lt;/code&gt; as
long as those columns were at the end of the view which Gabrielle Roth demonstrates an example of in &lt;a href=&quot;http://www.baconandtech.com/2011/10/04/this-weeks-find-create-or-replace-view/&quot; target=&quot;_blank&quot;&gt;This week’s find: CREATE OR REPLACE VIEW&lt;/a&gt;
If you were a MySQL user or application developer not having such features would be one reason to frown on PostgreSQL
and MySQL users and other database converts still have reasons to frown for lack of usability features they had 
in their other database that they feel naked without in PostgreSQL.&lt;/p&gt;

&lt;p&gt;In 9.1 we got two new DDL commands not much talked about that I am very excited about.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;code&gt;&lt;a href=&quot;http://www.postgresql.org/docs/9.1/interactive/sql-createtable.html&quot; target=&quot;_blank&quot;&gt;CREATE TABLE .. IF NOT EXISTS&lt;/a&gt;&lt;/code&gt;.  I can&#039;t tell you how many times I&#039;ve heard MySQL users whine about the lack of this in PostgreSQL
and I felt their pain.  It would be really nice to have this feature for other things such as TYPES or even possibly a CREATE OR REPLACE TYPE which would allow
some alteration of types like adding attributes at the end.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.postgresql.org/docs/9.1/static/sql-altertype.html&quot; target=&quot;-blank&quot;&gt;ALTER TYPE ..[ADD ATTRIBUTE] [RENAME ATTRIBUTE] [ADD VALUE]&lt;/a&gt;.
The [ADD VALUE] is a clause specific to ENUM types which allows you to add new enum values before or after an existing.  The lack of that feature
in prior versions was the major reason I stayed away from enums.&lt;/li&gt;
&lt;li&gt;And of cause my favorite CREATE EXTENSTION  ALTER EXTENSION family which admittedly do get talked about a lot more often and which I&#039;ll discuss more in a later
article.&lt;/li&gt;&lt;/ul&gt;. 

&lt;p&gt;I know it sounds like I&#039;m complaining.  That&#039;s because I am.  Honestly though, I think the first step to caring about something is really taking notice of its
flaws and wanting to change them.  The strength of an open source project is the ease with which it allows its developers and users to have a great impact on its direction.  This is something I do think PostgreSQL excels much much better than most open source projects.  I find a ton of flaws in PostGIS I&#039;d like to change and have and I am greatful that PostGIS, like PostgreSQL is not resistant to change if the community wants it. If you are going to take notice of flaws in other products without admitting to your own or admitting that some things are easier in other products and learning from them, then you are a hypocrite or living in a closet.  Now getting back to my complaining.  Things I miss in PostgreSQL that I had in others which I&#039;m sure I&#039;m not alone.&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Being able to change a table column type of a table column that is used in a VIEW and have PostgreSQL just correct the type in the view
or allow me the option to change it later.  This is something we had in SQL Server which Leo whines about often.  Actually Leo&#039;s whining is more annoying than
the actual problem itself. The notice is at least very descriptive which is more than I can say for other databases.&lt;/li&gt;
	&lt;li&gt;Being able to reorder columns in a table. Again something fairly trivial to do in SQL Server and MySQL but not possible in PostgreSQL.&lt;/li&gt;
&lt;/ul&gt; 
    </content:encoded>

    <pubDate>Wed, 05 Oct 2011 09:15:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/223-guid.html</guid>
    
</item>
<item>
    <title>KNN Gist for PostGIS in Place</title>
    <link>http://www.postgresonline.com/journal/archives/222-KNN-Gist-for-PostGIS-in-Place.html</link>
            <category>9.1</category>
            <category>new in postgresql</category>
            <category>postgis</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/222-KNN-Gist-for-PostGIS-in-Place.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=222</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=222</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;Lots of people have been asking the never ending question of when PostGIS is going to get on the band wagon and support KNN GIST like other GIST based types trigrams, full text search etc.  Well it&#039;s happened in PostGIS 2.0 and now committed. More of the gory details at &lt;a href=&quot;http://blog.opengeo.org/2011/09/28/indexed-nearest-neighbour-search-in-postgis/&quot; target=&quot;_blank&quot;&gt;Indexed Nearest Neighbour Search in PostGIS&lt;/a&gt;.
In short this will make point / point distance searches and rankings way way faster and help also with other distance searches by providing approximations to start with.&lt;/p&gt;

&lt;p&gt;We are still preparing the PostgreSQL 9.1 2.0 32-bit windows builds that will have this functionality and should have that ready in the next day or so.&lt;/p&gt;

&lt;p&gt;To summarize what you can expect.  We spent a lot of time discussing and were torn between a &lt;a href=&quot;http://www.postgis.org/documentation/manual-svn/geometry_distance_box.html&quot; target=&quot;_blank&quot;&gt;box distance operator &amp;lt;#&amp;gt;&lt;/a&gt; and a &lt;a href=&quot;http://www.postgis.org/documentation/manual-svn/geometry_distance_centroid.html&quot; target=&quot;_blank&quot;&gt;centroid box distance operator &amp;lt;-&amp;gt;&lt;/a&gt;, so we ended up having both.  The reason being is that for some kinds of geometries e.g. streets that aren&#039;t diagonal a box distance operator seems to be a much better approximation of distance than a centroid box distance operator.  For points of course the two concepts are the same and not an approximation so point / point distance you&#039;d be better off using the new KNN sorting than ST_Distance + ST_DWithin as we have suggested in past.  I&#039;ll be doing some benchmarks in the coming weeks comparing the old way and speed differences you can expect and perhaps throwing together box and centroid cocktails that combine the two weapons into thought provoking WTFs (or as Dave Fetter would say &amp;quot;That&#039;s very &lt;a href=&quot;http://en.wikipedia.org/wiki/Rube_Goldberg&quot; target=&quot;_blank&quot;&gt;Rube Goldberg&lt;/a&gt; of you&amp;quot;).&lt;/p&gt;
&lt;p&gt;I suspect I&#039;ll probably be sticking with &amp;lt;#&amp;gt; because &lt;a href=&quot;http://www.postgis.org/pipermail/postgis-devel/2011-September/015291.html&quot; target=&quot;_blank&quot;&gt;I like the symbol better and I was one of the ones fighting for it&lt;/a&gt; :).&lt;/p&gt;


 
    </content:encoded>

    <pubDate>Thu, 29 Sep 2011 00:29:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/222-guid.html</guid>
    <category>postgis</category>
<category>postgresql 9.1</category>

</item>
<item>
    <title>FOSS4G 2011 PostGIS the new stuf</title>
    <link>http://www.postgresonline.com/journal/archives/220-FOSS4G-2011-PostGIS-the-new-stuf.html</link>
            <category>9.1</category>
            <category>new in postgresql</category>
            <category>postgis</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/220-FOSS4G-2011-PostGIS-the-new-stuf.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=220</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=220</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;We attended FOSS4G this year in Denver, Colorado.  Friday was a PostGIS bonanza with 5 PostGIS talks back to back including ours. 
The crowd was huge.  All the PostGIS talks as I recall were so packed that there were not enough seats to accommodate everyone. A more comprehensive 
detail of the events is described on OpenGeo &lt;a href=&quot;http://blog.opengeo.org/2011/09/17/foss4g-day-5/&quot; target=&quot;_blank&quot;&gt;FOSS4G Day #5&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We admit to overstuffing our slides with SQL and ran short on time at the end.  Leo complained and vowed to do a better job next time.
We really weren&#039;t expecting such a large crowd.   Admittedly I&#039;m all for the after conference experience which is much longer than the conference which is why I tend to make slides that are very dense.  &lt;b&gt;WARNING: The following slides feature SQL doing unconventional things suitable only for mature audiences.  Viewer discretion is adviced.&lt;/b&gt;. You can check out our slides here &lt;a href=&quot;http://www.postgis.us/downloads/FOSS4G2011PostGIS20NewStuff.pdf&quot; target=&quot;_blank&quot;&gt;PostGIS 2.0 the new stuff&lt;/a&gt;.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/220-FOSS4G-2011-PostGIS-the-new-stuf.html#extended&quot;&gt;Continue reading &quot;FOSS4G 2011 PostGIS the new stuf&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 18 Sep 2011 22:55:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/220-guid.html</guid>
    <category>extensions</category>
<category>postgis</category>

</item>
<item>
    <title>PostGIS as a graphical engine</title>
    <link>http://www.postgresonline.com/journal/archives/218-PostGIS-as-a-graphical-engine.html</link>
            <category>application development</category>
            <category>gis</category>
            <category>postgis</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/218-PostGIS-as-a-graphical-engine.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=218</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=218</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;A while back in &lt;a href=&quot;http://www.postgresonline.com/journal/archives/208-New-Additions-and-Promotions-in-PostGIS-Development-Team.html&quot; target=&quot;_blank&quot;&gt;New Additions and Promotions in PostGIS Development Team&lt;/a&gt;, I mentioned that the new addition to our team Bborie Park was working on image output functions for raster support, among other things.  His last addition was ST_AsRaster which allows a PostGIS geometry to cross the line to the raster world, all in the database.  This new addition almost completes the basic cycle of making PostGIS not only a spatial analytical tool, but also a rendering engine.&lt;/p&gt;

&lt;p&gt;To test out these new functions, I whipped up a quick ASP.NET/JQuery app as described in &lt;a href=&quot;http://www.bostongis.com/blog/index.php?/archives/174-Minimalist-Web-based-ASP.NET-PostGIS-2.0-Spatial-GeometryRaster-Viewer.html&quot; target=&quot;_blank&quot;&gt;Minimalist Web-based ASP.NET PostGIS 2.0 Spatial Geometry/Raster Viewer&lt;/a&gt;, and Bborie followed up with the PHP version which you can download from &lt;a href=&quot;http://www.postgis.us/downloads/postgis_webviewer_php.zip&quot; target=&quot;_blank&quot;&gt;http://www.postgis.us/downloads/postgis_webviewer_php.zip&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There is still much room for improvement, e.g. intersection of 2 rasters, faster response, etc,  but I can see all the lights flickering and the connections coming together like a self-orchestrating organism.  From chaos comes order.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Fri, 26 Aug 2011 18:50:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/218-guid.html</guid>
    <category>postgis raster viewer</category>

</item>

</channel>
</rss>
