<?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 - hstore</title>
    <link>https://www.postgresonline.com/journal/</link>
    <description>Tips and tricks for PostgreSQL</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 2.3.5 - http://www.s9y.org/</generator>
    <pubDate>Mon, 28 Apr 2014 08:44:18 GMT</pubDate>

    <image>
    <url>https://www.postgresonline.com/journal/templates/default/img/s9y_banner_small.png</url>
    <title>RSS: Postgres OnLine Journal - hstore - Tips and tricks for PostgreSQL</title>
    <link>https://www.postgresonline.com/journal/</link>
    <width>100</width>
    <height>21</height>
</image>

<item>
    <title>Using HStore for Archiving</title>
    <link>https://www.postgresonline.com/journal/index.php?/archives/330-Using-HStore-for-Archiving.html</link>
            <category>application development</category>
            <category>hstore</category>
            <category>intermediate</category>
            <category>postgis</category>
    
    <comments>https://www.postgresonline.com/journal/index.php?/archives/330-Using-HStore-for-Archiving.html#comments</comments>
    <wfw:comment>https://www.postgresonline.com/journal/wfwcomment.php?cid=330</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;I&#039;m not a big proponent of schemaless designs, but they have their place.  One particular place where I think they are useful is for archiving of data
where even though the underlying table structure of the data you need to archive is changing, you want the archived record to have the same fields as it did back then.
This is a case where I think Hstore and the way PostgreSQL has it implemented works pretty nicely. &lt;/p&gt;
&lt;p&gt;Side note: one of the new features of PostgreSQL 9.4 is improved GIN indexes (faster and smaller) which 
is very often used with hstore data (and the new jsonb type). We&#039;re really looking forward to the GIN improvements more so than the jsonb feature.  We&#039;re hoping to test out this improved index functionality with OpenStreetMap data soon and compare with our existing PostgreSQL 9.3.  OpenStreetMap pbf and osm extract loaders (osm2pgsql, imposm) provide option for loading tagged data into PostgreSQL hstore fields, in addition to PostGIS geometry and other attribute fields. So 9.4 enhancements should be a nice gift for OSM data users. More on that later.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://www.postgresonline.com/journal/index.php?/archives/330-Using-HStore-for-Archiving.html#extended&quot;&gt;Continue reading &quot;Using HStore for Archiving&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 25 Apr 2014 00:24:00 -0400</pubDate>
    <guid isPermaLink="false">https://www.postgresonline.com/journal/index.php?/archives/330-guid.html</guid>
    
</item>
<item>
    <title>PostgreSQL 9.3 Lateral Part 1: Use with HStore</title>
    <link>https://www.postgresonline.com/journal/index.php?/archives/284-PostgreSQL-9.3-Lateral-Part-1-Use-with-HStore.html</link>
            <category>9.3</category>
            <category>contrib spotlight</category>
            <category>hstore</category>
            <category>postgis</category>
            <category>postgresql versions</category>
    
    <comments>https://www.postgresonline.com/journal/index.php?/archives/284-PostgreSQL-9.3-Lateral-Part-1-Use-with-HStore.html#comments</comments>
    <wfw:comment>https://www.postgresonline.com/journal/wfwcomment.php?cid=284</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;One of the improvements coming in PostgreSQL 9.3 is the new &lt;code&gt;LATERAL&lt;/code&gt; SQL clause.  LATERAL allows you to write more
succinct code than you would be able to otherwise and will be a welcome companion to extensions like hstore and PostGIS which both
have a plethora of set returning functions.  In this article, I&#039;ll just demonstrate it&#039;s use with hstore and subsequent I&#039;ll talk
about it&#039;s potential use in PostGIS raster,geometry, and topology for exploding subelements.&lt;/p&gt;

&lt;p&gt;One thing I was very interested in aside from the succinctness is whether it will be more performant than the older approach.
A perfect test case for hstore would be the example we just demonstrated in &lt;a href=&quot;https://www.postgresonline.com/journal/archives/283-Unpivoting-data-in-PostgreSQL.html&quot; target=&quot;_blank&quot;&gt;Unpivoting data in PostgreSQL&lt;/a&gt;.  For this example, we&#039;ll rewrite the hstore view using LATERAL instead of employing a subselect.&lt;/p&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://www.postgresonline.com/journal/index.php?/archives/284-PostgreSQL-9.3-Lateral-Part-1-Use-with-HStore.html#extended&quot;&gt;Continue reading &quot;PostgreSQL 9.3 Lateral Part 1: Use with HStore&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 06 Jan 2013 07:00:00 -0500</pubDate>
    <guid isPermaLink="false">https://www.postgresonline.com/journal/index.php?/archives/284-guid.html</guid>
    
