We have a table T with columns A and B with a composite unique constraint on the columns A and B.

Now I insert records into the table T using the following single statement in one session -

insert into T values (
(select a, b from dual)
union
(select c, d from dual)
union
(select e, f from dual))

and in another session I fire -

insert into T values (
(select e, f from dual)
union
(select a, b from dual)
)

My expectation is since there is a composite unique constraint, insert statement in one session will wait
since there is a common subset.

There is clearly a chance of deadlock, in the case, the multiple row inserts using a single insert statement is non atomic.
By atomic, I mean all rows get inserted by this single insert statement at one shot.

What I observe is, with the real dataset, a deadlock "is" occuring -
question is whether that is the expected behavior from Oracle 10G or a bug?