}
private ConnectorTableHandle getTableHandle(SchemaTableName tableName)
{
checkNotNull(tableName, "tableName is null");
Table table = dao.getTableInformation(connectorId, tableName.getSchemaName(), tableName.getTableName());
if (table == null) {
return null;
}
List<TableColumn> tableColumns = dao.getTableColumns(table.getTableId());
checkArgument(!tableColumns.isEmpty(), "Table %s does not have any columns", tableName);
RaptorColumnHandle countColumnHandle = null;
RaptorColumnHandle sampleWeightColumnHandle = null;
for (TableColumn tableColumn : tableColumns) {
if (SAMPLE_WEIGHT_COLUMN_NAME.equals(tableColumn.getColumnName())) {
sampleWeightColumnHandle = getRaptorColumnHandle(tableColumn);
}
if (countColumnHandle == null && tableColumn.getDataType().getJavaType().isPrimitive()) {
countColumnHandle = getRaptorColumnHandle(tableColumn);
}
}
if (countColumnHandle == null) {
countColumnHandle = getRaptorColumnHandle(tableColumns.get(0));
}
if (sampleWeightColumnHandle != null) {
sampleWeightColumnHandle = new RaptorColumnHandle(connectorId, SAMPLE_WEIGHT_COLUMN_NAME, sampleWeightColumnHandle.getColumnId(), BIGINT);
}
return new RaptorTableHandle(
connectorId,
tableName.getSchemaName(),
tableName.getTableName(),
table.getTableId(),
countColumnHandle,
sampleWeightColumnHandle);
}