Re: COPY with hints, rebirth
От | Heikki Linnakangas |
---|---|
Тема | Re: COPY with hints, rebirth |
Дата | |
Msg-id | 4F4FE0D3.1070509@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: COPY with hints, rebirth (Simon Riggs <simon@2ndQuadrant.com>) |
Ответы |
Re: COPY with hints, rebirth
|
Список | pgsql-hackers |
On 01.03.2012 18:40, Simon Riggs wrote: > On Sun, Feb 26, 2012 at 7:16 PM, Heikki Linnakangas > <heikki.linnakangas@enterprisedb.com> wrote: >> On 24.02.2012 22:55, Simon Riggs wrote: >>> >>> What exactly does it do? Previously, we optimised COPY when it was >>> loading data into a newly created table or a freshly truncated table. >>> This patch extends that and actually sets the tuple header flag as >>> HEAP_XMIN_COMMITTED during the load. Doing so is simple 2 lines of >>> code. The patch also adds some tests for corner cases that would make >>> that action break MVCC - though those cases are minor and typical data >>> loads will benefit fully from this. >> >> This doesn't work with subtransactions: > ... >> The query should return the row copied in the same subtransaction. > > Thanks for pointing that out. > > New patch with corrected logic and test case attached. It's still broken: -- create test table and file create table a as select 1 as id; copy a to '/tmp/a'; -- start test postgres=# begin; BEGIN postgres=# truncate a; TRUNCATE TABLE postgres=# savepoint sp1; SAVEPOINT postgres=# copy a from '/tmp/a'; COPY 1 postgres=# select * from a; id ---- 1 (1 row) postgres=# rollback to savepoint sp1; ROLLBACK postgres=# select * from a; id ---- 1 (1 row) That last select should not have seen the tuple. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: