private void processAndRegisterTempTable()

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
        }
    }