<?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 - ltree</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>Mon, 13 Aug 2012 23:10:16 GMT</pubDate>

    <image>
        <url>http://www.postgresonline.com/journal/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Postgres OnLine Journal - ltree - 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>Schemas vs. Schemaless structures and The PostgreSQL Type Farm</title>
    <link>http://www.postgresonline.com/journal/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>http://www.postgresonline.com/journal/archives/265-Schemas-vs.-Schemaless-structures-and-The-PostgreSQL-Type-Farm.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=265</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://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://www.postgis.org&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">http://www.postgresonline.com/journal/archives/265-guid.html</guid>
    <category>postgis</category>
<category>postgresql 9.2</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>Using LTree to Represent and Query Hierarchy and Tree Structures</title>
    <link>http://www.postgresonline.com/journal/archives/173-Using-LTree-to-Represent-and-Query-Hierarchy-and-Tree-Structures.html</link>
            <category>8.2</category>
            <category>8.3</category>
            <category>8.4</category>
            <category>9.0</category>
            <category>contrib spotlight</category>
            <category>db2</category>
            <category>firebird</category>
            <category>intermediate</category>
            <category>ltree</category>
            <category>oracle</category>
            <category>postgresql versions</category>
            <category>sql server</category>
    
    <comments>http://www.postgresonline.com/journal/archives/173-Using-LTree-to-Represent-and-Query-Hierarchy-and-Tree-Structures.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=173</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;PostgreSQL offers several options for displaying and querying tree like structures.  
In &lt;a href=&quot;http://www.postgresonline.com/journal/archives/131-Using-Recursive-Common-table-expressions-to-represent-Tree-structures.html&quot; target=&quot;_blank&quot;&gt;Using Recursive Common Table Expressions (CTE) to represent tree structures&lt;/a&gt;
we demonstrated how to use common table expressions to display a tree like structure.  Common Table Expressions required PostgreSQL 8.4 and above but  was fairly ANSI standards compliant. In addition to that 
approach you have the option of using recursive functions.  There is yet another common approach for this which is specific to PostgreSQL.  This is using the &lt;a href=&quot;http://www.postgresql.org/docs/current/static/ltree.html&quot; target=&quot;_blank&quot;&gt;ltree contrib datatype&lt;/a&gt;
that has been supported for sometime in PostgreSQL.  For one of our recent projects, we chose ltree over the other approaches because the performance is much better when you need to do ad-hoc queries over the tree since it can take advantage of btree and gist indexes
and also has built-in tree query expressions that make ad-hoc queries simpler to do; similar in concept to the tsearch query syntax for querying text. &lt;/p&gt;

&lt;p&gt;In this article we&#039;ll demonstrate how to use ltree and along the way also show the PostgreSQL 9.0 new features &lt;b&gt;conditional triggers&lt;/b&gt; and &lt;b&gt;ordered aggregates&lt;/b&gt;.&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/173-Using-LTree-to-Represent-and-Query-Hierarchy-and-Tree-Structures.html#extended&quot;&gt;Continue reading &quot;Using LTree to Represent and Query Hierarchy and Tree Structures&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 22 Aug 2010 01:15:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/173-guid.html</guid>
    <category>ansi sql</category>
<category>common table expressions</category>
<category>firebird</category>
<category>ibm db2</category>
<category>oracle</category>
<category>postgresql 9.0</category>
<category>sql server</category>
<category>triggers</category>

</item>

</channel>
</rss>