From: | Christopher Kings-Lynne <chriskl(at)familyhealth(dot)com(dot)au> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Patches <pgsql-patches(at)postgresql(dot)org> |
Subject: | Re: Fix for OWNER TO breaking ACLs |
Date: | 2004-08-02 03:40:01 |
Message-ID: | 410DB791.1010706@familyhealth.com.au |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
> * You had consistently changed the simple_heap_update calls to do the
> wrong thing. (I'm surprised it didn't blow up on you in your testing.)
> In a sequence like
>
> newtuple = heap_modifytuple(tup, rel, repl_val, repl_null, repl_repl);
>
> simple_heap_update(rel, &newtuple->t_self, newtuple);
> CatalogUpdateIndexes(rel, newtuple);
>
> the second parameter to simple_heap_update *must* be newtuple->t_self
> not tup->t_self. The reason is that simple_heap_update stores the new
> physical location of the updated tuple back into that parameter, and
> then the CatalogUpdateIndexes call relies on newtuple->t_self to
> generate new index entries. The way you had it coded, it was generating
> new index entries pointing at the old version of the tuple ...
Strange. I guess I must have been testing with a database that had
short enough system catalogs that the indexes were never used?
Chris
From | Date | Subject | |
---|---|---|---|
Next Message | Zhenbang Wei | 2004-08-02 03:54:40 | Traditional Chinese postgres-zh_TW.po for 7.5 |
Previous Message | Christopher Kings-Lynne | 2004-08-02 01:58:48 | Re: fix schema ownership on first connection preliminary |