Hi Keith.

I don't like very much your example, since I'm expecting that edges with 
different labels could exists between the same two vertices.
>From the last documentation I thought that the first edge created was 
lightweight and the following were created as record.

Anyway I used your code to produce another example, which I think is more 
appropriated:

import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.blueprints.Edge;
import com.tinkerpop.blueprints.impls.orient.OrientEdge;
import com.tinkerpop.blueprints.impls.orient.OrientGraphFactory;
import com.tinkerpop.blueprints.impls.orient.OrientGraphNoTx;
import com.tinkerpop.blueprints.impls.orient.OrientVertex;

public class O2GraphLWEdges
{
    public static void main(String[] args)
    {
        long start = System.currentTimeMillis();

        OrientGraphFactory gfactory = new OrientGraphFactory("memory:temp");
        
        try
        {
            OrientGraphNoTx graph = gfactory.getNoTx(); // get an instance 
from the pool
            graph.setUseLightweightEdges(true);

            try
            {
                
                OrientVertex v1 = graph.addVertex("class:V1", "name", 
"Luca");
                OrientVertex v2 = graph.addVertex("class:V1", "name", 
"Marko");
                OrientEdge e = graph.addEdge(null, v1, v2, "knows");
                if(e.isLightweight())
                System.out.println("created lightweight edge");
                e = graph.addEdge(null, v1, v2, "knows");
                if(e.isLightweight())
                System.out.println("created lightweight edge");
                e = graph.addEdge(null, v1, v2, "knows");
                if(e.isLightweight())
                System.out.println("created lightweight edge");
                e = graph.addEdge(null, v1, v2, "knows");
                if(e.isLightweight())
                System.out.println("created lightweight edge");
                
                System.out.println("Edges as Record: " + 
Long.toString(graph.countVertices("E")));
                
                Iterable<Edge> edges = v1.getEdges(Direction.OUT);
                long i = 0;
                for(Edge edge : edges)
                i += 1;
                System.out.println("Outgoung Edges startign from v1: " + 
Long.toString(i));
            }
            catch (Exception ex)
            {
                try
                {
                    graph.rollback();
                }
                catch (Exception ex1)
                {
                    System.err.println("rollback exception! " + ex);
                }

                System.err.println("operation exception! " + ex);
                ex.printStackTrace(System.err);
            }
            finally
            {
                graph.shutdown();
            }
        }
        catch (Exception ex)
        {
            System.err.println("instance exception! " + ex);
            ex.printStackTrace(System.err);
        }
        finally
        {
            gfactory.close();
        }

        System.out.println("done in " + (System.currentTimeMillis() - 
start) + "ms");
    }
}

The output is (Orient 1.7.10):

created lightweight edge
created lightweight edge
created lightweight edge
created lightweight edge
Edges as Record: 0
Outgoung Edges startign from v1: 4
done in 787ms

*My expectations where all wrong: multiple lightweight edges, with the same 
label, between the same vertices can exist.*

I can't clearly state if it's a bug or it's a feature, but documentation 
should be fixed.

Cheers,
   Riccardo



Il giorno mercoledì 7 gennaio 2015 20:55:10 UTC+1, Keith Freeman ha scritto:
>
> Sorry, but I don't think the correction is right either: "two vertices are 
> connected by maximum 1 edge, so if you already have one edge between two 
> vertices and you're creating a new edge between the same vertices, the 
> second edge will be regular."
>
> I just wrote a quick java program (on 2.0-rc1) that creates 2 vertices and 
> 4 edges between them, all 4 edges are lightweight.  It seems the only real 
> condition is that the edge have no properties (and of course that the 
> database is configured for lightweight edges).
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to