<?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/"
	>

<channel>
	<title>select * from depesz; &#187; postgresql</title>
	<atom:link href="http://www.depesz.com/index.php/tag/postgresql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.depesz.com</link>
	<description></description>
	<lastBuildDate>Mon, 30 Aug 2010 12:06:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Waiting for 9.1 &#8211; concat, concat_ws, right, left, reverse</title>
		<link>http://www.depesz.com/index.php/2010/08/24/waiting-for-9-1-concat-concat_ws-right-left-reverse/</link>
		<comments>http://www.depesz.com/index.php/2010/08/24/waiting-for-9-1-concat-concat_ws-right-left-reverse/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 11:59:20 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[concat]]></category>
		<category><![CDATA[concat_ws]]></category>
		<category><![CDATA[left]]></category>
		<category><![CDATA[pg91]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[reverse]]></category>
		<category><![CDATA[right]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1820</guid>
		<description><![CDATA[On 24th of August, Takahiro Itagaki committed patch: Log Message: ----------- Add string functions: concat(), concat_ws(), left(), right(), and reverse(). &#160; Pavel Stehule, reviewed by me. What are these functions? concat() is just functional counterpart to &#124;&#124; operator, with the ability to handle many strings at the same time: $ SELECT concat&#40; 'post', 'gres', 'ql' [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/08/24/waiting-for-9-1-concat-concat_ws-right-left-reverse/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>How to manage changes to your database?</title>
		<link>http://www.depesz.com/index.php/2010/08/22/versioning/</link>
		<comments>http://www.depesz.com/index.php/2010/08/22/versioning/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 14:39:49 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[versioning]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1814</guid>
		<description><![CDATA[Every now and then somebody asks how to make diff of database schemata. Usual background is like: we have production database, and development database, and we want to see what is different on development to be able to change production in the same way. Personally I think that such approach is inherently flawed. Why? First [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/08/22/versioning/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>OmniPITR &#8211; hot backup on slave</title>
		<link>http://www.depesz.com/index.php/2010/08/18/omnipitr-hot-backup-on-slave/</link>
		<comments>http://www.depesz.com/index.php/2010/08/18/omnipitr-hot-backup-on-slave/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 12:36:52 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[omnipitr]]></category>
		<category><![CDATA[pitr]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[slave]]></category>
		<category><![CDATA[wal]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1810</guid>
		<description><![CDATA[Well, the biggest information is that hot-backups on slave work. And they work fine. Really fine. Some more information (with nice graph!): Background: hot backup is backup of database server, done with backing up data files, and not issuing pg_dump. There are certain benefits of doing it &#8211; for example the fact that if you&#8217;d [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/08/18/omnipitr-hot-backup-on-slave/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Waiting for 9.1 &#8211; Recognize functional dependency on primary keys.</title>
		<link>http://www.depesz.com/index.php/2010/08/08/waiting-for-9-1-recognize-functional-dependency-on-primary-keys/</link>
		<comments>http://www.depesz.com/index.php/2010/08/08/waiting-for-9-1-recognize-functional-dependency-on-primary-keys/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 20:43:33 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[group by]]></category>
		<category><![CDATA[pg91]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[primary key]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1800</guid>
		<description><![CDATA[Yesterday (August, 7th), Tom Lane committed: Log Message: ----------- Recognize functional dependency on primary keys. This allows a table's other columns to be referenced without listing them in GROUP BY, so long as the primary key column(s) are listed in GROUP BY. &#160; Eventually we should also allow functional dependency on a UNIQUE constraint when [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/08/08/waiting-for-9-1-recognize-functional-dependency-on-primary-keys/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Waiting for 9.1 &#8211; Reduced lock levels for ALTER TABLE</title>
		<link>http://www.depesz.com/index.php/2010/08/08/waiting-for-9-1-reduced-lock-levels-for-alter-table/</link>
		<comments>http://www.depesz.com/index.php/2010/08/08/waiting-for-9-1-reduced-lock-levels-for-alter-table/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 13:20:33 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[alter table]]></category>
		<category><![CDATA[lock]]></category>
		<category><![CDATA[locks]]></category>
		<category><![CDATA[pg91]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[trigger]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1795</guid>
		<description><![CDATA[On 28th of July, Simon Riggs committed patch which: Log Message: ----------- Reduce lock levels of CREATE TRIGGER and some ALTER TABLE, CREATE RULE actions. Avoid hard-coding lockmode used for many altering DDL commands, allowing easier future changes of lock levels. Implementation of initial analysis on DDL sub-commands, so that many lock levels are now [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/08/08/waiting-for-9-1-reduced-lock-levels-for-alter-table/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to make sure you will not get any help on IRC</title>
		<link>http://www.depesz.com/index.php/2010/08/05/how-to-make-sure-you-will-not-get-any-help-on-irc/</link>
		<comments>http://www.depesz.com/index.php/2010/08/05/how-to-make-sure-you-will-not-get-any-help-on-irc/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 16:33:51 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[help]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1787</guid>
		<description><![CDATA[Some guy came to #postgresql today. Described his problem, got additional question, and then &#8230; well .. I wouldn&#8217;t believe if it didn&#8217;t happen to me. Here is log of on channel conversation: 17:52 &#60; loincloth&#62; heyo 17:53 &#60; loincloth&#62; i am getting a syntax error for a pretty simple insert statement 17:53 &#60; loincloth&#62; [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/08/05/how-to-make-sure-you-will-not-get-any-help-on-irc/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Waiting for 9.1 &#8211; CREATE TABLE IF NOT EXISTS</title>
		<link>http://www.depesz.com/index.php/2010/07/28/waiting-for-9-1-create-table-if-not-exists/</link>
		<comments>http://www.depesz.com/index.php/2010/07/28/waiting-for-9-1-create-table-if-not-exists/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 12:06:23 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[conditional]]></category>
		<category><![CDATA[create table]]></category>
		<category><![CDATA[ddl]]></category>
		<category><![CDATA[if not exists]]></category>
		<category><![CDATA[pg91]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1777</guid>
		<description><![CDATA[On 25th Robert Haas committed patch which adds first of &#8216;CREATE IF NOT EXISTS&#8217; commands: Log Message: ----------- CREATE TABLE IF NOT EXISTS. &#160; Reviewed by Bernd Helmle. Example is of course trivial: $ create table if not exists tesit (x text); CREATE TABLE &#160; $ create table if not exists tesit (x text); NOTICE: [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/07/28/waiting-for-9-1-create-table-if-not-exists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to order by some random &#8211; query defined &#8211; values?</title>
		<link>http://www.depesz.com/index.php/2010/07/25/how-to-order-by-some-random-query-defined-values/</link>
		<comments>http://www.depesz.com/index.php/2010/07/25/how-to-order-by-some-random-query-defined-values/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 11:30:51 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[generate_series]]></category>
		<category><![CDATA[order]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[row_number]]></category>
		<category><![CDATA[unnest]]></category>
		<category><![CDATA[window]]></category>
		<category><![CDATA[window functions]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1775</guid>
		<description><![CDATA[Let&#8217;s imagine simple situation &#8211; you have table of objects (each with id), and you want objects 3, 71, 5 and 16. And in that order! How to do it? First, let&#8217;s create some test data: CREATE TABLE test_data &#40; id INT4 PRIMARY KEY, codename TEXT &#41;; INSERT INTO test_data &#40; id, codename &#41; SELECT [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/07/25/how-to-order-by-some-random-query-defined-values/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Logging queries &#8211; how?</title>
		<link>http://www.depesz.com/index.php/2010/07/22/logging-queries-how/</link>
		<comments>http://www.depesz.com/index.php/2010/07/22/logging-queries-how/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 02:21:09 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[log_min_duration_statement]]></category>
		<category><![CDATA[log_statement]]></category>
		<category><![CDATA[pg_stat_activity]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1769</guid>
		<description><![CDATA[One of the questions that pop up frequently on IRC is how to see queries are now executed on the server, and what queries were earlier. Theoretically answer to this is simple &#8211; pg_stat_activity and log_min_duration_statement. Or log_statement. What is the difference? That&#8217;s exactly why I&#8217;m writing this post. First of all &#8211; to see [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/07/22/logging-queries-how/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Waiting for 9.1 &#8211; \conninfo in psql</title>
		<link>http://www.depesz.com/index.php/2010/07/21/waiting-for-9-1-conninfo-in-psql/</link>
		<comments>http://www.depesz.com/index.php/2010/07/21/waiting-for-9-1-conninfo-in-psql/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 21:54:06 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[conninfo]]></category>
		<category><![CDATA[pg91]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[psql]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1764</guid>
		<description><![CDATA[On 20th of July, Robert Haas committed (and later committed change to it) patch which adds another \* command to psql: Log Message: ----------- Add \conninfo command to psql, to show current connection info. David Christensen. Reviewed by Steve Singer. Some further changes by me. Log message seems to be clear, so just let&#8217;s show [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/07/21/waiting-for-9-1-conninfo-in-psql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Waiting for 9.1 &#8211; standard_conforming_strings = on</title>
		<link>http://www.depesz.com/index.php/2010/07/21/waiting-for-9-1-standard_conforming_strings-on/</link>
		<comments>http://www.depesz.com/index.php/2010/07/21/waiting-for-9-1-standard_conforming_strings-on/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 12:52:59 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[incompatibility]]></category>
		<category><![CDATA[literals]]></category>
		<category><![CDATA[pg91]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[strings]]></category>
		<category><![CDATA[syntax]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1760</guid>
		<description><![CDATA[Generally I write about new features, but this change is relatively important. Yesterday, on 20th of July, Robert Haas committed following change: Log Message: ----------- Change the default value of standard_conforming_strings to on. &#160; This change should be publicized to driver maintainers at once and release-noted as an incompatibility with previous releases. What is this, [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/07/21/waiting-for-9-1-standard_conforming_strings-on/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Waiting for 9.0 &#8211; Final Post ?</title>
		<link>http://www.depesz.com/index.php/2010/07/12/waiting-for-9-0-final-post/</link>
		<comments>http://www.depesz.com/index.php/2010/07/12/waiting-for-9-0-final-post/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 23:39:36 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[pg85]]></category>
		<category><![CDATA[pg90]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[rc]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1756</guid>
		<description><![CDATA[As of now, I am happy user of 9.1devel version of PostgreSQL: =$ psql -c 'select version()' version --------------------------------------------------------------------------------------------------------------------- PostgreSQL 9.1devel on x86_64-unknown-linux-gnu, compiled by GCC gcc-4.4.real (Ubuntu 4.4.3-4ubuntu5) 4.4.3, 64-bit (1 row) So, I guess no new features will make it to 9.0 &#8211; after all, 9.0 is currently already beta3. If you want [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/07/12/waiting-for-9-0-final-post/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OmniPITR &#8211; update</title>
		<link>http://www.depesz.com/index.php/2010/06/30/omnipitr-update/</link>
		<comments>http://www.depesz.com/index.php/2010/06/30/omnipitr-update/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 21:52:06 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[omnipitr]]></category>
		<category><![CDATA[omniti]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1754</guid>
		<description><![CDATA[OmniPITR project that I wrote about some time ago is going on. Just today I finished tests for omnipitr-backup-slave &#8211; part of OmniPITR which lets you make hot-backups of WAL-slave machine &#8211; without any additional load on master. As previously &#8211; please download (svn co) and test. In case you have problems &#8211; please mail [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/06/30/omnipitr-update/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Should you use HASH index?</title>
		<link>http://www.depesz.com/index.php/2010/06/28/should-you-use-hash-index/</link>
		<comments>http://www.depesz.com/index.php/2010/06/28/should-you-use-hash-index/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 14:43:52 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[btree]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[index]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1744</guid>
		<description><![CDATA[Today, Mattias&#124;farm on IRC asked how to create primary key using HASH index. After some talk, he said that in some books it said that for &#8220;=&#8221; (equality) hash indexes are better. So, I digged a bit deeper. First of all, there is this thread on pgsql-general mailing list (thanks to omarqureshi for link). Then [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/06/28/should-you-use-hash-index/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Tips N&#8217; Tricks &#8211; looking for value in all columns of a table</title>
		<link>http://www.depesz.com/index.php/2010/06/24/tips-n-tricks-looking-for-value-in-all-columns-of-a-table/</link>
		<comments>http://www.depesz.com/index.php/2010/06/24/tips-n-tricks-looking-for-value-in-all-columns-of-a-table/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 12:11:22 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[record]]></category>
		<category><![CDATA[row]]></category>
		<category><![CDATA[tnt]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1741</guid>
		<description><![CDATA[Every so often you might need to find a value regardless of which column it&#8217;s in. Of course not in application code, as this would be very slow. But you might be in situation where you just don&#8217;t know where did application get some value from, and you want to find it in table. Table [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/06/24/tips-n-tricks-looking-for-value-in-all-columns-of-a-table/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dream wishlist for 9.1</title>
		<link>http://www.depesz.com/index.php/2010/06/22/dream-wishlist-for-9-1/</link>
		<comments>http://www.depesz.com/index.php/2010/06/22/dream-wishlist-for-9-1/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 13:18:07 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dream]]></category>
		<category><![CDATA[pg91]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[wishlist]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1738</guid>
		<description><![CDATA[Relatively soon we will have 9.0, and we will move with development to 9.1 (we as in: PostgreSQL community, I don&#8217;t know C so I can&#8217;t help developing myself, but I will at least try to keep up with changes in the &#8216;Waiting for&#8217; series). There are some fabulous plans about new functionality, including security [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/06/22/dream-wishlist-for-9-1/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Test driven development for PostgreSQL</title>
		<link>http://www.depesz.com/index.php/2010/06/16/test-driven-development-for-postgresql/</link>
		<comments>http://www.depesz.com/index.php/2010/06/16/test-driven-development-for-postgresql/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 11:52:51 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pgtap]]></category>
		<category><![CDATA[plperl]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[tests]]></category>
		<category><![CDATA[trigger]]></category>
		<category><![CDATA[triggers]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1733</guid>
		<description><![CDATA[I have a mixed love/hate relationship with tests. I hate writing them. I hate remembering to add them when I&#8217;m in the zone, and application code is flowing freely from the tips of my fingers. But when I do add them, I absolutely love the ability to twist and replace the most core innards of [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/06/16/test-driven-development-for-postgresql/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>To rule or not to rule &#8211; that is the question</title>
		<link>http://www.depesz.com/index.php/2010/06/15/to-rule-or-not-to-rule-that-is-the-question/</link>
		<comments>http://www.depesz.com/index.php/2010/06/15/to-rule-or-not-to-rule-that-is-the-question/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 10:56:14 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[rule]]></category>
		<category><![CDATA[rules]]></category>
		<category><![CDATA[trigger]]></category>
		<category><![CDATA[triggers]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1723</guid>
		<description><![CDATA[Every now and then there is someone on IRC, mailing lists, or private contact which asks about rules. My answer virtually always is: don&#8217;t use rules. If you think that they solve your problem, think again. Why? Rules have been controversial for a very long time. I remember Jan Wieck talking on PostgreSQL conference in [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/06/15/to-rule-or-not-to-rule-that-is-the-question/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>OmniPITR</title>
		<link>http://www.depesz.com/index.php/2010/06/02/omnipitr/</link>
		<comments>http://www.depesz.com/index.php/2010/06/02/omnipitr/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 11:44:38 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[omnipitr]]></category>
		<category><![CDATA[omniti]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1719</guid>
		<description><![CDATA[Thanks to the company I work for OmniTI I was working on pretty cool project. Name of the project is OmniPITR, and here is what it is, why, how, and where to get it. We are using WAL replication quite extensively. We also do make hot backups a lot. What bugged me (and possibly other, [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/06/02/omnipitr/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>What mistakes you can avoid when looking for help on IRC?</title>
		<link>http://www.depesz.com/index.php/2010/05/28/what-mistakes-you-can-avoid-when-looking-for-help-on-irc/</link>
		<comments>http://www.depesz.com/index.php/2010/05/28/what-mistakes-you-can-avoid-when-looking-for-help-on-irc/#comments</comments>
		<pubDate>Fri, 28 May 2010 10:02:55 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[help]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1703</guid>
		<description><![CDATA[Today, there was this one person on IRC, which asked question and provided some data. While working on helping him (her?), I noticed some things, that bugged me before in other cases, but this time i decided to write about it &#8211; it&#8217;s kind of rant, and if you (the reader) are the person that [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/05/28/what-mistakes-you-can-avoid-when-looking-for-help-on-irc/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Waiting for 9.0 &#8211; pg_upgrade</title>
		<link>http://www.depesz.com/index.php/2010/05/19/waiting-for-9-0-pg_upgrade/</link>
		<comments>http://www.depesz.com/index.php/2010/05/19/waiting-for-9-0-pg_upgrade/#comments</comments>
		<pubDate>Wed, 19 May 2010 10:55:02 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pg85]]></category>
		<category><![CDATA[pg90]]></category>
		<category><![CDATA[pg_dump]]></category>
		<category><![CDATA[pg_restore]]></category>
		<category><![CDATA[pg_upgrade]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[version]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1700</guid>
		<description><![CDATA[On May, 12ve, Bruce Momjian committed new contrib module for 9.0 &#8211; pg_upgrage. As I understand &#8211; this is what was available before as pg-migrator. If you&#8217;re not familiar with it &#8211; it&#8217;s a tool that allows upgrade of $PGDATA from some version to some version. What&#8217;s the use case? Let&#8217;s assume you have this [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/05/19/waiting-for-9-0-pg_upgrade/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Tips n&#8217; tricks &#8211; rank on changes</title>
		<link>http://www.depesz.com/index.php/2010/05/13/tips-n-tricks-rank-on-changes/</link>
		<comments>http://www.depesz.com/index.php/2010/05/13/tips-n-tricks-rank-on-changes/#comments</comments>
		<pubDate>Thu, 13 May 2010 14:19:32 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[changes]]></category>
		<category><![CDATA[count]]></category>
		<category><![CDATA[lag]]></category>
		<category><![CDATA[nullif]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[rank]]></category>
		<category><![CDATA[tnt]]></category>
		<category><![CDATA[window functions]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1696</guid>
		<description><![CDATA[I got asked this: having this table: # select * from a order by d; t &#124; d ---+---- O &#124; 1 O &#124; 2 O &#124; 3 M &#124; 4 M &#124; 5 M &#124; 6 M &#124; 7 O &#124; 8 O &#124; 9 O &#124; 10 I &#124; 11 I &#124; 12 [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/05/13/tips-n-tricks-rank-on-changes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Stupid tricks &#8211; hiding value of column in select *</title>
		<link>http://www.depesz.com/index.php/2010/04/19/stupid-tricks-hiding-value-of-column-in-select/</link>
		<comments>http://www.depesz.com/index.php/2010/04/19/stupid-tricks-hiding-value-of-column-in-select/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 21:20:02 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[column]]></category>
		<category><![CDATA[columns]]></category>
		<category><![CDATA[hide]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[stupid]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1668</guid>
		<description><![CDATA[One of the most common questions is &#8220;how do I get select * from table, but without one of the column&#8221;. Short answer is of course &#8211; name your columns, instead of using *. Or use a view. But I decided to take a look at the problem. I haven&#8217;t found a way to hide [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/04/19/stupid-tricks-hiding-value-of-column-in-select/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Getting unique elements</title>
		<link>http://www.depesz.com/index.php/2010/04/19/getting-unique-elements/</link>
		<comments>http://www.depesz.com/index.php/2010/04/19/getting-unique-elements/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 11:46:38 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[aggregate]]></category>
		<category><![CDATA[distinct]]></category>
		<category><![CDATA[group by]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[unique]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1665</guid>
		<description><![CDATA[Let&#8217;s assume you have some simple database with &#8220;articles&#8221; &#8211; each article can be in many &#8220;categories&#8221;. And now you want to get list of all articles in given set of categories. Standard approach: select a.* from articles as a join articles_in_categories as aic on a.id = aic.article_id where aic.category_id in (14,62,70,53,138) Will return duplicated [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/04/19/getting-unique-elements/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Tips n&#8217; Tricks &#8211; using &#8220;wrong&#8221; index</title>
		<link>http://www.depesz.com/index.php/2010/04/15/tips-n-tricks-using-wrong-index/</link>
		<comments>http://www.depesz.com/index.php/2010/04/15/tips-n-tricks-using-wrong-index/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 09:37:03 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[index]]></category>
		<category><![CDATA[monotonic]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[tnt]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1662</guid>
		<description><![CDATA[More than once I&#8217;ve seen situation when there is a table, with serial primary key, and rows contain also some kind of creation timestamp, which is usually monotonic, or close to monotonic. Example of such case are for example comments or posts in forums &#8211; each get it&#8217;s ID, but they also have creation timestamp. [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/04/15/tips-n-tricks-using-wrong-index/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to remove backups?</title>
		<link>http://www.depesz.com/index.php/2010/04/04/how-to-remove-backups/</link>
		<comments>http://www.depesz.com/index.php/2010/04/04/how-to-remove-backups/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 01:10:36 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[ext3]]></category>
		<category><![CDATA[io]]></category>
		<category><![CDATA[iowait]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[rm]]></category>
		<category><![CDATA[truncate]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1647</guid>
		<description><![CDATA[Question from title sounds weird to you? It&#8217;s just a &#8216;rm backup_filename&#8217;? Well. I really wish it was so simple in some cases. One of the servers I&#8217;m looking into, there is interesting situation: quite busy database server (2k tps is the low point of the day) very beefy hardware daily backups, each sized at [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/04/04/how-to-remove-backups/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Profiling stored procedures/functions</title>
		<link>http://www.depesz.com/index.php/2010/03/18/profiling-stored-proceduresfunctions/</link>
		<comments>http://www.depesz.com/index.php/2010/03/18/profiling-stored-proceduresfunctions/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 12:56:06 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cte]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[procedure]]></category>
		<category><![CDATA[profiling]]></category>
		<category><![CDATA[sproc]]></category>
		<category><![CDATA[stored]]></category>
		<category><![CDATA[stored procedure]]></category>
		<category><![CDATA[trigger]]></category>
		<category><![CDATA[window functions]]></category>
		<category><![CDATA[with]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1644</guid>
		<description><![CDATA[One database that I am monitoring uses a lot of stored procedures. Some of them are fast, some of them are not so fast. I thought &#8211; is there a sensible way to diagnose which part of stored procedure take the most time? I mean &#8211; I could just put the logic into application, and [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/03/18/profiling-stored-proceduresfunctions/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Setting WAL Replication</title>
		<link>http://www.depesz.com/index.php/2010/03/11/setting-wal-replication/</link>
		<comments>http://www.depesz.com/index.php/2010/03/11/setting-wal-replication/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 12:57:25 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[failover]]></category>
		<category><![CDATA[pg_standby]]></category>
		<category><![CDATA[pitr]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[standby]]></category>
		<category><![CDATA[wal]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1640</guid>
		<description><![CDATA[There are several approaches on replication/failover &#8211; you might have heard of Slony, Londiste, pgPool and some other tools. WAL Replication is different from all of them in one aspect &#8211; it doesn&#8217;t let you query slave database (until 9.0, in which you actually can run read only queries on slave. Since you can&#8217;t run [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/03/11/setting-wal-replication/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Stupid tricks &#8211; Dynamic updates of fields in NEW in PL/pgSQL</title>
		<link>http://www.depesz.com/index.php/2010/03/10/dynamic-updates-of-fields-in-new-in-plpgsql/</link>
		<comments>http://www.depesz.com/index.php/2010/03/10/dynamic-updates-of-fields-in-new-in-plpgsql/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 23:26:50 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[field]]></category>
		<category><![CDATA[impossible]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[record]]></category>
		<category><![CDATA[stupid]]></category>
		<category><![CDATA[trigger]]></category>
		<category><![CDATA[triggers]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1635</guid>
		<description><![CDATA[Dynamic updates of fields in NEW in PL/pgSQL Today, on #postgresql on IRC, strk asked about updating fields in NEW record, in plpgsql, but where name of the field is in variable. After some time, he sent his question to hackers mailing list. And he got prompt reply that it&#8217;s not possible. Well, I dare [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/03/10/dynamic-updates-of-fields-in-new-in-plpgsql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ERROR:  invalid byte sequence for encoding</title>
		<link>http://www.depesz.com/index.php/2010/03/07/error-invalid-byte-sequence-for-encoding/</link>
		<comments>http://www.depesz.com/index.php/2010/03/07/error-invalid-byte-sequence-for-encoding/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 19:29:25 +0000</pubDate>
		<dc:creator>depesz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[charset]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[latin]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[utf]]></category>

		<guid isPermaLink="false">http://www.depesz.com/?p=1628</guid>
		<description><![CDATA[One common problem that a lot of people seem to have is when they encounter error message like this: # \i test.sql psql:test.sql:1: ERROR: invalid byte sequence for encoding &#34;UTF8&#34;: 0xb3 Why it happens? What can be done about it? Let&#8217;s see. First, we need some theory, so you will understand background. As you perhaps [...]]]></description>
		<wfw:commentRss>http://www.depesz.com/index.php/2010/03/07/error-invalid-byte-sequence-for-encoding/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
