<?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 (Entries tagged as postgresql 9.2)</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, 19 Jan 2013 19:12:44 GMT</pubDate>

    <image>
        <url>http://www.postgresonline.com/journal/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Postgres OnLine Journal - 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>PostgreSQL 9.2 windows binaries for file_textarray_fdw</title>
    <link>http://www.postgresonline.com/journal/archives/286-PostgreSQL-9.2-windows-binaries-for-file_textarray_fdw.html</link>
            <category>9.2</category>
            <category>contrib spotlight</category>
            <category>fdws</category>
            <category>postgresql versions</category>
            <category>winextensions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/286-PostgreSQL-9.2-windows-binaries-for-file_textarray_fdw.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=286</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;We discussed a while back the &lt;a href=&quot;http://www.postgresonline.com/journal/archives/251-File-FDW-Family-Part-2-file_textarray_fdw-Foreign-Data-Wrapper.html&quot; target=&quot;_blank&quot;&gt;Text array foreign data wrapper&lt;/a&gt; that allows you to register and query a delimited file as if it were a regular table with one array column.
It&#039;s probably the FDW we use most often and reminded of that recently when I had to query a 500,000 record resident list tab delimited file to prep for geocoding.&lt;/p&gt;

&lt;p&gt;When we upgraded to 9.2 and we could no longer compile, I wrote to Andrew Dunstan about this and &lt;a href=&quot;http://people.planetpostgresql.org/andrew/index.php?/archives/291-File-Text-Array-FDW-changes.html&quot; target=&quot;_blank&quot;&gt;he kindly created a 9.2 version&lt;/a&gt;.
Unfortunately there are still quite a few FDWs broken as a result of the 9.2 changes and I was hoping to try to apply similar patches to them that I saw Andrew do, but
haven&#039;t had the patience or time yet. Anyway we&#039;ve compiled these for 9.2 under our mingw64-w64 and mingw64-w32 chains using Andrew&#039;s 9.2 GitHub stable branch. 
&lt;a href=&quot;https://github.com/adunstan/file_text_array_fdw/tree/REL9_2_STABLE&quot;&gt;https://github.com/adunstan/file_text_array_fdw/tree/REL9_2_STABLE&lt;/a&gt;
and we&#039;ve tested them using the PostgreSQL EDB windows VC++ compiled versions. We hope you find them as useful as we have.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;/downloads/fdw_win32_92_bin.zip&quot;&gt;PostgreSQL 9.2 w32 FDWs&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;/downloads/fdw_win64_92_bin.zip&quot;&gt;PostgreSQL 9.2 w64 FDWs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&#039;m hoping to add more FDWs to these 9.2 bags once
we have those working again. If you want to compile yourself or compile others, we have instructions in the packaged README.txt.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sat, 19 Jan 2013 14:06:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/286-guid.html</guid>
    <category>fdw</category>
<category>file_textarray_fdw</category>
<category>foreign data wrapper</category>
<category>postgresql 9.2</category>
<category>windows</category>

</item>
<item>
    <title>Using PLV8 to build JSON selectors</title>
    <link>http://www.postgresonline.com/journal/archives/272-Using-PLV8-to-build-JSON-selectors.html</link>
            <category>9.2</category>
            <category>pl programming</category>
            <category>plv8js</category>
            <category>postgis</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/272-Using-PLV8-to-build-JSON-selectors.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=272</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;Unfortunately we missed Postgres Open this year, but we did catch some of the slides.  One of them was &lt;a href=&quot;http://plv8-pgopen.herokuapp.com&quot; target=&quot;_blank&quot;&gt;Embracing the web with JSON and PLV8&lt;/a&gt; by Will Leinweber of Heroku.  He had a great slide deck with a lot of interesting points.  One surprising for us was that even in tasks that both PL/PgSQL and PL/V8 can do, PL/V8 is sometimes faster as demonstrated in his slides:
