From: | Kevin Grittner <kgrittn(at)ymail(dot)com> |
---|---|
To: | Jim Nasby <jim(at)nasby(dot)net>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
Cc: | Andres Freund <andres(at)2ndquadrant(dot)com>, Josh Berkus <josh(at)agliodbs(dot)com>, Peter Eisentraut <peter_e(at)gmx(dot)net>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [PATCH] SQL assertions prototype |
Date: | 2013-12-18 20:39:53 |
Message-ID: | 1387399193.34150.YahooMailNeo@web162903.mail.bf1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Jim Nasby <jim(at)nasby(dot)net> wrote:
> On 12/18/13, 1:42 PM, Kevin Grittner wrote:
>> Jim Nasby <jim(at)nasby(dot)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?
If we had a list to check against, I think it would be possible to
do this during parse analysis and AcquireRewriteLocks(). (One or
the other happens before query rewrite.) The hard part seems to me
to be defining a sane way to get the list.
--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2013-12-18 20:41:24 | Re: stats for network traffic WIP |
Previous Message | Marko Tiikkaja | 2013-12-18 20:27:54 | array_length(anyarray) |