</item>
<item>
    <title>Unpivoting data in PostgreSQL</title>
    <link>https://www.postgresonline.com/journal/index.php?/archives/283-Unpivoting-data-in-PostgreSQL.html</link>
            <category>9.2</category>
            <category>contrib spotlight</category>
            <category>hstore</category>
            <category>postgresql versions</category>
            <category>sql server</category>
            <category>tablefunc</category>
    
    <comments>https://www.postgresonline.com/journal/index.php?/archives/283-Unpivoting-data-in-PostgreSQL.html#comments</comments>
    <wfw:comment>https://www.postgresonline.com/journal/wfwcomment.php?cid=283</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;A while ago we demonstrated how to &lt;a href=&quot;http://www.postgresonline.com/journal/archives/14-CrossTab-Queries-in-PostgreSQL-using-tablefunc-contrib.html&quot; target=&quot;_blank&quot;&gt;create cross tabulation tables&lt;/a&gt; using &lt;em&gt;&lt;a href=&quot;http://www.postgresql.org/docs/current/interactive/tablefunc.html&quot; target=&quot;_blank&quot;&gt;tablefunc&lt;/a&gt;&lt;/em&gt; extension aka (Pivot Tables) (basically collapsing
rows into columns).
Recently someone asked me how to do the reverse (convert columns to rows).  He found a solution to the problem here: &lt;a href=&quot;http://stackoverflow.com/questions/1128737/unpivot-and-postgresql&quot;&gt;http://stackoverflow.com/questions/1128737/unpivot-and-postgresql&lt;/a&gt;
using a combination of &lt;b&gt;&lt;a href=&quot;http://www.postgresql.org/docs/current/interactive/functions-array.html&quot; target=&quot;_blank&quot;&gt;array&lt;/a&gt;&lt;/b&gt; and &lt;b&gt;unnest&lt;/b&gt;.  That approach is very similar to &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms177410%28v=sql.105%29.aspx&quot; target=&quot;_blank&quot;&gt;SQL Server&#039;s built-in Pivot SQL predicate&lt;/a&gt;. 
The solution seemed
nice enough except similar to the SQL Server Unpivot, it required knowing the column names  beforehand so very hard to genericize. 
So would it be possible to accomplish this feat without knowing the columns names (except for the key) and be able to do it with one SQL statement.  I realized that the 
PostgreSQL &lt;em&gt;&lt;a href=&quot;http://www.postgresql.org/docs/current/interactive/hstore.html&quot; target=&quot;_blank&quot;&gt;hstore&lt;/a&gt;&lt;/em&gt; extension fit the bill nicely. In this article I&#039;ll demonstrate both approaches by creating a view 
using both.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://www.postgresonline.com/journal/index.php?/archives/283-Unpivoting-data-in-PostgreSQL.html#extended&quot;&gt;Continue reading &quot;Unpivoting data in PostgreSQL&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 04 Jan 2013 15:03:00 -0500</pubDate>
    <guid isPermaLink="false">https://www.postgresonline.com/journal/index.php?/archives/283-guid.html</guid>
    
</item>
<item>
    <title>Schemas vs. Schemaless structures and The PostgreSQL Type Farm</title>
    <link>https://www.postgresonline.com/journal/index.php?/archives/265-Schemas-vs.-Schemaless-structures-and-The-PostgreSQL-Type-Farm.html</link>
            <category>9.2</category>
            <category>editor note</category>
            <category>hstore</category>
            <category>ltree</category>
            <category>postgis</category>
    
    <comments>https://www.postgresonline.com/journal/index.php?/archives/265-Schemas-vs.-Schemaless-structures-and-The-PostgreSQL-Type-Farm.html#comments</comments>
    <wfw:comment>https://www.postgresonline.com/journal/wfwcomment.php?cid=265</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;There has been a lot of talk lately about &lt;a href=&quot;http://dbdebunk.blogspot.it/2012/08/schema-nosql-and-relational-model-part-1.html&quot; target=&quot;_blank&quot;&gt;schemaless models touted by NoSQL groups&lt;/a&gt; and &lt;A href=&quot;http://archives.postgresql.org/pgsql-advocacy/2012-08/msg00052.php&quot; target=&quot;_blank&quot;&gt;how PostgreSQL fits into this New world order&lt;/a&gt;. 
