@Override
public void runInternal() throws HiveSQLException {
setState(OperationState.RUNNING);
try {
IMetaStoreClient metastoreClient = getParentSession().getMetaStoreClient();
ForeignKeysRequest fkReq = new ForeignKeysRequest(parentSchemaName, parentTableName, foreignSchemaName, foreignTableName);
List<SQLForeignKey> fks = metastoreClient.getForeignKeys(fkReq);
if (fks == null) {
return;
}
for (SQLForeignKey fk : fks) {
rowSet.addRow(new Object[] {parentCatalogName,
fk.getPktable_db(), fk.getPktable_name(), fk.getPkcolumn_name(),
foreignCatalogName,
fk.getFktable_db(), fk.getFktable_name(), fk.getFkcolumn_name(),
fk.getKey_seq(), fk.getUpdate_rule(), fk.getDelete_rule(), fk.getFk_name(),
fk.getPk_name(), 0});
}
setState(OperationState.FINISHED);
} catch (Exception e) {
setState(OperationState.ERROR);
throw new HiveSQLException(e);
}
}