// insert two records
insertRecordsNatively();
// query using regular configuration
final DataSet dataSet1 = _dataContext.query().from(EXAMPLE_TABLE_NAME).selectAll().execute();
try {
assertTrue(dataSet1.next());
assertEquals(
"Row[values=[junit1, {[104, 101, 121]=[121, 111],[104, 105]=[116, 104, 101, 114, 101]}, {[104, 101, 108, 108, 111]=[119, 111, 114, 108, 100]}]]",
dataSet1.getRow().toString());
assertTrue(dataSet1.next());
assertEquals("Row[values=[junit2, {[98, 97, 104]=[1, 2, 3],[104, 105]=[121, 111, 117]}, {}]]", dataSet1
.getRow().toString());
assertFalse(dataSet1.next());
} finally {
dataSet1.close();
}
// query using custom table definitions
final String[] columnNames = new String[] { "foo", "bar:hi", "bar:hey" };
final ColumnType[] columnTypes = new ColumnType[] { ColumnType.MAP, ColumnType.VARCHAR, ColumnType.VARCHAR };
final SimpleTableDef[] tableDefinitions = new SimpleTableDef[] { new SimpleTableDef(EXAMPLE_TABLE_NAME,
columnNames, columnTypes) };
_dataContext = new HBaseDataContext(new HBaseConfiguration("SCH", getZookeeperHostname(), getZookeeperPort(),
tableDefinitions, ColumnType.VARCHAR));
final DataSet dataSet2 = _dataContext.query().from(EXAMPLE_TABLE_NAME).select("foo", "bar:hi", "bar:hey")
.execute();
try {
assertTrue(dataSet2.next());
assertEquals("Row[values=[{[104, 101, 108, 108, 111]=[119, 111, 114, 108, 100]}, there, yo]]", dataSet2
.getRow().toString());
assertTrue(dataSet2.next());
assertEquals("Row[values=[{}, you, null]]", dataSet2.getRow().toString());
assertFalse(dataSet2.next());
} finally {
dataSet2.close();
}
// query count
final DataSet dataSet3 = _dataContext.query().from(EXAMPLE_TABLE_NAME).selectCount().execute();
try {
assertTrue(dataSet3.next());
assertEquals("Row[values=[2]]", dataSet3.getRow().toString());
assertFalse(dataSet3.next());
} finally {
dataSet3.close();
}
// query only id
final DataSet dataSet4 = _dataContext.query().from(EXAMPLE_TABLE_NAME).select(HBaseDataContext.FIELD_ID)
.execute();
try {
assertTrue(dataSet4.next());
assertEquals("Row[values=[junit1]]", dataSet4.getRow().toString());
assertTrue(dataSet4.next());
assertEquals("Row[values=[junit2]]", dataSet4.getRow().toString());
assertFalse(dataSet4.next());
} finally {
dataSet4.close();
}
// primary key lookup query - using GET
final DataSet dataSet5 = _dataContext.query().from(EXAMPLE_TABLE_NAME).select(HBaseDataContext.FIELD_ID)
.where(HBaseDataContext.FIELD_ID).eq("junit1").execute();
try {
assertTrue(dataSet5.next());
assertEquals("Row[values=[junit1]]", dataSet5.getRow().toString());
assertFalse(dataSet5.next());
} finally {
dataSet5.close();
}
}