@Test(expected = TeiidRuntimeException.class)
 public void testKeepAliases1() throws Exception {
   String sql =
       "select g_1.intkey as a, g_1.stringkey as b from BQT1.SmallA g_1, BQT1.SmallB ORDER BY a, b"; //$NON-NLS-1$
   String expected =
       "SELECT g.IntKey AS c_0, g.StringKey AS c_1 FROM BQT1.SmallA AS g ORDER BY c_0, c_1"; //$NON-NLS-1$
   AliasGenerator av = new AliasGenerator(true, false);
   Map<String, String> aliasMap = new HashMap<String, String>();
   aliasMap.put("g_1", "g_1");
   av.setAliasMapping(aliasMap);
   helpTest(sql, expected, RealMetadataFactory.exampleBQTCached(), av);
 }
 private Command aliasCommand(AccessNode aNode, Command command, Object modelID)
     throws TeiidComponentException, QueryPlannerException {
   try {
     command = (Command) command.clone();
     boolean aliasGroups =
         modelID != null
             && (CapabilitiesUtil.supportsGroupAliases(modelID, metadata, capFinder)
                 || CapabilitiesUtil.supports(
                     Capability.QUERY_FROM_INLINE_VIEWS, modelID, metadata, capFinder));
     boolean aliasColumns =
         modelID != null
             && (CapabilitiesUtil.supports(
                     Capability.QUERY_SELECT_EXPRESSION, modelID, metadata, capFinder)
                 || CapabilitiesUtil.supports(
                     Capability.QUERY_FROM_INLINE_VIEWS, modelID, metadata, capFinder));
     AliasGenerator visitor = new AliasGenerator(aliasGroups, !aliasColumns);
     SourceHint sh = command.getSourceHint();
     if (sh != null && aliasGroups) {
       VDBMetaData vdb = context.getDQPWorkContext().getVDB();
       ModelMetaData model = vdb.getModel(aNode.getModelName());
       List<String> sourceNames = model.getSourceNames();
       SpecificHint sp = null;
       if (sourceNames.size() == 1) {
         sp = sh.getSpecificHint(sourceNames.get(0));
       }
       if (sh.isUseAliases() || (sp != null && sp.isUseAliases())) {
         visitor.setAliasMapping(context.getAliasMapping());
       }
     }
     List<Reference> references = ReferenceCollectorVisitor.getReferences(command);
     if (!references.isEmpty()) {
       Set<String> correleatedGroups = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
       for (Reference ref : references) {
         if (ref.isCorrelated() && ref.getExpression().getGroupSymbol() != null) {
           correleatedGroups.add(ref.getExpression().getGroupSymbol().getName());
         }
       }
       visitor.setCorrelationGroups(correleatedGroups);
     }
     command.acceptVisitor(visitor);
   } catch (QueryMetadataException err) {
     throw new TeiidComponentException(QueryPlugin.Event.TEIID30249, err);
   } catch (TeiidRuntimeException e) {
     if (e.getCause() instanceof QueryPlannerException) {
       throw (QueryPlannerException) e.getCause();
     }
     throw e;
   }
   return command;
 }