&lt;a href=&quot;http://plv8-pgopen.herokuapp.com/#51&quot; target=&quot;_blank&quot;&gt;#51&lt;/a&gt; thru &lt;a href=&quot;http://plv8-pgopen.herokuapp.com/#54&quot; target=&quot;_blank&quot;&gt;#54&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Another interesting point he covered which is the topic of this article is the ease with which you can build PLV8 functions from javascript libs on the web. In particular &lt;a href=&quot;http://jsonselect.org/#docs&quot;&gt;JSON:Select&lt;/a&gt; library.
In one article we demonstrated &lt;a href=&quot;http://www.postgresonline.com/journal/archives/264-PLV8JS-and-PLCoffee-Part-2B-PHP-JQuery-App.html&quot; target=&quot;_blank&quot;&gt;a JQuery app with PLV8&lt;/a&gt; and one of JQuery&#039;s foundations is the CSS like selector syntax it provides for JSON and HTML document elements which allows you to drill down a document using CSS3 style referencing, much like what &lt;a href=&quot;http://en.wikipedia.org/wiki/XPath&quot; target=&quot;_blank&quot;&gt;xpath&lt;/a&gt; does for xml. One of the glaring features missing in PostgreSQL 9.2 basic JSON support is a function to navigate a JSON document comparable to the &lt;a href=&quot;http://www.postgresql.org/docs/current/interactive/functions-xml.html&quot; target=&quot;_blank&quot;&gt;PostgreSQL built-in xpath function for xml&lt;/a&gt;.
So how do we get this json selector goodness available to us in the database? Like all good monkeys, we copy/emulate it.  &lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/272-Using-PLV8-to-build-JSON-selectors.html#extended&quot;&gt;Continue reading &quot;Using PLV8 to build JSON selectors&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 23 Sep 2012 21:40:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/272-guid.html</guid>
    <category>json</category>
<category>pljavascript</category>
<category>plv8</category>
<category>postgresql 9.2</category>

</item>
<item>
    <title>Creating GeoJSON Feature Collections with JSON and PostGIS functions</title>
    <link>http://www.postgresonline.com/journal/archives/267-Creating-GeoJSON-Feature-Collections-with-JSON-and-PostGIS-functions.html</link>
            <category>9.2</category>
            <category>application development</category>
            <category>json</category>
            <category>postgis</category>
            <category>postgresql versions</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/267-Creating-GeoJSON-Feature-Collections-with-JSON-and-PostGIS-functions.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=267</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;If you do a lot of web-based GIS applications, a common desire is to allow a user to 
draw out an area on the map and then do searches against that area and return back a FeatureCollection
where each feature is composed of a geometry and attributes about that feature. In the past the format
was GML or KML, but the world seems to be moving to prefer JSON/GeoJSON.  Normally you&#039;d throw
a mapping server that talks Web Feature Service 
, do more or less with a webscripting glue, or use a Webservice
such as &lt;a href=&quot;http://cartodb.com/maps&quot; target=&quot;_blank&quot;&gt;CartoDb&lt;/a&gt; that lets you pass along raw SQL.&lt;/p&gt;
&lt;p&gt;In this article we&#039;ll demonstrate how to build GeoJSON feature collections that can be consumed by web mapping apps.
 using
the built in JSON functions in PostgreSQL 9.2 and some PostGIS hugging.  
Even if you
don&#039;t use PostGIS, we hope you&#039;ll come away with some techniques for working with 
PostgreSQL extended types and also how to morph relational data into JSON buckets.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/267-Creating-GeoJSON-Feature-Collections-with-JSON-and-PostGIS-functions.html#extended&quot;&gt;Continue reading &quot;Creating GeoJSON Feature Collections with JSON and PostGIS functions&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 24 Aug 2012 02:55:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/267-guid.html</guid>
    <category>geojson</category>
<category>json</category>
<category>plv8</category>
<category>postgis</category>
<category>postgresql 9.2</category>

</item>
<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>PLV8JS and PLCoffee Part 2B: PHP JQuery App</title>
    <link>http://www.postgresonline.com/journal/archives/264-PLV8JS-and-PLCoffee-Part-2B-PHP-JQuery-App.html</link>
            <category>application development</category>
            <category>intermediate</category>
    
    <comments>http://www.postgresonline.com/journal/archives/264-PLV8JS-and-PLCoffee-Part-2B-PHP-JQuery-App.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=264</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;In our last article, &lt;a href=&quot;http://www.postgresonline.com/journal/archives/263-PLV8JS-and-PLCoffee-Part-2-JSON-search-requests.html&quot; target=&quot;_blank&quot;&gt;PL/V8JS and PL/Coffee JSON search requests&lt;/a&gt;
