public void assignSelectValue(final HConnectionImpl conn,
final Object obj,
final int maxVersions,
final Result result) throws HBqlException {
final TableMapping tableMapping = this.getTableMapping();
// Evaluate each of the families (select * will yield all families)
for (int i = 0; i < this.getFamilyNameBytesList().size(); i++) {
final String familyName = this.getFamilyNameList().get(i);
final byte[] familyNameBytes = this.getFamilyNameBytesList().get(i);
final NavigableMap<byte[], byte[]> columnMap = result.getFamilyMap(familyNameBytes);
for (final byte[] columnBytes : columnMap.keySet()) {
final byte[] valueBytes = columnMap.get(columnBytes);
final String columnName = IO.getSerialization().getStringFromBytes(columnBytes);
if (obj instanceof HRecordImpl) {
final HRecordImpl record = (HRecordImpl)obj;
record.addNameToPositionList(familyName + ":" + columnName);
}
final ColumnAttrib attrib = this.getResultAccessor().getColumnAttribByQualifiedName(familyName,
columnName);
if (attrib == null) {
final ColumnAttrib unMappedAttrib = tableMapping.getUnMappedAttrib(familyName);
if (unMappedAttrib != null)
unMappedAttrib.setUnMappedCurrentValue(obj, columnName, valueBytes);
}
else {
attrib.setCurrentValue(obj, 0, valueBytes);
}
}
// Bail if no versions were requested
if (maxVersions <= 1)
continue;
final NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> familyMap = result.getMap();
final NavigableMap<byte[], NavigableMap<Long, byte[]>> versionColumnMap = familyMap.get(familyNameBytes);
if (versionColumnMap == null)
continue;
for (final byte[] columnBytes : versionColumnMap.keySet()) {
final NavigableMap<Long, byte[]> timeStampMap = versionColumnMap.get(columnBytes);
final String columnName = IO.getSerialization().getStringFromBytes(columnBytes);
final ColumnAttrib attrib = this.getResultAccessor().getVersionAttrib(familyName, columnName);
if (attrib == null) {
final ColumnAttrib unMappedAttrib = tableMapping.getUnMappedAttrib(familyName);
if (unMappedAttrib != null)
unMappedAttrib.setUnMappedVersionMap(obj, columnName, timeStampMap);
}
else {
attrib.setVersionMap(obj, timeStampMap);