Is PostgreSQL Object-Relational? Is it &lt;a href=&quot;http://database-explorer.blogspot.com/2012/08/postgresql-multi-model-database-server.html&quot; target=&quot;_blank&quot;&gt;Multi-Model&lt;/a&gt;. We tend to think of PostgreSQL as type liberal and it&#039;s liberalness gets more liberal with each new release. PostgreSQL is fundamentally relational, but has little bias about what data types define each column of related tables. One of PostgreSQL great strengths is the ease with which different types can coexist in the same table and the &lt;a href=&quot;http://www.postgresql.org/docs/9.2/interactive/indexam.html&quot; target=&quot;_blank&quot;&gt;flexible index plumbing&lt;/a&gt; and plan optimizer it provides that allows each type, regardless of how wild, to take full advantage of various index strategies and custom index bindings.  Our 3 favorite custom non-built-in types we use in our workflow are
&lt;a href=&quot;http://postgis.net&quot; target=&quot;_blank&quot;&gt;PostGIS (of course)&lt;/a&gt;, &lt;a href=&quot;http://www.postgresql.org/docs/current/static/ltree.html&quot;&gt;LTree (Hierarchical Type)&lt;/a&gt;, and &lt;a href=&quot;http://www.postgresql.org/docs/current/interactive/hstore.html&quot; target=&quot;_blank&quot;&gt;HStore (Key-Value type)&lt;/a&gt;. In some cases, we may use all 3 in the same database and sometimes the same table - where we use PostGIS for spatial location, LTree for logical location, and Hstore just to keep track of random facts about an object that are easier to access than having a separate related table and are too random to warrant devoting a separate column for each. Sometimes we are guilty of using xml as well when we haven&#039;t figured out what schema model best fits a piece of data and hstore is too flat of a type to work. The advent of JSON in PostgreSQL 9.2 does provide for a nested schema-less model similar to what the XML type offers, but more JavaScript friendly.  I personally see JSON as more of a useful transport type than one I&#039;d build my business around or a type you&#039;d use when you haven&#039;t figured out what if any structure is most suitable for your data. When you have no clue what structure a piece of data should be stored, you should let the data tell you what structure it wants to be stored in and only then will you discover by storing it in a somewhat liberal fashion how best to retrofit in a more structural self-descriptive manner. Schemas are great because they are self-describing, but they are not great when your data does not want to sit in a self-described bucket. You may find in the end that some data is just wild and refuses to stay between the lines and then by all means stuff it in xml or json or create a whole new type suit it feels comfortable in.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 12 Aug 2012 05:18:00 -0400</pubDate>
    <guid isPermaLink="false">https://www.postgresonline.com/journal/index.php?/archives/265-guid.html</guid>
    
</item>
<item>
    <title>Foreign Data Wrap (FDW) Text Array, hstore, and Jagged Arrays</title>
    <link>https://www.postgresonline.com/journal/index.php?/archives/259-Foreign-Data-Wrap-FDW-Text-Array,-hstore,-and-Jagged-Arrays.html</link>
            <category>9.1</category>
            <category>9.2</category>
            <category>contrib spotlight</category>
            <category>cte</category>
            <category>fdws</category>
            <category>hstore</category>
            <category>postgresql versions</category>
    
    <comments>https://www.postgresonline.com/journal/index.php?/archives/259-Foreign-Data-Wrap-FDW-Text-Array,-hstore,-and-Jagged-Arrays.html#comments</comments>
    <wfw:comment>https://www.postgresonline.com/journal/wfwcomment.php?cid=259</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;As we discussed in &lt;a href=&quot;https://www.postgresonline.com/journal/archives/251-File-FDW-Family-Part-2-file_textarray_fdw-Foreign-Data-Wrapper.html&quot; target=&quot;_blank&quot;&gt;file_textarray_fdw Foreign Data Wrapper&lt;/a&gt;, &lt;a href=&quot;http://people.planetpostgresql.org/andrew/index.php?/archives/271-Deploying-file_text_array-Foreign-Data-wrapper.html&quot; target=&quot;_blank&quot;&gt;Andrew Dunstan&#039;s text array foreign data wrapper&lt;/a&gt; works great for bringing in a delimited file and not having to worry about the column names until they are in.
We had demonstrated one way to tag the field names to avoid having to keep track of index locations, by using hstore and the header column in conjunction.  
The problem with that is it doesn&#039;t work for jagged arrays.  Jagged arrays are when not all rows have the same number of columns. I&#039;ve jury rigged a small example
to demonstrate the issue.  Luckily with the power of PostgreSQL arrays you can usually get around this issue and still have nice names for your columns.  We&#039;ll demonstrate that too.&lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://www.postgresonline.com/journal/index.php?/archives/259-Foreign-Data-Wrap-FDW-Text-Array,-hstore,-and-Jagged-Arrays.html#extended&quot;&gt;Continue reading &quot;Foreign Data Wrap (FDW) Text Array, hstore, and Jagged Arrays&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 15 Jul 2012 02:35:00 -0400</pubDate>
    <guid isPermaLink="false">https://www.postgresonline.com/journal/index.php?/archives/259-guid.html</guid>
    
