I thought/consider the gremlin classless lightweight edge creation behavior
a feature, is it actually a bug or something?
-------
If I do as I did in the first post:
1) set uselightweight edges
2) create an edge using v.addEdge using gremlin
then a lightweight edge is created that has the label set to the edge name
==>e[#9:0->#9:1][#9:0-knows->#9:1]
gremlin> e.isLightweight()
==>true
gremlin> e.map
==>{}
gremlin> e.label
==>knows
gremlin> e.getProperty("@class")
==>null
orientdb {db=testdb}> list classes
CLASSES
----------------------------------------------+------------------------------------+------------+----------------+
NAME | SUPERCLASS
| CLUSTERS | RECORDS |
----------------------------------------------+------------------------------------+------------+----------------+
E |
| 10 | 0 |
OFunction |
| 6 | 0 |
OIdentity |
| - | 0 |
ORestricted |
| - | 0 |
ORIDs |
| 8 | 0 |
ORole | OIdentity
| 4 | 3 |
OSchedule |
| 7 | 0 |
OTriggered |
| - | 0 |
OUser | OIdentity
| 5 | 3 |
V |
| 9 | 2 |
----------------------------------------------+------------------------------------+------------+----------------+
TOTAL = 10
8 |
----------------------------------------------+------------------------------------+------------+----------------+
orientdb {db=testdb}> select from V
----+----+------+----+---------+--------
# |@RID|@CLASS|myid|out_knows|in_knows
----+----+------+----+---------+--------
0 |#9:0|V |1 |[size=1] |null
1 |#9:1|V |2 |null |[size=1]
----+----+------+----+---------+--------
On Thursday, April 16, 2015 at 7:54:37 PM UTC-7, Colin wrote:
>
> If you use Gremlin and then check the database, is an edge class with that
> label's name created?
>
> -Colin
>
> On Thursday, April 16, 2015 at 5:29:03 PM UTC-5, Kyle wrote:
>>
>> Yes, if I create the class a lightweight edge is indeed created.
>> But when I create the lightweight edge using gremlin it does not require
>> creating a class.
>>
>> I see you can do
>>
>>> alter database custom useClassForEdgeLabel=false;
>>
>> but that seems to still require creating normal edges.
>>
>> I have very heterogeneous data, creating a class for each edge label
>> would require creating hundreds of thousands of classes. A large portion of
>> the data is going to remain static, so my plan has been to create
>> lightweight edges for the static portions and classes for the more involved
>> data to reduce storage, increase performance and make schema management
>> less cluttered.
>>
>> So, is there a way to create lightweight edges using sql that does not
>> require creating classes or does that functionality require gremlin?
>>
>> On Thursday, April 16, 2015 at 2:56:43 PM UTC-7, Colin wrote:
>>>
>>> Try creating the Knows edge class prior to creating the actual edge.
>>>
>>> See if that works.
>>>
>>> -Colin
>>>
>>> Orient Technologies
>>>
>>> The Company behind OrientDB
>>>
>>>
>>> On Thursday, April 16, 2015 at 2:40:41 PM UTC-5, [email protected]
>>> wrote:
>>>>
>>>> I am using orientdb 2.0.7
>>>> I cannot create lightweight edges in the console
>>>>
>>>> I executed
>>>> alter database custom useLightweightEdges=true
>>>>
>>>> If I try to create a lightweight edge labeled "knows" I get the
>>>> following error:
>>>> Error:
>>>> com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error
>>>> on
>>>> parsing command at position #0: Class 'KNOWS' was not found
>>>>
>>>>
>>>>
>>>> I am able to create lightweight edges using gremlin.
>>>>
>>>>
>>>> orientdb> create database
>>>>> plocal:/home/kyle/Downloads/orientdb-community-2.0.7/databases/ledge_test2
>>>>>
>>>>> admin admin
>>>>> Creating database
>>>>> [plocal:/home/kyle/Downloads/orientdb-community-2.0.7/databases/ledge_test2]
>>>>>
>>>>> using the storage type [plocal]...
>>>>> Database created successfully.
>>>>> Current database is:
>>>>> plocal:/home/kyle/Downloads/orientdb-community-2.0.7/databases/ledge_test2
>>>>> orientdb {db=ledge_test2}> alter database custom
>>>>> useLightweightEdges=true
>>>>> Database updated successfully
>>>>> orientdb {db=ledge_test2}> insert into V set myid = 1
>>>>> Inserted record 'V#9:0{myid:1} v1' in 0.007000 sec(s).
>>>>> orientdb {db=ledge_test2}> insert into V set myid = 2
>>>>> Inserted record 'V#9:1{myid:2} v1' in 0.001000 sec(s).
>>>>> orientdb {db=ledge_test2}> create edge knows from #9:0 to #9:1
>>>>> Error:
>>>>> com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error
>>>>> on
>>>>> parsing command at position #0: Class 'KNOWS' was not found
>>>>> orientdb {db=ledge_test2}> disconnect
>>>>> Disconnecting from the database [ledge_test2]...OK
>>>>> orientdb> exit
>>>>
>>>>
>>>> now go to gremlin console!
>>>>
>>>> gremlin> g = new OrientGraph("remote:localhost/ledge_test2")
>>>>> Apr 16, 2015 12:32:55 PM com.orientechnologies.common.log.OLogManager
>>>>> log
>>>>> INFO: OrientDB auto-config DISKCACHE=13,498MB (heap=455MB os=16,002MB
>>>>> disk=30,513MB)
>>>>> ==>orientgraph[remote:localhost/ledge_test2]
>>>>> gremlin> g.isUseLightweightEdges()
>>>>> ==>true
>>>>> gremlin> v1=g.V[0].next();v2=g.V[1].next();
>>>>> ==>v[#9:1]
>>>>> gremlin> e=v1.addEdge("knows",v2)
>>>>> ==>e[#9:0->#9:1][#9:0-knows->#9:1]
>>>>> gremlin> e
>>>>> ==>e[#9:0->#9:1][#9:0-knows->#9:1]
>>>>> gremlin> e.isLightweight()
>>>>> ==>true
>>>>
>>>>
>>>>
>>>> there are closed issues on github so I figured I'd ask here first in
>>>> case I'm doing something wrong.
>>>> https://github.com/orientechnologies/orientdb/issues/3271
>>>>
>>>>
--
---
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.