Ticket #81 (assigned defect)

Opened 9 months ago

Last modified 9 months ago

Blank Node Assignment in Inserts inconsistent with autocommit

Reported by: andrae Assigned to: andrae (accepted)
Priority: major Milestone:
Component: Mulgara Version: 1.1.1
Keywords: insert autocommit blanknode Cc:

Description (Last modified by ronald)

It appears that the binding of variables to blank nodes when inserting statements behaves differently depending on whether autocommit is turned on for the session. If I have autocommit turned on and execute the following iTQL commands:

create <rmi://localhost/server1#test>;
insert <test:subj> <test:pred> $x $x <test:value> 'o1'
    into <rmi://localhost/server1#test> ;
insert <test:subj> <test:pred> $x $x <test:value> 'o2'
    into <rmi://localhost/server1#test> ;
select $s $p $o from <rmi://localhost/server1#test> where $s $p $o;

Then I see that the variable "x" is bound to different blank nodes in each of the two insertions, and the resulting model has 4 statements. This is the behavior (behaviour?) that I would expect.

However, when I turn autocommit off prior to the first insertion, and turn it back on after the second insertion, then I see that the variable "x" is bound to the *same* blank node in each of the insertions, resulting in 3 total statements in the model, which came as a bit of a surprise to me. Is this the expected behavior in that situation?

Change History

02/27/08 22:27:33 changed by andrae

  • owner changed from pag to andrae.
  • status changed from new to assigned.

02/27/08 23:53:05 changed by ronald

  • description changed.

02/28/08 06:40:58 changed by pag

While it is unexpected behavior, it is also exactly what some people would like to have, as there is no way to re-reference an inserted blank node without doing a select/insert.

So do we fix it, or document it?