Search in sources :

Example 66 with Column

use of org.molgenis.emx2.Column in project molgenis-emx2 by molgenis.

the class RefAndRefArrayTestExample method createRefAndRefArrayTestExample.

public static void createRefAndRefArrayTestExample(SchemaMetadata schema) {
    ColumnType[] columnTypes = new ColumnType[] { UUID, STRING, BOOL, INT, DECIMAL, TEXT, DATE, DATETIME };
    for (ColumnType columnType : columnTypes) {
        String aTableName = columnType.toString() + "_A";
        String fieldName = "AKeyOf" + columnType;
        schema.create(table(aTableName).add(column(fieldName).setType(columnType).setPkey()));
        String bTableName = columnType.toString() + "_B";
        String refFromBToA = "RefToAKeyOf" + columnType;
        String refArrayFromBToA = "RefArrayToAKeyOf" + columnType;
        schema.create(table(bTableName).add(column(refFromBToA).setType(REF).setRefTable(aTableName)).add(column(refArrayFromBToA).setType(REF_ARRAY).setRefTable(aTableName)));
    }
}
Also used : ColumnType(org.molgenis.emx2.ColumnType)

Example 67 with Column

use of org.molgenis.emx2.Column in project molgenis-emx2 by molgenis.

the class SimpleTypeTestExample method createSimpleTypeTest.

public static void createSimpleTypeTest(SchemaMetadata schema) {
    TableMetadata typeTestTable = table(TYPE_TEST).add(column("id").setPkey());
    ColumnType[] columnTypes = new ColumnType[] { UUID, STRING, BOOL, INT, LONG, DECIMAL, TEXT, DATE, DATETIME };
    for (ColumnType columnType : columnTypes) {
        typeTestTable.add(column("Test " + columnType.toString().toLowerCase()).setType(columnType).setRequired(true));
        typeTestTable.add(column("Test " + columnType.toString().toLowerCase() + " nillable").setType(columnType));
    }
    schema.create(typeTestTable);
}
Also used : TableMetadata(org.molgenis.emx2.TableMetadata) ColumnType(org.molgenis.emx2.ColumnType)

Example 68 with Column

use of org.molgenis.emx2.Column in project molgenis-emx2 by molgenis.

the class TestAddColumnUpdateSearchTrigger method testAddedColumnGetsSearchIndexed.

@Test
public void testAddedColumnGetsSearchIndexed() {
    assertEquals(1, table.query().search("aaa").retrieveRows().size());
    // add new col
    table.getMetadata().add(column("col3").setType(STRING));
    // add new row with data in new col
    table.insert(new Row().setString("col1", "key2").setString("col3", "bbb"));
    // search for data in new col, expect the new row to be found
    List<Row> searchResult = table.query().search("bbb").retrieveRows();
    assertEquals(1, searchResult.size());
    assertEquals("key2", searchResult.get(0).getString("col1"));
}
Also used : Row(org.molgenis.emx2.Row) Test(org.junit.Test)

Example 69 with Column

use of org.molgenis.emx2.Column in project molgenis-emx2 by molgenis.

the class TestAddColumnUpdateSearchTrigger method setUp.

@BeforeClass
public static void setUp() {
    db = TestDatabaseFactory.getTestDatabase();
    Schema schema = db.dropCreateSchema(TestAddColumnUpdateSearchTrigger.class.getSimpleName());
    table = schema.create(table("TestAddColUpdateSearchTrigger").add(column("col1").setPkey()).add(column("col2").setType(STRING)));
    table.insert(new Row().setString("col1", "key1").setString("col2", "aaa"));
}
Also used : Schema(org.molgenis.emx2.Schema) Row(org.molgenis.emx2.Row) BeforeClass(org.junit.BeforeClass)

Example 70 with Column

use of org.molgenis.emx2.Column in project molgenis-emx2 by molgenis.

the class TestCompositeForeignKeys method testCompositeRefArray.

@Test
public void testCompositeRefArray() {
    Schema schema = database.dropCreateSchema(TestCompositeForeignKeys.class.getSimpleName() + "RefArray");
    schema.create(table("Person", column("firstName").setPkey(), column("lastName").setPkey(), column("cousins", REF_ARRAY).setRefTable("Person")));
    Table p = schema.getTable("Person");
    p.insert(new Row().setString("firstName", "Kwik").setString("lastName", "Duck"));
    p.insert(new Row().setString("firstName", "Donald").setString("lastName", "Duck").setString("cousins.firstName", "Kwik").setString("cousins.lastName", "Duck"));
    try {
        p.delete(new Row().setString("firstName", "Kwik").setString("lastName", "Duck"));
        fail("should have failed on foreign key error");
    } catch (Exception e) {
        System.out.println("errored correctly: " + e);
    }
    schema.create(table("Student").setInherit("Person"));
    Table s = schema.getTable("Student");
    s.insert(new Row().setString("firstName", "Mickey").setString("lastName", "Mouse").setString("cousins.firstName", "Kwik").setString("cousins.lastName", "Duck"));
    String result = schema.query("Student").select(s("firstName"), s("lastName"), s("cousins", s("firstName"), s("lastName"))).retrieveJSON();
    System.out.println(result);
    // refback
    schema.getTable("Person").getMetadata().add(column("uncles").setType(REFBACK).setRefTable("Person").setRefBack("cousins"));
    s.insert(new Row().setString("firstName", // doesn't exist
    "Kwok").setString("lastName", "Duck").setString("uncles.firstName", "Donald").setString("uncles.lastName", "Duck"));
    assertTrue(List.of(s.query().select(s("firstName"), s("lastName"), s("uncles", s("firstName"), s("lastName")), s("cousins", s("firstName"), s("lastName"))).where(f("firstName", EQUALS, "Kwok")).retrieveRows().get(0).getStringArray("uncles-firstName")).contains("Donald"));
    assertTrue(List.of(p.query().select(s("firstName"), s("lastName"), s("cousins", s("firstName"), s("lastName")), s("uncles", s("firstName"), s("lastName"))).where(f("firstName", EQUALS, "Donald")).retrieveRows().get(// 
    1).getStringArray(// TODO should be array?
    "cousins-firstName")).contains("Kwok"));
    // check we can sort on ref_array
    p.query().select(s("firstName"), s("lastName"), s("cousins", s("firstName"), s("lastName")), s("uncles", s("firstName"), s("lastName"))).orderBy("cousins").retrieveJSON();
    // check we can sort on refback to a ref_array
    p.query().select(s("firstName"), s("lastName"), s("cousins", s("firstName"), s("lastName")), s("uncles", s("firstName"), s("lastName"))).orderBy("uncles").retrieveJSON();
}
Also used : Table(org.molgenis.emx2.Table) Schema(org.molgenis.emx2.Schema) Row(org.molgenis.emx2.Row) Test(org.junit.Test)

Aggregations

org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column)21 ArrayList (java.util.ArrayList)20 Test (org.junit.Test)20 Row (org.molgenis.emx2.Row)15 Table (org.molgenis.emx2.Table)14 HashMap (java.util.HashMap)11 Column (org.molgenis.emx2.Column)11 List (java.util.List)10 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint)10 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint)10 ColumnType (org.molgenis.emx2.ColumnType)10 Column (com.google.bigtable.v2.Column)9 TableMetadata (org.molgenis.emx2.TableMetadata)9 Family (com.google.bigtable.v2.Family)8 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint)8 Schema (org.molgenis.emx2.Schema)8 MolgenisException (org.molgenis.emx2.MolgenisException)7 Collectors (java.util.stream.Collectors)6 Map (java.util.Map)5 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Table (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Table)5