</item>
<item>
    <title>PostgreSQL 9.2: Preserving column names of subqueries</title>
    <link>https://www.postgresonline.com/journal/index.php?/archives/254-PostgreSQL-9.2-Preserving-column-names-of-subqueries.html</link>
            <category>9.2</category>
            <category>hstore</category>
            <category>new in postgresql</category>
            <category>postgresql versions</category>
    
    <comments>https://www.postgresonline.com/journal/index.php?/archives/254-PostgreSQL-9.2-Preserving-column-names-of-subqueries.html#comments</comments>
    <wfw:comment>https://www.postgresonline.com/journal/wfwcomment.php?cid=254</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;There is another new feature in 9.2 that doesn&#039;t get much press, and probably because it&#039;s hard to explain.  It is a pretty useful feature if you are working with the new json type or the existing hstore type.  In prior versions if you used a subquery and converted the rows to hstore or json  the column names were not preserved.  Andrew mentioned a back-port path for this issue in &lt;a href=&quot;http://people.planetpostgresql.org/andrew/index.php?/archives/272-Upgradable-JSON.html&quot; target=&quot;_blank&quot;&gt;Upgradeable JSON&lt;/a&gt;. We described a workaround for this issue in &lt;a href=&quot;https://www.postgresonline.com/journal/archives/238-Mail-Merging-using-Hstore.html&quot;&gt;Mail merging using hstore&lt;/a&gt;.  The workaround for including PostGIS geometry in json record output as described in &lt;a href=&quot;https://www.postgresonline.com/journal/archives/253-PostgreSQL-9.2-native-json-type-support.html&quot; target=&quot;_blank&quot;&gt;Native JSON type support&lt;/a&gt; wouldn&#039;t work as nicely without this enhancement. Here is an example to demonstrate.&lt;/p&gt;

 &lt;a class=&quot;block_level&quot; href=&quot;https://www.postgresonline.com/journal/index.php?/archives/254-PostgreSQL-9.2-Preserving-column-names-of-subqueries.html#extended&quot;&gt;Continue reading &quot;PostgreSQL 9.2: Preserving column names of subqueries&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 07 Jun 2012 01:17:00 -0400</pubDate>
    <guid isPermaLink="false">https://www.postgresonline.com/journal/index.php?/archives/254-guid.html</guid>
    
</item>
<item>
    <title>Mail Merging using Hstore</title>
    <link>https://www.postgresonline.com/journal/index.php?/archives/238-Mail-Merging-using-Hstore.html</link>
            <category>9.0</category>
            <category>9.1</category>
            <category>9.2</category>
            <category>contrib spotlight</category>
            <category>hstore</category>
            <category>intermediate</category>
            <category>postgresql versions</category>
            <category>window functions</category>
    
    <comments>https://www.postgresonline.com/journal/index.php?/archives/238-Mail-Merging-using-Hstore.html#comments</comments>
    <wfw:comment>https://www.postgresonline.com/journal/wfwcomment.php?cid=238</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;For those who aren&#039;t familiar with &lt;b&gt;&lt;a href=&quot;http://www.postgresql.org/docs/9.1/static/hstore.html&quot; target=&quot;_blank&quot;&gt;hstore&lt;/a&gt;&lt;/b&gt;, it&#039;s a key/value
storage type that is packaged as an extension or contrib in PostgreSQL 8.2+. In PostgreSQL 9.0 it got a little extra loving in several ways one of which was the introduction
of the hstore(record) casting function that converts a record to an hstore.  In this article, I&#039;ll demonstrate how you can use this new casting function to do very sleek mail merges right in the database. The only caveat is that it seems to only correctly name the keys if it is fed a real table or view. Derived queries such as aggregates etc get keys named f1, f2, etc.&lt;/p&gt;
&lt;p&gt;If you are on PostgreSQL 9.1 or above installing -- hstore is just a &lt;code&gt;CREATE EXTENSION hstore;&lt;/code&gt; sql command away. If you are on a lower version of PostgreSQL,
you can usually find the hstore.sql in share/contribs.  &lt;/p&gt; &lt;a class=&quot;block_level&quot; href=&quot;https://www.postgresonline.com/journal/index.php?/archives/238-Mail-Merging-using-Hstore.html#extended&quot;&gt;Continue reading &quot;Mail Merging using Hstore&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 28 Dec 2011 00:25:00 -0500</pubDate>
    <guid isPermaLink="false">https://www.postgresonline.com/journal/index.php?/archives/238-guid.html</guid>
    
