// do nothing
}
assertFalse(connection.isReadOnly());
JdbcDataContext dc = new JdbcDataContext(connection);
final Schema schema = dc.getSchemaByName("Person");
assertEquals("Person", schema.getName());
dc.executeUpdate(new UpdateScript() {
@Override
public void run(UpdateCallback cb) {
Table table = cb.createTable(schema, "test_table").withColumn("id").asPrimaryKey()
.ofType(ColumnType.INTEGER).withColumn("birthdate").ofType(ColumnType.DATE).execute();
cb.insertInto(table).value("id", "1").execute();
cb.insertInto(table).value("id", 2).value("birthdate", "2011-12-21").execute();
}
});
Table table = schema.getTableByName("test_table");
assertTrue(table.getColumnByName("id").isPrimaryKey());
assertFalse(table.getColumnByName("birthdate").isPrimaryKey());
// the jdbc driver represents the date as a VARCHAR
assertEquals("[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=int,columnSize=10], "
+ "Column[name=birthdate,columnNumber=1,type=VARCHAR,nullable=true,nativeType=date,columnSize=10]]",
Arrays.toString(table.getColumns()));
DataSet ds = dc.query().from(table).select("id").and("birthdate").execute();
assertTrue(ds.next());
assertEquals("Row[values=[1, null]]", ds.getRow().toString());
assertEquals("java.lang.Integer", ds.getRow().getValue(0).getClass().getName());
assertTrue(ds.next());
assertEquals("Row[values=[2, 2011-12-21]]", ds.getRow().toString());