<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Flex and Specs() &#187; PostgreSQL</title>
	<atom:link href="http://scottrbailey.wordpress.com/category/postgresql/feed/" rel="self" type="application/rss+xml" />
	<link>http://scottrbailey.wordpress.com</link>
	<description>Adventures in database and RIA development</description>
	<lastBuildDate>Fri, 24 May 2013 01:43:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='scottrbailey.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/c54907dc1a07993bf375024339499a0e?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Flex and Specs() &#187; PostgreSQL</title>
		<link>http://scottrbailey.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://scottrbailey.wordpress.com/osd.xml" title="Flex and Specs()" />
	<atom:link rel='hub' href='http://scottrbailey.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Scheduling with Date Mod Part 2</title>
		<link>http://scottrbailey.wordpress.com/2009/10/20/scheduling-with-date-mod-part-2/</link>
		<comments>http://scottrbailey.wordpress.com/2009/10/20/scheduling-with-date-mod-part-2/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 05:20:31 +0000</pubDate>
		<dc:creator>Scott Bailey</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[calendaring]]></category>
		<category><![CDATA[schedule]]></category>

		<guid isPermaLink="false">http://scottrbailey.wordpress.com/?p=163</guid>
		<description><![CDATA[So as the title suggests, this is the second part of a series on scheduling. In the first part we did some basic setup. Now we are ready to dig in. The goal here is to be able to model any recurring pattern no matter the cycle. The linchpin in this solution is to define [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottrbailey.wordpress.com&#038;blog=7820714&#038;post=163&#038;subd=scottrbailey&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
		<wfw:commentRss>http://scottrbailey.wordpress.com/2009/10/20/scheduling-with-date-mod-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b5432aba940c6eb3b2479ae2c14b26b6?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">scottrbailey</media:title>
		</media:content>
	</item>
		<item>
		<title>Scheduling with Date Mod Part 1</title>
		<link>http://scottrbailey.wordpress.com/2009/10/19/scheduling-with-date-mod-part-1/</link>
		<comments>http://scottrbailey.wordpress.com/2009/10/19/scheduling-with-date-mod-part-1/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 06:12:35 +0000</pubDate>
		<dc:creator>Scott Bailey</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[calendaring]]></category>
		<category><![CDATA[scheduling]]></category>

		<guid isPermaLink="false">http://scottrbailey.wordpress.com/?p=156</guid>
		<description><![CDATA[One question that seems to come up a lot is how to model recurring schedules. That&#8217;s understandable, because schedules can get out of hand pretty quickly. We need a template so that we can define a schedule and then some how project it out on a repeating basis. The single week schedules are pretty easy. [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottrbailey.wordpress.com&#038;blog=7820714&#038;post=156&#038;subd=scottrbailey&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
		<wfw:commentRss>http://scottrbailey.wordpress.com/2009/10/19/scheduling-with-date-mod-part-1/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b5432aba940c6eb3b2479ae2c14b26b6?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">scottrbailey</media:title>
		</media:content>
	</item>
		<item>
		<title>Thinking in Sets of Sets</title>
		<link>http://scottrbailey.wordpress.com/2009/10/06/timespan_sets/</link>
		<comments>http://scottrbailey.wordpress.com/2009/10/06/timespan_sets/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 06:25:43 +0000</pubDate>
		<dc:creator>Scott Bailey</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[set theory]]></category>
		<category><![CDATA[temporal data]]></category>
		<category><![CDATA[time periods]]></category>
		<category><![CDATA[timespan]]></category>

		<guid isPermaLink="false">http://scottrbailey.wordpress.com/?p=89</guid>
		<description><![CDATA[Over the summer, I built the Chronos temporal toolkit for Oracle. And for the last while I&#8217;ve been porting it to Postgres and working on the documentation. The SQL standard defines several data types to model instances of times. But rarely does anything happen instantaneously. Often what we need to model is a period of [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottrbailey.wordpress.com&#038;blog=7820714&#038;post=89&#038;subd=scottrbailey&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
		<wfw:commentRss>http://scottrbailey.wordpress.com/2009/10/06/timespan_sets/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b5432aba940c6eb3b2479ae2c14b26b6?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">scottrbailey</media:title>
		</media:content>

		<media:content url="http://scottrbailey.files.wordpress.com/2009/06/timespan_sets.gif" medium="image">
			<media:title type="html">timespan_sets</media:title>
		</media:content>
	</item>
		<item>
		<title>Internal Data Representation</title>
		<link>http://scottrbailey.wordpress.com/2009/10/03/internal_data/</link>
		<comments>http://scottrbailey.wordpress.com/2009/10/03/internal_data/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 08:30:53 +0000</pubDate>
		<dc:creator>Scott Bailey</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[dump]]></category>

		<guid isPermaLink="false">http://scottrbailey.wordpress.com/?p=134</guid>
		<description><![CDATA[Have you ever wondered how your database represents the timestamp you just entered or how many bytes it takes to store a boolean or interval? Oracle has a handy dump function that lets us peer into the internal representation of our data. Dump takes any type of input and returns a varchar2 describing the data [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottrbailey.wordpress.com&#038;blog=7820714&#038;post=134&#038;subd=scottrbailey&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
		<wfw:commentRss>http://scottrbailey.wordpress.com/2009/10/03/internal_data/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b5432aba940c6eb3b2479ae2c14b26b6?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">scottrbailey</media:title>
		</media:content>
	</item>
		<item>
		<title>Porting Postgres favorites to Oracle</title>
		<link>http://scottrbailey.wordpress.com/2009/07/30/porting-postgres-favorites-to-oracle/</link>
		<comments>http://scottrbailey.wordpress.com/2009/07/30/porting-postgres-favorites-to-oracle/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 06:56:32 +0000</pubDate>
		<dc:creator>Scott Bailey</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://scottrbailey.wordpress.com/?p=109</guid>
		<description><![CDATA[For the last month or so, I have been creating temporal extensions for both Postgres and Oracle. Of the two, the Postgres version was easier to implement because the array functionality in Postgres is the best of any dbms out there. So for other developers who split their time between Postgres and Oracle, here is [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottrbailey.wordpress.com&#038;blog=7820714&#038;post=109&#038;subd=scottrbailey&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
		<wfw:commentRss>http://scottrbailey.wordpress.com/2009/07/30/porting-postgres-favorites-to-oracle/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b5432aba940c6eb3b2479ae2c14b26b6?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">scottrbailey</media:title>
		</media:content>
	</item>
		<item>
		<title>Simplify XML Parsing in Postgres</title>
		<link>http://scottrbailey.wordpress.com/2009/06/19/xml-parsing-postgres/</link>
		<comments>http://scottrbailey.wordpress.com/2009/06/19/xml-parsing-postgres/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 21:15:23 +0000</pubDate>
		<dc:creator>Scott Bailey</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[extractvalue]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XPath]]></category>

		<guid isPermaLink="false">http://scottrbailey.wordpress.com/?p=69</guid>
		<description><![CDATA[I was reading this article over at Postgres Online Journal about processing GPX XML files and it reminded me how much cruft is involved with extracting values from XML in Postgres.

The XPath function is great for some things, but it always returns an XML array, so if you want to get the latitude for a node, you've got to get the 1st element in the XML array, cast it as varchar in order to cast it again to numeric. It is not exactly straight forward. And if you spend a lot of time parsing XML files, that cruft can really add up.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottrbailey.wordpress.com&#038;blog=7820714&#038;post=69&#038;subd=scottrbailey&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
		<wfw:commentRss>http://scottrbailey.wordpress.com/2009/06/19/xml-parsing-postgres/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b5432aba940c6eb3b2479ae2c14b26b6?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">scottrbailey</media:title>
		</media:content>
	</item>
		<item>
		<title>Web Developer&#8217;s Date/Time Cheatsheet</title>
		<link>http://scottrbailey.wordpress.com/2009/06/02/web-developers-datetime-cheatsheet/</link>
		<comments>http://scottrbailey.wordpress.com/2009/06/02/web-developers-datetime-cheatsheet/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 18:03:47 +0000</pubDate>
		<dc:creator>Scott Bailey</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[cheatsheet]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[temporal]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://scottrbailey.wordpress.com/?p=84</guid>
		<description><![CDATA[If you work in more than one database or  programming language, it is almost impossible to keep all of the different date/time formats straight. As a developer, I found myself going back to the manuals for date/time formats more than anything else. Here&#8217;s a web developer&#8217;s date/time cheatsheet. It covers the Oracle, Postgres, MySQL and [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottrbailey.wordpress.com&#038;blog=7820714&#038;post=84&#038;subd=scottrbailey&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
		<wfw:commentRss>http://scottrbailey.wordpress.com/2009/06/02/web-developers-datetime-cheatsheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b5432aba940c6eb3b2479ae2c14b26b6?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">scottrbailey</media:title>
		</media:content>
	</item>
		<item>
		<title>XML in Postgres &#8211; The Game Changer</title>
		<link>http://scottrbailey.wordpress.com/2009/06/01/xml-in-postgres/</link>
		<comments>http://scottrbailey.wordpress.com/2009/06/01/xml-in-postgres/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 21:25:09 +0000</pubDate>
		<dc:creator>Scott Bailey</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XPath]]></category>

		<guid isPermaLink="false">http://scottrbailey.wordpress.com/?p=77</guid>
		<description><![CDATA[About the time that Postgres 8.3 came out, Adobe decided to open-source something called Flex. Up to that point, I had a non-committal relationship with Postgres. Meaning that I didn't have a real strong preference between Postgres vs MySQL, and I didn't participate in either community. I had heard some really good things about Adobe Flex, but I never had much interest in it until it was open-sourced. But when the two came together... it was like the Reese's Penut Butter Cup commercials from the 80's or 90's. Or the KY his and her's commercials of late... well maybe not quite that good :)<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottrbailey.wordpress.com&#038;blog=7820714&#038;post=77&#038;subd=scottrbailey&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
		<wfw:commentRss>http://scottrbailey.wordpress.com/2009/06/01/xml-in-postgres/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b5432aba940c6eb3b2479ae2c14b26b6?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">scottrbailey</media:title>
		</media:content>
	</item>
		<item>
		<title>In-database ETL</title>
		<link>http://scottrbailey.wordpress.com/2009/05/28/in-database-etl/</link>
		<comments>http://scottrbailey.wordpress.com/2009/05/28/in-database-etl/#comments</comments>
		<pubDate>Thu, 28 May 2009 17:11:02 +0000</pubDate>
		<dc:creator>Scott Bailey</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://scottrbailey.wordpress.com/?p=56</guid>
		<description><![CDATA[I do a lot of work with data warehousing and operational data stores. A big part of that process is doing the Extract Transform Load (ETL). There are dozens commercial and open source ETL tools around written in Java, Python, PHP, etc. Each has varying capabilities and learning curves. But the fact is, none of these tools or languages will be as efficient in transforming your data as the actual DBMS itself. That is what it was designed and optimized for.

This is the method I've developed. It may not be the right tool for everyone or every application, but it does have its advantages. As I already mentioned, it is efficient because this is exactly the kind of work the database was designed for. It is simpler, because you are after all a SQL expert, and there is no overhead in learning a new tool or a new language. It is more manageable because we will use views to do the heavy lifting instead of complicated config files. So making alterations rather easy.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottrbailey.wordpress.com&#038;blog=7820714&#038;post=56&#038;subd=scottrbailey&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
		<wfw:commentRss>http://scottrbailey.wordpress.com/2009/05/28/in-database-etl/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b5432aba940c6eb3b2479ae2c14b26b6?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">scottrbailey</media:title>
		</media:content>
	</item>
		<item>
		<title>Postgres &#8211; adding custom aggregates most()</title>
		<link>http://scottrbailey.wordpress.com/2009/05/22/postgres-adding-custom-aggregates-most/</link>
		<comments>http://scottrbailey.wordpress.com/2009/05/22/postgres-adding-custom-aggregates-most/#comments</comments>
		<pubDate>Fri, 22 May 2009 15:16:12 +0000</pubDate>
		<dc:creator>Scott Bailey</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[custom aggregate]]></category>
		<category><![CDATA[median]]></category>
		<category><![CDATA[mode]]></category>
		<category><![CDATA[range]]></category>

		<guid isPermaLink="false">http://scottrbailey.wordpress.com/?p=49</guid>
		<description><![CDATA[Postgres allows you to define custom aggregates. In most cases the stock aggregate functions (AVG, MIN, MAX, SUM etc.) will meet our needs.  But lets say we have a table of teachers joined to the classes they teach and we want to group by teacher and see what subject area the teacher teaches. So what [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottrbailey.wordpress.com&#038;blog=7820714&#038;post=49&#038;subd=scottrbailey&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
		<wfw:commentRss>http://scottrbailey.wordpress.com/2009/05/22/postgres-adding-custom-aggregates-most/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b5432aba940c6eb3b2479ae2c14b26b6?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">scottrbailey</media:title>
		</media:content>
	</item>
	</channel>
</rss>
