@Override public String toSql() { StringBuilder strBuilder = new StringBuilder(); if (withClause_ != null) strBuilder.append(withClause_.toSql() + " "); strBuilder.append("INSERT "); if (overwrite_) { strBuilder.append("OVERWRITE "); } else { strBuilder.append("INTO "); } strBuilder.append("TABLE " + originalTableName_); if (columnPermutation_ != null) { strBuilder.append("("); strBuilder.append(Joiner.on(", ").join(columnPermutation_)); strBuilder.append(")"); } if (partitionKeyValues_ != null) { List<String> values = Lists.newArrayList(); for (PartitionKeyValue pkv : partitionKeyValues_) { values.add( pkv.getColName() + (pkv.getValue() != null ? ("=" + pkv.getValue().toSql()) : "")); } strBuilder.append(" PARTITION (" + Joiner.on(", ").join(values) + ")"); } if (planHints_ != null) { strBuilder.append(" " + ToSqlUtils.getPlanHintsSql(planHints_)); } if (!needsGeneratedQueryStatement_) { strBuilder.append(" " + queryStmt_.toSql()); } return strBuilder.toString(); }
@Override protected String tableRefToSql() { // Enclose the alias in quotes if Hive cannot parse it without quotes. // This is needed for view compatibility between Impala and Hive. String aliasSql = null; if (alias_ != null) aliasSql = ToSqlUtils.getHiveIdentSql(alias_); return name_.toSql() + ((aliasSql != null) ? " " + aliasSql : ""); }