Commit e86fc944 by Peter Gergo Barna Committed by Madhan Neethiraj

ATLAS-2530 trim query string before using it as name attribute for Hive process and column lineage

parent da8581e9
......@@ -512,7 +512,7 @@ public abstract class BaseHiveEvent {
String queryStr = hookContext.getQueryPlan().getQueryStr();
if (queryStr != null) {
queryStr = queryStr.toLowerCase();
queryStr = queryStr.toLowerCase().trim();
}
ret.setAttribute(ATTRIBUTE_QUALIFIED_NAME, getQualifiedName(inputs, outputs));
......
......@@ -93,4 +93,29 @@ public class HiveMetastoreBridgeIT extends HiveITBase {
assertEquals(outputs.size(), 1);
assertEquals(outputs.get(0).getGuid(), tableId);
}
@Test
public void testCreateTableHiveProcessNameAttribute() throws Exception {
//test if \n is trimmed from name attribute of the process entity
String tableName = tableName();
String tableName2 = tableName();
String name = String.format("create table %s (id string)", tableName2);
String query = String.format("create table %s (id string);%n%n%s;", tableName, name);
runCommand(query);
String dbId = assertDatabaseIsRegistered(DEFAULT_DB);
String tableId = assertTableIsRegistered(DEFAULT_DB, tableName);
String tableId2 = assertTableIsRegistered(DEFAULT_DB, tableName2);
//verify lineage is created
String processId = assertEntityIsRegistered(HiveDataTypes.HIVE_PROCESS.getName(), AtlasClient.REFERENCEABLE_ATTRIBUTE_NAME, getTableProcessQualifiedName(DEFAULT_DB, tableName), null);
AtlasEntity processsEntity = atlasClientV2.getEntityByGuid(processId).getEntity();
String processId2 = assertEntityIsRegistered(HiveDataTypes.HIVE_PROCESS.getName(), AtlasClient.REFERENCEABLE_ATTRIBUTE_NAME, getTableProcessQualifiedName(DEFAULT_DB, tableName2), null);
AtlasEntity processsEntity2 = atlasClientV2.getEntityByGuid(processId2).getEntity();
assertEquals(processsEntity2.getAttribute("name"), name);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment