Skip site navigation (1) Skip section navigation (2)

Re: Daily Rotated Insertion

From: Haifeng Liu <liuhaifeng(at)live(dot)com>
To: Sergey Konoplev <gray(dot)ru(at)gmail(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Daily Rotated Insertion
Date: 2012-03-27 10:05:56
Message-ID: BLU0-SMTP2145D8DE7E99BCAB06AB71DB94A0@phx.gbl (view raw or flat)
Thread:
Lists: pgsql-admin
On Mar 27, 2012, at 3:33 PM, Sergey Konoplev wrote:

> On Tue, Mar 27, 2012 at 10:02 AM, Haifeng Liu <liuhaifeng(at)live(dot)com> wrote:
>> Yes, that's what I am doing. There are many ways to implement partitioned table, I just want to find an elegant one. Bulk create a certain number of partitions is not good in my opinion. What I am trying now is let the trigger which switches insertions to catch exceptions and create new partitions on demand, meanwhile. update the trigger itself to use the new switch rule.
>> 
>> This idea can use static statement to switch insertions, dynamic statements are only used to create partition and update the trigger, this should be good for performance. And compare to the static partition example given in the document, this solution can auto-update itself, there is no need for cron jobs to maintenance partition.
> 
> Okay, I got what you mean. I used to use auto partitioning in one of
> my projects but it assumed errors catching on the application server
> side. However you can easily adapt the solution for your needs. I
> attached the script to the message.
> 
> BTW, I created it several years ago. A lot of nice stuff like CREATE
> TABLE IF NOT EXISTS were added in the new versions of PostgreSQL. So I
> think may be you could get rid of catching exceptions completely with
> help of these new features.
> 
> Please let me know if you decide to use this approach and modify it.

Thanks for sharing your script. Mine is done now, my goal is make the trigger more simple for most case, so I use a function to create trigger function and make the redirect rule static, and if an exception occurred when new DATE is found, the trigger will call the function to recreate itself.

Main ddls of my solution is posted as attachment.

Attachment: auto-partition.sql
Description: application/octet-stream (2.9 KB)

In response to

pgsql-admin by date

Next:From: sagarika raoDate: 2012-03-28 06:32:58
Subject: Postgres Zip init not creating db user windows
Previous:From: Sergey KonoplevDate: 2012-03-27 07:33:10
Subject: Re: Daily Rotated Insertion

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group