</item>
<item>
    <title>Improving speed of GIST indexes in PostgreSQL 9.2</title>
    <link>https://www.postgresonline.com/journal/index.php?/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>https://www.postgresonline.com/journal/index.php?/archives/225-Improving-speed-of-GIST-indexes-in-PostgreSQL-9.2.html#comments</comments>
    <wfw:comment>https://www.postgresonline.com/journal/wfwcomment.php?cid=225</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://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://postgis.net/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://postgis.net/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://postgis.net/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;a class=&quot;block_level&quot; href=&quot;https://www.postgresonline.com/journal/index.php?/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">https://www.postgresonline.com/journal/index.php?/archives/225-guid.html</guid>
    
</item>
<item>
    <title>Explain Plans PostgreSQL 9.0 Text, JSON, XML, YAML - Part 1: You Choose</title>
    <link>https://www.postgresonline.com/journal/index.php?/archives/171-Explain-Plans-PostgreSQL-9.0-Text,-JSON,-XML,-YAML-Part-1-You-Choose.html</link>
            <category>9.0</category>
            <category>basics</category>
            <category>beginner</category>
            <category>gis</category>
            <category>hstore</category>
            <category>pgadmin</category>
            <category>postgis</category>
    
    <comments>https://www.postgresonline.com/journal/index.php?/archives/171-Explain-Plans-PostgreSQL-9.0-Text,-JSON,-XML,-YAML-Part-1-You-Choose.html#comments</comments>
    <wfw:comment>https://www.postgresonline.com/journal/wfwcomment.php?cid=171</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;One of the new features of PostgreSQL 9.0 is the ability to specify the format of an explain plan.
In prior versions your only choice was text (and graphic explain with tools like PgAdmin III and other GUIS), but in 9.0 on, you have the additional options of
Javascript Object Notation (JSON) which &lt;a href=&quot;http://lin-ear-th-inking.blogspot.com/2010/07/is-json-csv-of-21st-century.html&quot; target=&quot;_blank&quot;&gt;some people have a thing or two to say about them&lt;/a&gt;,  YAML Ain&#039;t Markup Language (YAML) or eXtended Markup Language (XML). The new explain options are itemized in &lt;a href=&quot;http://www.postgresql.org/docs/9.0/static/sql-explain.html&quot; target=&quot;_blank&quot;&gt;PostgreSQL 9.0 EXPLAIN&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;The main benefit of the JSON, XML, YAML formats is that they are easier
to machine parse than the default text version. This will allow for creative renderings of planner trees with minimal coding.&lt;/p&gt;

&lt;p&gt;In Part 1 of this series, we&#039;ll demonstrate how to output the plans in these various formats and what they look like.
In later parts of this series -- we&#039;ll demonstrate how to use Javascript, XSL and other scripting/markup languages
to transform these into works of art you can hang on your wall.&lt;/p&gt;

-- START POSTGIS IN ACTION ASIDE --
&lt;p&gt;We just submitted the third major revision of &lt;a href=&quot;http://www.postgis.us/chapter_03&quot; target=&quot;_blank&quot;&gt;Chapter 3 Data Modeling&lt;/a&gt;
of our upcoming &lt;a href=&quot;http://www.postgis.us&quot; target=&quot;_blank&quot;&gt;PostGIS in Action&lt;/a&gt; book. 
The second major revision we never submitted and threw it out because it wasn&#039;t worldly enough and was too involved. We may
use it later on for an example.
Chapter 3 should be up on Manning Early Access Program (MEAP) soon. If you haven&#039;t bought the book yet &lt;a href=&quot;http://www.postgis.us/page_buy_book&quot;&gt;Buy now&lt;/a&gt;.
You don&#039;t want to miss out on a major masterpiece in the making. Okay we exaggerate a bit.&lt;/p&gt;
-- END POSTGIS IN ACTION ASIDE -- &lt;a class=&quot;block_level&quot; href=&quot;https://www.postgresonline.com/journal/index.php?/archives/171-Explain-Plans-PostgreSQL-9.0-Text,-JSON,-XML,-YAML-Part-1-You-Choose.html#extended&quot;&gt;Continue reading &quot;Explain Plans PostgreSQL 9.0 Text, JSON, XML, YAML - Part 1: You Choose&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 29 Jul 2010 17:58:03 -0400</pubDate>
    <guid isPermaLink="false">https://www.postgresonline.com/journal/index.php?/archives/171-guid.html</guid>
    
</item>

</channel>
</rss>
