From: | NikhilS <nikkhils(at)gmail(dot)com> |
---|---|
To: | "Gregory Stark" <stark(at)enterprisedb(dot)com> |
Cc: | "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>, "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "Michael Paesold" <mpaesold(at)gmx(dot)at>, "David Fetter" <david(at)fetter(dot)org>, "Jonah H(dot) Harris" <jonah(dot)harris(at)gmail(dot)com>, "PostgreSQL Docs" <pgsql-docs(at)postgresql(dot)org>, "PostgreSQL Patches" <pgsql-patches(at)postgresql(dot)org> |
Subject: | Re: [DOCS] Partition: use triggers instead of rules |
Date: | 2007-11-30 07:04:05 |
Message-ID: | d3c4af540711292304k7092335ete0470fd896bbb2ab@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs pgsql-patches |
Hi,
On Nov 30, 2007 1:52 AM, Gregory Stark <stark(at)enterprisedb(dot)com> wrote:
>
> "Joshua D. Drake" <jd(at)commandprompt(dot)com> writes:
>
> > If you have lots of data it doesn't mean you are modifying lots of
> > data.
>
> It sure can. How do you modify lots of data if you *don't* have lots data
> in
> the first place? Certainly it doesn't mean you necessarily are, some
> databases
> are OLTP which do no large updates. But data warehouses with oodles of
> data
> also often have to do large updates or deletions.
>
> > I don't think anyone here (good lord I hope not) would say that firing
> > a trigger over 500k rows is fast. Instead you should likely just work
> the data
> > outside the partition and then move it directly into the target
> > partition.
>
> Well you don't even have to do that. You can issue the updates directly
> against the partitions. In fact, that's precisely what the rules
> effectively
> do... Rules rewrite the query to be a query directly against the
> partitions.
>
> Come to think of it I think there actually is a correct way to use rules
> which
> wouldn't suffer from the problems that have come up. Instead of putting a
> WHERE clause on the rule just expand deletes and updates to expand to
> deletes
> and updates against *all* partitions. Then let constraint_exclusion kick
> in to
> narrow down which partitions should actually receive the updates and
> deletes.
> I think triggers are the only solution for insert though.
>
Another reason to go along with triggers is that "COPY" honors triggers, but
does not honor rules. While trying to do bulk inserts into a parent of
partitioned tables where rules are being employed, the COPY operation will
not be so straightforward.
Regards,
Nikhils
--
EnterpriseDB http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2007-11-30 09:54:19 | Re: [PATCHES] Partition: use triggers instead of rules |
Previous Message | Gregory Stark | 2007-11-29 20:22:55 | Re: [DOCS] Partition: use triggers instead of rules |
From | Date | Subject | |
---|---|---|---|
Next Message | Jorgen Austvik - Sun Norway | 2007-11-30 08:43:30 | Re: pg_regress: paths in largeobject test |
Previous Message | Kris Jurka | 2007-11-29 22:02:11 | Re: Re: [HACKERS] [GENERAL] plperl and regexps with accented characters - incompatible? |