Re: Inspection of row types in pl/pgsql and pl/sql

From: Merlin Moncure <mmoncure(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andrew Dunstan <andrew(at)dunslane(dot)net>, "Florian G(dot) Pflug" <fgp(at)phlo(dot)org>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, Postgresql-Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Inspection of row types in pl/pgsql and pl/sql
Date: 2009-11-14 21:22:38
Message-ID: b42b73150911141322g4e62d240l3efa034275e0ef5a@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Nov 14, 2009 at 3:24 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> This might look neat but I don't think it's actually useful for any
> production application.  We'd need to find some way of expressing it
> that allows caching of the expression plans.  But really I think the
> entire approach is pretty much backwards from an efficiency standpoint.
> I would sooner have some sort of primitive "changed_columns(NEW, OLD)"
> that spits out a list of the names of changed columns (or maybe the
> not-changed ones, not sure).  It would not require any fundamental
> restructuring and it would run several orders of magnitude faster
> than you could ever hope to do it at the plpgsql level.

huge +1 to this. This problem comes up all the time...I was in fact
this exact moment working on something just like Florian for table
auditing purposes...comparing new/old but needing to filter out
uninteresting columns. One of those things that should be a SMOP but
isn't ;-). I worked out a plpgsql approach using dynamic
sql...performance wasn't _that_ bad, but any speedup is definitely
welcome.

The way I did it was to pass both new and old to a function as text,
and build an 'is distinct from' from with the interesting field list
querying out fields from the expanded composite type...pretty dirty.

merlin

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jeff Davis 2009-11-14 21:41:00 Re: New VACUUM FULL
Previous Message Simon Riggs 2009-11-14 21:08:51 Re: Hot standby, race condition between recovery snapshot and commit