Re: MERGE Specification
От | Boxuan Zhai |
---|---|
Тема | Re: MERGE Specification |
Дата | |
Msg-id | AANLkTi=y0+FYJg3Sxuhzf1+27pQFYykBg4KSeU0A0_NJ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: MERGE Specification (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>) |
Ответы |
Re: MERGE Specification
|
Список | pgsql-hackers |
On Tue, Aug 10, 2010 at 10:29 PM, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> wrote:
On 10/08/10 12:08, Boxuan Zhai wrote:Thanks.Thanks for your feedback. I fixed all the above waring bugs. Find the new
patch in attachement.
I'm getting an assertion failure with this statement:
CREATE TABLE foo (id int4);
MERGE into foo t
USING (select id FROM generate_series(1,5) id) AS s
ON t.id = s.id
WHEN NOT MATCHED THEN INSERT (id) VALUES (s.id);
The query works on my machine.
TRAP: FailedAssertion("!(ActiveSnapshotSet())", File: "postgres.c", Line: 749)
That's easily fixed - you need to add "case T_MergeStmt" to the list of optimizable command types in analyze_requires_snapshot() function.
Unfortunately that doesn't get you far, the query then trips another assertion:
TRAP: FailedAssertion("!(list_length(resultRelations) == list_length(subplans))", File: "createplan.c", Line: 3929)
I just found that no Assert() works in my codes. I think it is because the assertion is no enabled. How to enable assertion. To define USE_ASSERT_CHECKING somewhere?
В списке pgsql-hackers по дате отправления: