これは重大なバグであり、OrientDBがさまざまなDML操作中にグラフデータの整合性をどのように管理するかに疑問を投げかけています。BUG:insert edgeを挿入すると無効なTO参照が作成される
Edgeには複数のTOがありますか?
以下は、「insert into select」を使用して頂点をコピーする単純な操作の概要を示しています。
初期状態
{
"result": [
{
"@type": "d",
"@rid": "#-2:1",
"@version": 0,
"rid": "#133:46",
"version": 1,
"class": "RuleSet",
"out_HasRule": [
"#80:32"
],
"@fieldTypes": "rid=x,out_HasRule=g"
},
{
"@type": "d",
"@rid": "#-2:2",
"@version": 0,
"rid": "#130:39",
"version": 1,
"class": "Rule",
"in_HasRule": [
"#80:32"
],
"@fieldTypes": "rid=x,in_HasRule=g"
}
],
"notification": "Query executed in 0.213 sec. Returned 2 record(s)" }
私は次のことを実行した場合、不正なエッジデータが作成されます。 #80:32は、複数の頂点に対してINであることに注意してください。
insert into Rule from select * from #130:39;
{
"result": [
{
"@type": "d",
"@rid": "#-2:1",
"@version": 0,
"rid": "#133:46",
"version": 1,
"class": "RuleSet",
"out_HasRule": [
"#80:32"
],
"@fieldTypes": "rid=x,out_HasRule=g"
},
{
"@type": "d",
"@rid": "#-2:2",
"@version": 0,
"rid": "#131:38",
"version": 1,
"class": "Rule",
"in_HasRule": [
"#80:32"
],
"@fieldTypes": "rid=x,in_HasRule=g"
},
{
"@type": "d",
"@rid": "#-2:3",
"@version": 0,
"rid": "#130:39",
"version": 1,
"class": "Rule",
"in_HasRule": [
"#80:32"
],
"@fieldTypes": "rid=x,in_HasRule=g"
}
],
"notification": "Query executed in 0.151 sec. Returned 3 record(s)"}
素晴らしい、おかげで、私たちはできるだけ早く –
クイック更新、それに対処します、問題が修正されました、それは2.2.30でリリースされます –