Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Data Bases > Pgsql Hackers > Re: minimal upd...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 6 Topic 9324 of 9685
Post > Topic >>

Re: minimal update

by bruce@[EMAIL PROTECTED] (Bruce Momjian) May 7, 2008 at 08:34 PM

Is there a version of this patch ready for application?

---------------------------------------------------------------------------

Gurjeet Singh wrote:
> On Tue, Mar 18, 2008 at 7:46 PM, Andrew Dunstan <andrew@[EMAIL PROTECTED]
>
wrote:
> 
> >
> >
> >
> >
> >
> > Gurjeet Singh wrote:
> > > On Fri, Mar 7, 2008 at 9:40 PM, Bruce Momjian <bruce@[EMAIL PROTECTED]
> > > <mailto:bruce@[EMAIL PROTECTED]
>> wrote:
> > >
> > >
> > >     I assume don't want a TODO for this?  (Suppress UPDATE no
changed
> > >     columns)
> > >
> > >
> > > I am starting to implement this. Do we want to have this trigger
> > > function in the server, or in an external module?
> > >
> > >
> >
> > I have the trigger part of this done, in fact. What remains to be done
> > is to add it to the catalog and document it. The intention is to make
it
> > a builtin as it will be generally useful. If you want to work on the
> > remaining parts then I will happily ****p you the C code for the
trigger.
> >
> >
> In fact, I just finished writing the C code and including it in the
catalog
> (Just tested that it's visible in the catalog). I will test it to see if
it
> does actually do what we want it to.
> 
> I have incor****ated all the suggestions above. Would love to see your
code
> in the meantime.
> 
> Here's the C code:
> 
> Datum
> trig_ignore_duplicate_updates( PG_FUNCTION_ARGS )
> {
>     TriggerData *trigData;
>     HeapTuple oldTuple;
>     HeapTuple newTuple;
> 
>     if (!CALLED_AS_TRIGGER(fcinfo))
>         elog(ERROR, "trig_ignore_duplicate_updates: not called by
trigger
> manager.");
> 
>     if( !TRIGGER_FIRED_BY_UPDATE(trigData->tg_event)
>         && !TRIGGER_FIRED_BEFORE(trigData->tg_event)
>         && !TRIGGER_FIRED_FOR_ROW(trigData->tg_event) )
>     {
>         elog(ERROR, "trig_ignore_duplicate_updates: Can only be executed
for
> UPDATE, BEFORE and FOR EACH ROW.");
>     }
> 
>     trigData =  (TriggerData *) fcinfo->context;
>     oldTuple = trigData->tg_trigtuple;
>     newTuple = trigData->tg_newtuple;
> 
>     if (newTuple->t_len == oldTuple->t_len
>         && newTuple->t_data->t_hoff == oldTuple->t_data->t_hoff
>         && HeapTupleHeaderGetNatts(newTuple->t_data) ==
> HeapTupleHeaderGetNatts(oldTuple->t_data)
>         && (newTuple->t_data->t_infomask & ~HEAP_XACT_MASK)
>             == (oldTuple->t_data->t_infomask & ~HEAP_XACT_MASK)
>         && memcmp( (char*)(newTuple->t_data) +
offsetof(HeapTupleHeaderData,
> t_bits),
>                 (char*)(oldTuple->t_data) +
offsetof(HeapTupleHeaderData,
> t_bits),
>                     newTuple->t_len - offsetof(HeapTupleHeaderData,
t_bits)
> ) == 0 )
>     {
>         /* return without crating a new tuple */
>         return PointerGetDatum( NULL );
>     }
> 
>     return PointerGetDatum( trigData->tg_newtuple );
> }
> 
> 
> 
> -- 
> gurjeet[.singh]@[EMAIL PROTECTED]
> singh.gurjeet@[EMAIL PROTECTED]
 gmail | hotmail | indiatimes | yahoo }.com
> 
> EnterpriseDB http://www.enterprisedb.com
> 
> 17? 29' 34.37"N, 78? 30' 59.76"E - Hyderabad *
> 18? 32' 57.25"N, 73? 56' 25.42"E - Pune
> 37? 47' 19.72"N, 122? 24' 1.69" W - San Francisco
> 
> http://gurjeet.frihost.net
> 
> Mail sent from my BlackLaptop device

-- 
  Bruce Momjian  <bruce@[EMAIL PROTECTED]
>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@[EMAIL PROTECTED]
)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
 




 6 Posts in Topic:
Re: minimal update
bruce@[EMAIL PROTECTED]   2008-05-07 20:34:20 
Re: minimal update
andrew@[EMAIL PROTECTED]   2008-05-07 20:38:02 
Re: minimal update
bruce@[EMAIL PROTECTED]   2008-05-07 21:16:56 
Re: minimal update
andrew@[EMAIL PROTECTED]   2008-05-07 21:25:01 
Re: minimal update
bruce@[EMAIL PROTECTED]   2008-05-07 21:29:22 
Re: minimal update
andrew@[EMAIL PROTECTED]   2008-05-07 21:36:06 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan13V112 Tue Jul 8 23:51:23 CDT 2008.