public PhoenixResultSet executeQuery() throws SQLException {
StatementPlan plan = getStatement().optimizePlan();
List<String> planSteps = plan.getExplainPlan().getPlanSteps();
List<Tuple> tuples = Lists.newArrayListWithExpectedSize(planSteps.size());
for (String planStep : planSteps) {
Tuple tuple = new SingleKeyValueTuple(KeyValueUtil.newKeyValue(PDataType.VARCHAR.toBytes(planStep), EXPLAIN_PLAN_FAMILY, EXPLAIN_PLAN_COLUMN, MetaDataProtocol.MIN_TABLE_TIMESTAMP, ByteUtil.EMPTY_BYTE_ARRAY));
tuples.add(tuple);
}
Scanner scanner = new WrappedScanner(new MaterializedResultIterator(tuples),EXPLAIN_PLAN_ROW_PROJECTOR);
PhoenixResultSet rs = new PhoenixResultSet(scanner, new PhoenixStatement(connection));
lastResultSet = rs;