in src/main/java/com/uber/uberscriptquery/execution/QueryEngine.java [219:241]
private void processAndRegisterTempTable(Dataset<Row> df, RootStatement rootStatement, String tableAlias, String logText, boolean debug) {
boolean dfPersisted = false;
long tableReferenceCount = rootStatement.getTableReferenceCount().getCount(tableAlias);
if (tableReferenceCount > 1) {
df = df.persist(StorageLevel.MEMORY_AND_DISK_SER());
dfPersisted = true;
logger.info(String.format("Persist table %s because it is referenced %s times", tableAlias, tableReferenceCount));
} else {
logger.info(String.format("Do not persist table %s because it is referenced %s times", tableAlias, tableReferenceCount));
}
df.createOrReplaceTempView(tableAlias);
logger.info(String.format("Registered temp view %s for query: %s", tableAlias, logText));
if (debug) {
if (!dfPersisted) {
df = df.persist(StorageLevel.MEMORY_AND_DISK_SER());
}
// TODO save debug info/data
}
}