On Tue, Aug 10, 2010 at 10:29 PM, Heikki Linnakangas < heikki.linnakan...@enterprisedb.com> wrote:
> On 10/08/10 12:08, Boxuan Zhai wrote: > >> Thanks for your feedback. I fixed all the above waring bugs. Find the new >> patch in attachement. >> > > Thanks. > > 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? > -- > Heikki Linnakangas > EnterpriseDB http://www.enterprisedb.com >