Re: [PATCH] SQL assertions prototype - Mailing list pgsql-hackers

From Jim Nasby
Subject Re: [PATCH] SQL assertions prototype
Date
Msg-id 52B1FD0F.7050609@nasby.net
Whole thread Raw
In response to Re: [PATCH] SQL assertions prototype  (Kevin Grittner <kgrittn@ymail.com>)
Responses Re: [PATCH] SQL assertions prototype
List pgsql-hackers
On 12/18/13, 1:42 PM, Kevin Grittner wrote:
> Jim Nasby <jim@nasby.net> wrote:
>
>> This is another case where it would be very useful to restrict
>> what relations a transaction (or in this case, a substransaction)
>> can access. If we had the ability to make that restriction then
>> we could force assertions that aren't plain SQL to explicitly
>> specify what tables the assert is going to hit, and if the assert
>> tries to do something different then we throw an error.
>>
>> The ability to restrict object access within a transaction would
>> also benefit VACUUM and possibly the Changeset stuff.
>
> I'm pretty sure that SSI could also optimize based on that,
> although there are probably about 10 other optimizations that would
> be bigger gains before getting to that.

Any ideas how hard this would be? My thought is that we might be able to perform this check in the functions that do
cataloglookups, but I'm worried that that wouldn't allow us to support subtransaction checks (which we'd need for
assertions),and it runs the risk of long-lasting object references spanning the transaction (or subtransaction) and
therebythwarting the check.
 

Another option would be in heap accessor functions, but that means we could only restrict access to tables. For
assertions,it would be nice to also disallow access to functions that could have unintended consequences that could
violatethe assertion (like dblink).
 
-- 
Jim C. Nasby, Data Architect                       jim@nasby.net
512.569.9461 (cell)                         http://jim.nasby.net



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: [PATCH] SQL assertions prototype
Next
From: Dong Ye
Date:
Subject: Re: 9.3 regression with dbt2