You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When deleting edges their indexes still exist and it causes "com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record #49:4: found duplicated key 'OCompositeKey{keys=[#47:47, #46:48]}' in index 'EMEdge.out_in' previously assigned to the record #48:3".
This error reproduces in: 3.1.0-beta1, 3.1.1, but not reproduces in 3.0.32.
An important note: I have message in log file says "Seems you use manual indexes. Manual indexes are deprecated , not supported any more and will be removed in next versions if you do not want to see warning, please set global property index.allowManualIndexesWarning to false".
But as documentation says, "To create an automatic index bound to the schema property, use the ON clause, or use a . name for the index. In order to create an index, the schema must already exist in your database." - and I use "ON" clause.
Steps to reproduce
CREATE CLASS EMVertex EXTENDS V
CREATE CLASS EMEdge EXTENDS E
CREATE VERTEX EMVertex (from vertex)
CREATE VERTEX EMVertex (to vertex)
CREATE PROPERTY EMEdge.in LINK
CREATE PROPERTY EMEdge.out LINK
CREATE INDEX G ON EMEdge ( out, in ) UNIQUE
CREATE EDGE EMEdge FROM #47:47 TO #46:48 (previously created vertexe's rids)
DELETE EDGE #48:3 (delete previously created edge)
SELECT FROM EMEdge (result - no edges)
SELECT FROM INDEX:G (result - index still exists)
CREATE EDGE EMEdge FROM #47:47 TO #46:48 (Cannot index record #49:4: found duplicated key 'OCompositeKey{keys=[#47:47, #46:48]}' in index 'G' previously assigned to the record #48:3").
REBUILD INDEX G
CREATE EDGE EMEdge FROM #47:47 TO #46:48 (edge creates properly)
The text was updated successfully, but these errors were encountered:
Hi @Maklyura . This warning is about the fact that you access index directly, such access methods will be deprecated in next release. About the rest, that is definitely a bug. I am working to fix it.
The problem happens because in and out links of edges are marked as dirty, but their original values equal to null which is incorrect. Assigned to @tglman .
Hi @Maklyura . This warning is about the fact that you access index directly, such access methods will be deprecated in next release. About the rest, that is definitely a bug. I am working to fix it.
Thanks a lot for warning me about directly access indexes. I do not need it, It was just way to be sure that indexes are the cause, and I used it in example as easy way to show that indexes are still exist.
OrientDB Version: 3.1.1
Java Version: 1.8.0
OS: Linux
Expected behavior
Indexes must be deleted when deleting edges
Actual behavior
When deleting edges their indexes still exist and it causes "com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record #49:4: found duplicated key 'OCompositeKey{keys=[#47:47, #46:48]}' in index 'EMEdge.out_in' previously assigned to the record #48:3".
This error reproduces in: 3.1.0-beta1, 3.1.1, but not reproduces in 3.0.32.
An important note: I have message in log file says "Seems you use manual indexes. Manual indexes are deprecated , not supported any more and will be removed in next versions if you do not want to see warning, please set global property
index.allowManualIndexesWarning
tofalse
".But as documentation says, "To create an automatic index bound to the schema property, use the ON clause, or use a . name for the index. In order to create an index, the schema must already exist in your database." - and I use "ON" clause.
Steps to reproduce
CREATE CLASS EMVertex EXTENDS V
CREATE CLASS EMEdge EXTENDS E
CREATE VERTEX EMVertex (from vertex)
CREATE VERTEX EMVertex (to vertex)
CREATE PROPERTY EMEdge.in LINK
CREATE PROPERTY EMEdge.out LINK
CREATE INDEX G ON EMEdge ( out, in ) UNIQUE
CREATE EDGE EMEdge FROM #47:47 TO #46:48 (previously created vertexe's rids)
DELETE EDGE #48:3 (delete previously created edge)
SELECT FROM EMEdge (result - no edges)
SELECT FROM INDEX:G (result - index still exists)
CREATE EDGE EMEdge FROM #47:47 TO #46:48 (Cannot index record #49:4: found duplicated key 'OCompositeKey{keys=[#47:47, #46:48]}' in index 'G' previously assigned to the record #48:3").
REBUILD INDEX G
CREATE EDGE EMEdge FROM #47:47 TO #46:48 (edge creates properly)
The text was updated successfully, but these errors were encountered: