Cool ! I will fix it, at Monday.
On Fri, Jan 10, 2014 at 5:14 PM, Markus Menner <[email protected] > wrote: > I just managed to make the problem reproducible: > > package com.axxelia; > > import com.orientechnologies.orient.core.config.OGlobalConfiguration; > import com.orientechnologies.orient.object.db.OObjectDatabaseTx; > > public class OrientDBTest { > public static void main(String [] args) { > OGlobalConfiguration.CACHE_LEVEL1_ENABLED.setValue(false); > > OObjectDatabaseTx db = new OObjectDatabaseTx("memory:test"); > > if(!db.exists()) { > db.create(); > System.out.println("db.create()"); > } > > db.getEntityManager().registerEntityClasses("com.axxelia.domain"); > > try { > TestCase4.testCase(db); > } > finally { > db.close(); > } > } > } > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > package com.axxelia; > > import com.axxelia.domain.*; > import com.orientechnologies.orient.core.record.impl.ODocument; > import com.orientechnologies.orient.core.sql.OCommandSQL; > import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery; > import com.orientechnologies.orient.object.db.OObjectDatabaseTx; > > import java.util.List; > > public class TestCase4 { > public static void testCase(OObjectDatabaseTx db) { > ItemWorkStep idt1 = new ItemWorkStep(); > idt1.setStatus(Status.NONE); > db.save(idt1); > > ItemWorkStep idt2 = new ItemWorkStep(); > idt2.setStatus(Status.STARTED); > db.save(idt2); > > WorkOrderWorkStep idt3 = new WorkOrderWorkStep(); > idt3.setStatus(Status.NONE); > db.save(idt3); > > WorkOrderWorkStep idt4 = new WorkOrderWorkStep(); > idt4.setStatus(Status.STARTED); > db.save(idt4); > > List<WorkOrderWorkStep> subs; > List<ODocument> counts; > > counts = db.query(new OSQLSynchQuery("SELECT count(*) FROM ItemWorkStep > WHERE status IN ['NONE', 'STARTED']")); > assert ((Long) (counts.iterator().next().field("count"))) == 4; > > counts = db.query(new OSQLSynchQuery("SELECT count(*) FROM > WorkOrderWorkStep WHERE status IN ['NONE', 'STARTED']")); > assert ((Long) (counts.iterator().next().field("count"))) == 2; > > db.command(new OCommandSQL("CREATE PROPERTY AdaptiveTask.status > STRING")).execute(); > > counts = db.query(new OSQLSynchQuery("SELECT count(*) FROM > WorkOrderWorkStep WHERE status IN ['NONE', 'STARTED']")); > assert ((Long) (counts.iterator().next().field("count"))) == 2; > > /** > * create the index > */ > db.command(new OCommandSQL("CREATE INDEX AdaptiveTask.status ON > AdaptiveTask (status) NOTUNIQUE")).execute(); > > /** > * huh!! those two tests fail. if you remove the index above, they will > succeed!!! > */ > counts = db.query(new OSQLSynchQuery("SELECT count(*) FROM > WorkOrderWorkStep WHERE status='NONE'")); > assert ((Long) (counts.iterator().next().field("count"))) == 1; > > counts = db.query(new OSQLSynchQuery("SELECT count(*) FROM > WorkOrderWorkStep WHERE status in ['NONE']")); > assert ((Long) (counts.iterator().next().field("count"))) == 1; > } > } > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > package com.axxelia.domain; > > public class AdaptiveTask { > private Status status; > > public Status getStatus() { > return status; > } > > public void setStatus(Status status) { > this.status = status; > } > } > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > package com.axxelia.domain; > > public class ItemWorkStep extends AdaptiveTask {} > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > package com.axxelia.domain; > > public class WorkOrderWorkStep extends ItemWorkStep {} > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > > -- > > --- > 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/groups/opt_out. > -- Best regards, Andrey Lomakin. Orient Technologies the Company behind OrientDB -- --- 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/groups/opt_out.