we demonstrated how to create a PostgreSQL PL/Javascript stored function that takes as input, a json wrapped search request. We generated the search request using PostgreSQL.
As mentioned, in practice, the json search request would be generated by a client side javascript API such as &lt;a href=&quot;http://jquery.org/&quot; target=&quot;_blank&quot;&gt;JQuery&lt;/a&gt;.  This time we&#039;ll put our stored function to use in  a real web app built using
PHP and JQuery.  The PHP part is fairly minimalistic just involving a call to the database and return a single row back.  Normally we use a database abstraction layer such as ADODB or PearDB, but this is so 
simple that we are just going to use the raw PHP PostgreSQL connection library directly.  This example requires PHP 5.1+ since it uses the &lt;a href=&quot;http://php.net/manual/en/function.pg-query-params.php&quot; target=&quot;_blank&quot;&gt;pg_query_param&lt;/a&gt; function introduced in PHP 5.1.
Most of the work is happening in the JQuery client side tier and the database part we already saw. That said the PHP part is fairly trivial to swap out with something like
ASP.NET and most other web server side languages.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/264-PLV8JS-and-PLCoffee-Part-2B-PHP-JQuery-App.html#extended&quot;&gt;Continue reading &quot;PLV8JS and PLCoffee Part 2B: PHP JQuery App&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 10 Aug 2012 13:32:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/264-guid.html</guid>
    <category>jquery</category>
<category>pljavascript</category>
<category>plv8</category>
<category>postgresql 9.2</category>

</item>
<item>
    <title>PLV8JS and PLCoffee Part 1: Upserting</title>
    <link>http://www.postgresonline.com/journal/archives/262-PLV8JS-and-PLCoffee-Part-1-Upserting.html</link>
            <category>9.2</category>
            <category>intermediate</category>
            <category>new in postgresql</category>
            <category>pl programming</category>
            <category>plcoffee</category>
            <category>plv8js</category>
            <category>postgis</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/262-PLV8JS-and-PLCoffee-Part-1-Upserting.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=262</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;Today&#039;s modern web application workflow in its simplest form looks something like this:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Get dataset as JSON object usually using yet another JSON query object to pass the request using a javascript framework like JQuery/ExtJS/OpenLayers/Leaflet
	etc.&lt;/li&gt;
	&lt;li&gt;Make changes to JSON dataset object and send back to the web server.&lt;/li&gt;
	&lt;li&gt;On webserver unravel the JSON object and save to respective database tables.  This part is really yucky as it often involves the web application
	server side language doing the unraveling and then yet another step of setting up stored procedures or other update logic to consume it.&lt;/li&gt; 
&lt;/ol&gt;
&lt;p&gt;We hate the way people build tiers
for the same reason &lt;a href=&quot;http://www.southparkstudios.com/clips/152796/lines-lines-lines&quot; target=&quot;_blank&quot;&gt;Cartman hates lines&lt;/a&gt; at the amusement park. 
Sure tiers are great for certain things like building connected microcosms, but most of the time they are overkill  
and if applied too early make your application needlessly complicated. In the end all we care about is data: &lt;em&gt;serving data&lt;/em&gt;, &lt;em&gt;analyzing data&lt;/em&gt;, &lt;em&gt;getting good data&lt;/em&gt; and everything else is just peacock feathers.&lt;/p&gt;  
&lt;p&gt;The introduction of JSON type support in PostgreSQL 9.2 and languages &lt;a href=&quot;https://code.google.com/p/plv8js/wiki/PLV8&quot; target=&quot;_blank&quot;&gt;PL/V8&lt;/a&gt; (PL/Javascript) and its Pythoness-like twin &lt;a href=&quot;http://coffeescript.org/&quot;&gt;PL/Coffee&lt;/a&gt;  
provides several options for bringing your data and application closer together since they have native support for JSON.  
In this first part we&#039;ll demonstrate one: &lt;em&gt;An upsert stored procedure that takes a single JSON object instead of separate args and updates existing data and adds missing records&lt;/em&gt;.
In later articles we&#039;ll show
you the front end app and also add a sprinkle of PostGIS in there to demonstrate working with custom types. &lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/262-PLV8JS-and-PLCoffee-Part-1-Upserting.html#extended&quot;&gt;Continue reading &quot;PLV8JS and PLCoffee Part 1: Upserting&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 21 Jul 2012 13:13:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/262-guid.html</guid>
    <category>json</category>
<category>plcoffee</category>
<category>plv8</category>
<category>postgresql 9.2</category>

