Jaime Casanova wrote:
> On Wed, Dec 2, 2009 at 4:13 PM, Bernd Helmle <bernd(at)oopsware(dot)de> wrote:
>> --On 2. Dezember 2009 15:26:19 -0500 Jaime Casanova
>> <jcasanov(at)systemguards(dot)com(dot)ec> wrote:
>>> i have no access to dtrace at all... but now i can take a patch, maybe
>>> another one of those that you mention?
>> Hmm i'm running OS X...i already proposed Greg to take my hands on the
>> Largeobject Access Control Patch, but now it seems better to look at those
>> DTrace things. I originally hesitated to review those since i'm not very
>> familiar with DTrace, but if it helps (and i can improve my skills here),
>> i'm fine with it and you can review the Largeobject patches?
> that's fine with me...
Jaime, Thanks for your volunteering.
Since you reviewed this patch at the last commit fest, I think it is not
difficult to check the code. It was just a revised version according to
the comments from Tom Lane.
Greg referenced my previous post which introduced this feature.
Then, this patch is moved to "ready for commiter", but Tom Lane commented
some of his complaints, as follows:
The biggest issue was incompatibility of snapshot on references to
the pg_largeobject_metadata and pg_largeobject system catalogs.
In the previous revision, it always refered the new pg_largeobject_metadata
catalog with SnapshotNow, but inv_api.c may refer the pg_largeobject with
query's snapshot in read-only mode, not always SnapshotNow.
It meaned we could see unvisible changes in the metadata which contains
access privileges, if we apply incompatible snapshot between metadata and
So, I added pg_largeobject_aclcheck_snapshot() which takes an argument to
give a snapthot to be used to scan pg_largeobeject_metadata. It is invoked
from inv_api.c, and the caller delivers an appropriate snapshot (it may be
SnapshotNow, or not).
Anyway, the point is that we should apply an identical snapshot to scan
both of data(pg_largeobject) and metadata(pg_largeobject_metadata).
The _snapshot() interface seems to you a bit strange, but it has a reason. :-)
In addition, the following points are changed in new revision:
- Syscache support has gone, because it can consume unexpected amount of
local memory when user tries to create massive number of large objects.
- ac_largeobject_*() has gone, because "Reworks for Access Control" patch
was rejected in the lasst commit fest.
- pg_dump support was added.
- \lo_list support multiple server version, not only v8.5 or later.
- documentations and user visible error messages were fixed.
(I surprised at "largeobject" is an incorrect English word. :-)
OSS Platform Development Division, NEC
KaiGai Kohei <kaigai(at)ak(dot)jp(dot)nec(dot)com>
In response to
pgsql-rrreviewers by date
|Next:||From: Greg Smith||Date: 2009-12-06 15:24:43|
|Subject: Review request: XLogInsert|
|Previous:||From: Greg Smith||Date: 2009-12-03 00:40:04|
|Subject: Re: CommitFest 2009-11: Two weeks (and a little) update|