2015-07-22 3 views
1

J'ai découvert un comportement étrange lors de l'interrogation d'une classe Edge à l'aide de OrientDB (community-2.1-rc5). La base de données retourne le même bord exact avec exactement le même @rid et les mêmes données exactes, deux fois. Mon instinct me dit que c'est un bug ...Arêtes dupliquées avec le même @rid dans OrientDB

C'est la requête

SELECT FROM E WHERE @class='LIKES' AND (out IN [#12:0,#12:221]) AND in=#36:1913 

Et voici ce studio orientDB retourne

http://s29.postimg.org/hwruv0zif/Captura.png

Cela n'a aucun sens. Si je vais à la vertex et interroge la relation LIKES, il ne renvoie qu'un seul registre ... N'importe qui a fait face à un problème comme celui-ci?

C'est la base de données que je utilise si elle aide

https://www.dropbox.com/sh/pkm28cfer1pwpqb/AAAVGeL1eftOGR4o0todTiAha?dl=0

Répondre

0

Pour obtenir de l'aide avec ce bug, vous devez faire une demande de rejoindre le groupe Google. StackOverflow n'est pas le meilleur endroit pour obtenir de l'aide avec ce genre de bug.

Le problème est que vous avez dupliqué votre bord par erreur. Orientdb vous laisse le faire pour une raison inconnue.

Voici la discussion de bug sur le groupe google orientdb: https://groups.google.com/forum/#!topic/orient-database/cAR7yUjCZcI

Dans la discussion Luca (créateur de orientdb) dit ceci:

"the problem is that without a transaction the creation of edge could 
be dirty. OrientDB tries to fix dirty reference, so maybe that's the 
reason why the next time the exception is raised. I've changed the 
default behavior of all SQL commands against Graphs to be always 
transactional" 

Mise à niveau vers la version la plus récente de orientdb serait bon idéal. Peut-être que le bug a été corrigé.

+0

Je vais commencer à utiliser les transactions directement. Recommandez-vous des transactions distinctes pour l'insertion des sommets et des arêtes? Ou juste une transaction, en insérant les sommets en premier lieu et les bords en dernier. Merci pour tout –

+0

Ici il y a la documentation pour les transactions dans le graphique api: http://orientdb.com/docs/2.0/orientdb.wiki/Graph-Database-Tinkerpop.html#transactions – AlexB

+0

Mais, comme Luc a dit le défaut Comportement de toutes les commandes SQL. Les graphes doivent toujours être transactionnels – AlexB