</item>
<item>
    <title>Building PLV8JS and PLCoffee for Windows using MingW64 w64-w32</title>
    <link>http://www.postgresonline.com/journal/archives/261-Building-PLV8JS-and-PLCoffee-for-Windows-using-MingW64-w64-w32.html</link>
            <category>9.2</category>
            <category>advanced</category>
            <category>pl programming</category>
            <category>plcoffee</category>
            <category>plv8js</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/261-Building-PLV8JS-and-PLCoffee-for-Windows-using-MingW64-w64-w32.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=261</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;As mentioned in our previous article &lt;a href=&quot;http://www.postgresonline.com/journal/archives/260-Building-on-MingW-and-deploying-on-VC-compiled-PostgreSQL-Why-and-Why-not.html&quot; target=&quot;_blank&quot;&gt;Building on MingW deploying on VC&lt;/a&gt; we often build on MingW and deploy on Windows servers running EDB distributed VC PostgreSQL builds
for extensions we want that don&#039;t come packaged.  One of the new ones we are really excited about is the PL/V8 and PL/Coffee ones. Could we do it
and would it actually work on a VC build.  YES WE CAN and yes it does. I HAZ Coffee and a V8: &lt;img src=&quot;/images/journal/plv8js_plcoffee.png&quot; /&gt;.&lt;/p&gt;

&lt;p&gt;Here are some instructions we hope others will find useful. Even if you aren&#039;t on
Windows, you might still find them useful since MingW behaves much like other Unix environments.&lt;/p&gt;
&lt;div style=&#039;background-color:yellow&#039;&gt;UPDATE We rebuilt these against 9.2.1 and PLV8 1.3.  Refer to &lt;a href=&quot;http://www.postgresonline.com/journal/archives/280-PLV8-1.3-windows-binaries-for-PostgreSQL-9.2.html&quot; target=&quot;_blank&quot;&gt;PLV8 1.3 windows binaries for PostgreSQL 9.2&lt;/a&gt; for further details.&lt;/div&gt;
&lt;p&gt;If you are on windows, and just want to start using PLV8 and PLCoffee.  We have binary builds for both &lt;a href=&quot;/downloads/pg92plv8jsbin_w32.zip&quot;&gt;PostgreSQL 9.2 Windows 32-bit (pg92plv8jsbin_w32.zip)&lt;/a&gt; and &lt;a href=&quot;/downloads/pg92plv8jsbin_w64.zip&quot;&gt;PostgreSQL 9.2 Windows 64-bit (pg92plv8jsbin_w64.zip)&lt;/a&gt; which you should be able to just extract into your PostgreSQL 9.2 beta windows install.  We quickly tested with EDB VC++ builds and they seem to work fine
on standard VC++ PostgreSQL 9.2beta2 installs. We haven&#039;t bothered building for lower PostgreSQL, but if there is some interest, we&#039;d be happy to try. &lt;/p&gt;  &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/261-Building-PLV8JS-and-PLCoffee-for-Windows-using-MingW64-w64-w32.html#extended&quot;&gt;Continue reading &quot;Building PLV8JS and PLCoffee for Windows using MingW64 w64-w32&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 16 Jul 2012 18:55:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/261-guid.html</guid>
    <category>coffeescript</category>
<category>postgresql 9.2</category>
<category>v8</category>

</item>
<item>
    <title>PostgreSQL: Up and Running book officially out</title>
    <link>http://www.postgresonline.com/journal/archives/258-PostgreSQL-Up-and-Running-book-officially-out.html</link>
            <category>9.1</category>
            <category>9.2</category>
            <category>editor note</category>
            <category>postgis</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/258-PostgreSQL-Up-and-Running-book-officially-out.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=258</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;Our new book &lt;a href=&quot;/store.php?asin=1449326331&quot; target=&quot;_blank&quot;&gt;PostgreSQL: Up and Running&lt;/a&gt; is officially out. It&#039;s available in hard-copy and e-Book version directly from O&#039;Reilly,
Safari Books Online and available from Amazon in Kindle store.  It should be available in hard-copy within the next week or so from other distributors.&lt;/p&gt;
&lt;p&gt;Sadly we won&#039;t be attending &lt;a href=&quot;http://www.oscon.com/oscon2012/&quot; target=&quot;_blank&quot;&gt;OSCON&lt;/a&gt; this year, but there are several PostgreSQL talks going on. If you are speaking at a talk or other PostgreSQL related get together, and would like 
to give out some free coupons of our book or get a free e-book copy for yourself to see if it&#039;s worth effort mentioning, please send us an e-mail: lr at pcorp.us .&lt;/p&gt;

&lt;p&gt;Our main focus in writing the book is demonstrating features that make PostgreSQL uniquely poised for newer kinds of workflows with particular focus on PostgreSQL 9.1 and 9.2. 
Part of the reason for this focus is our roots and that we wanted to write a short book to get a feel for the audience.  We started to use PostgreSQL in 2001 because of
PostGIS, but were still predominantly SQL Server programmers. At the time SQL Server did not have a spatial component that integrated seamlessly with SQL.  
As die-hard SQLers, PostGIS really turned us on. As years went by, we began to use PostgreSQL
not just for our spatial apps, but predominantly non-spatial ones as well that had heavy reporting needs and that we had a choice of platform. 
So we came for PostGIS but stayed because of all the other neat features PostgreSQL had that we found lacking in SQL Server. Three off the bat
are arrays, regular expressions, and choice of procedural languages. Most other books on the market just treat PostgreSQL like it&#039;s any other relational database. 
In a sense that&#039;s good because it demonstrates
that using PostgreSQL does not require a steep learning curve if you&#039;ve used another relational database.  We didn&#039;t spend as much time on these common features as we&#039;d like to 
in the book because it&#039;s a short book and we figure most users familiar with relational databases
are quite knowledgeable of common features from other experience.  It&#039;s true that a lot of people coming to PostgreSQL are looking for cost savings,
ACID compliance, cross-platform support and decent speed
, but as PostgreSQL increases in speed, ease of features, and unique features, we think we&#039;ll be seeing more people migrating 
just because its simply better than any other databases 
for the new kinds of workflows we are seeing today -- e.g. BigData analysis, integration with other datasources, leveraging of domain specific languages in a more seamless way with data.&lt;/p&gt;  

&lt;p&gt;So what&#039;s that creature on the cover? &lt;br /&gt; &lt;a href=&quot;/images/postgresqlup_and_running_big.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/images/postgresql_up_running.gif&quot; alt=&quot;PostgreSQL: Up and Running - elephant shrew&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;br /&gt;It&#039;s an &lt;a href=&quot;http://www.trinity.edu/departments/public_relations/news_releases/080306ribblesengi.htm&quot; target=&quot;_blank&quot;&gt;elephant shrew (sengi)&lt;/a&gt; and is neither an elephant nor a shrew, but closest in ancestry to the elephant, sea cow, and aardvark. 
It is only found 
in Africa (mostly East Africa around Kenya) and in zoos. It gets its name from its unusually long nose which it uses for sniffing out insect prey and keeping tabs on its mate. It has some other unusual habits:
it&#039;s a trail blazer building trails it uses to scout insect prey and also builds escape routes on the trail it memorizes to escape from predators. It&#039;s monogamous, but prefers to keep separate quarters from its mate. Males
will chase off other males and females will chase off other females. &lt;a href=&quot;http://animal.discovery.com/animals/life/rufous-sengi.html&quot; target=&quot;_blank&quot;&gt;It&#039;s fast&lt;/a&gt; and can usually out-run its predators.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 10 Jul 2012 14:53:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/258-guid.html</guid>
    <category>book writing</category>
<category>postgresql 9.1</category>
<category>postgresql 9.2</category>

</item>
<item>
    <title>PostgreSQL 9.2: Preserving column names of subqueries</title>
    <link>http://www.postgresonline.com/journal/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>http://www.postgresonline.com/journal/archives/254-PostgreSQL-9.2-Preserving-column-names-of-subqueries.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=254</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://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;http://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;http://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;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/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">http://www.postgresonline.com/journal/archives/254-guid.html</guid>
    <category>hstore</category>
<category>json</category>
<category>postgresql 9.2</category>

</item>
<item>
    <title>PostgreSQL 9.2 Native JSON type support</title>
    <link>http://www.postgresonline.com/journal/archives/253-PostgreSQL-9.2-Native-JSON-type-support.html</link>
            <category>9.2</category>
            <category>new in postgresql</category>
            <category>postgis</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/253-PostgreSQL-9.2-Native-JSON-type-support.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=253</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;One new welcome feature in PostgreSQL 9.2  is the native json support and companion &lt;code&gt;row_as_json&lt;/code&gt; and &lt;code&gt;array_as_json&lt;/code&gt; functions.  PostGIS also has a json function for outputting geographies and geometries in &lt;a href=&quot;http://geojson.org/&quot;&gt;GeoJSON&lt;/a&gt; format which is almost a standard in web mapping. &lt;/p&gt;

&lt;p&gt;Here is an example of how you&#039;d use the new feature - create our test table&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;CREATE TABLE test(gid serial PRIMARY KEY, title text, geog geography(Point, 4326));

INSERT INTO test(title, geog) 
 VALUES(&#039;a&#039;
 , ST_GeogFromText(&#039;POINT(-71.057811 42.358274)&#039;));

INSERT INTO test(title, geog) 
 VALUES(&#039;b&#039;
 , ST_GeogFromText(&#039;POINT(42.358274 -71.057811 )&#039;));&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;Now with a command like this we can output all data as a single json object.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SELECT array_to_json(array_agg(t))
FROM test As t;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;But there is a tincy little problem.  Our geog outputs don&#039;t look anything like GeoJSON format. Our output looks like this:&lt;/p&gt;

&lt;pre&gt; [{&quot;gid&quot;:1,&quot;title&quot;:&quot;a&quot;,&quot;geog&quot;:&quot;0101000020E61000005796E82CB3C3
51C0E98024ECDB2D4540&quot;}
,{&quot;gid&quot;:2,&quot;title&quot;:&quot;b&quot;,&quot;geog&quot;:&quot;0
101000020E6100000E98024ECDB2D45405796E82CB3C351C0&quot;}]&lt;/pre&gt;

&lt;p&gt;To follow the GeoJSON standard, our geography object should output like this:&lt;/p&gt;
&lt;pre&gt;&quot;geog&quot;:{&quot;type&quot;:&quot;Point&quot;,&quot;coordinates&quot;:[-71.057811000000001,42.358274000000002]}&lt;/pre&gt;




 &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/253-PostgreSQL-9.2-Native-JSON-type-support.html#extended&quot;&gt;Continue reading &quot;PostgreSQL 9.2 Native JSON type support&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 21 May 2012 17:39:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/253-guid.html</guid>
    <category>array_agg</category>
<category>json</category>
<category>postgis</category>
<category>postgresql 9.2</category>

</item>
<item>
    <title>PostgreSQL 9.2 pg_dump enhancements</title>
    <link>http://www.postgresonline.com/journal/archives/252-PostgreSQL-9.2-pg_dump-enhancements.html</link>
            <category>9.2</category>
            <category>new in postgresql</category>
            <category>postgresql versions</category>
    
    <comments>http://www.postgresonline.com/journal/archives/252-PostgreSQL-9.2-pg_dump-enhancements.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=252</wfw:comment>

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

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;One of the things I&#039;m excited about in PostgreSQL 9.2 are the new pg_dump &lt;b&gt;section&lt;/b&gt; - pre-data, data, and post-data options and the &lt;b&gt;exclude-table-data&lt;/b&gt; option.  Andrew Dunstan blogged about this briefly in &lt;a href=&quot;http://people.planetpostgresql.org/andrew/index.php?/archives/237-pg_dump-exclude-table-data.html&quot; target=&quot;_blank&quot;&gt;pg_dump exclude table data&lt;/a&gt;. What is also nice is that pgAdmin III 1.16 supports the section option via the graphical interface &lt;img src=&quot;/images/journal/pgAdmin_backup_opt2.png&quot; alt=&quot;pgAdmin backup options 2&quot; /&gt;.  I was a bit disappointed not to find the exclude-table-data option in pgAdmin III interface though.
The other nice thing about this feature is that you can use the PostgreSQL 9.2 dump even against a 9.1 or lower db and achieve the same benefit.&lt;/p&gt;

&lt;p&gt;The 9.2 pg_restore has similar functionality for restoring specific sections of a backup too.&lt;/p&gt;
&lt;p&gt; So what is all this section stuff for.  Well it comes in particularly handy for upgrade scripts.   I&#039;ll first explain what the sections mean and a concrete example of why you want this.&lt;/p&gt; 

&lt;ul&gt;&lt;li&gt;&lt;em&gt;pre-data&lt;/em&gt; -  this would be the table structures, functions etc without the constraints such as check and primary key and indexes.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;data&lt;/em&gt; -- it&#039;s uhm the data&lt;/li&gt;
&lt;li&gt;&lt;emp&gt;post-data&lt;/em&gt; -  This is all constraints, primary keys, indexes etc.&lt;/li&gt;
&lt;/ul&gt;

 &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/252-PostgreSQL-9.2-pg_dump-enhancements.html#extended&quot;&gt;Continue reading &quot;PostgreSQL 9.2 pg_dump enhancements&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 21 May 2012 04:41:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/252-guid.html</guid>
    <category>pg_dump</category>
<category>pg_restore</category>
<category>pgadmin</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>

</channel>
</rss>