public String getAlias() { return tableSource.getAlias(); }
@Override public String getTableAlias() { return ast.getTableSource().getAlias(); }
public String computeAlias() { String alias = this.getAlias(); if (alias == null) { if (expr instanceof SQLName) { alias =((SQLName) expr).getSimpleName(); } } return SQLUtils.normalize(alias); }
/** * Parse the from clause * zhongshu-comment 只解析了一般查询和join查询,没有解析子查询 * @param from the from clause. * @return list of From objects represents all the sources. */ private List<From> findFrom(SQLTableSource from) { //zhongshu-comment class1.isAssignableFrom(class2) class2是不是class1的子类或者子接口 //改成用instanceof 应该也行吧:from instanceof SQLExprTableSource boolean isSqlExprTable = from.getClass().isAssignableFrom(SQLExprTableSource.class); if (isSqlExprTable) { SQLExprTableSource fromExpr = (SQLExprTableSource) from; String[] split = fromExpr.getExpr().toString().split(","); ArrayList<From> fromList = new ArrayList<>(); for (String source : split) { fromList.add(new From(source.trim(), fromExpr.getAlias())); } return fromList; } SQLJoinTableSource joinTableSource = ((SQLJoinTableSource) from); List<From> fromList = new ArrayList<>(); fromList.addAll(findFrom(joinTableSource.getLeft())); fromList.addAll(findFrom(joinTableSource.getRight())); return fromList; }
public boolean visit(SQLExprTableSource x) { printTableSourceExpr(x.getExpr()); String alias = x.getAlias(); if (alias != null) { print(' '); print0(alias); } if (x.getHints() != null && x.getHints().size() > 0) { print0(ucase ? " WITH (" : " with ("); printAndAccept(x.getHints(), ", "); print(')'); } return false; }
public boolean visit(SQLExprTableSource x) { printTableSourceExpr(x.getExpr()); String alias = x.getAlias(); if (alias != null) { print(' '); print0(alias); } if (isPrettyFormat() && x.hasAfterComment()) { print(' '); printlnComment(x.getAfterCommentsDirect()); } return false; }
public boolean visit(SQLExprTableSource x) { printTableSourceExpr(x.getExpr()); String alias = x.getAlias(); if (alias != null) { print(' '); print0(alias); } for (int i = 0; i < x.getHintsSize(); ++i) { print(' '); x.getHints().get(i).accept(this); } if (x.getPartitionSize() > 0) { print0(ucase ? " PARTITION (" : " partition ("); printlnAndAccept(x.getPartitions(), ", "); print(')'); } return false; }
public String getAlias() { return tableSource.getAlias(); }
alias = tableSource.getAlias();
public String computeAlias() { String alias = this.getAlias(); if (alias == null) { if (expr instanceof SQLName) { alias =((SQLName) expr).getSimpleName(); } } return SQLUtils.normalize(alias); }
@Override public boolean visit(SQLExprTableSource x) { SQLName name = (SQLName) x.getExpr(); String simpleName = name.getSimpleName(); boolean hasQuote = simpleName.charAt(0) == '`'; String tableName = hasQuote ? parseTableName(simpleName) : simpleName; String finalTable = tableMapping.get(tableName); if (finalTable != null) { if (hasQuote) { print0("`" + finalTable + "`"); } else { print0(finalTable); } } else { x.getExpr().accept(this); } if (x.getAlias() != null) { print(' '); print0(x.getAlias()); } for (int i = 0; i < x.getHintsSize(); ++i) { print(' '); x.getHints().get(i).accept(this); } return false; }
public boolean visit(SQLExprTableSource x) { printTableSourceExpr(x.getExpr()); String alias = x.getAlias(); if (alias != null) { print(' '); print0(alias); } if (x.getHints() != null && x.getHints().size() > 0) { print0(ucase ? " WITH (" : " with ("); printAndAccept(x.getHints(), ", "); print(')'); } return false; }
public boolean visit(SQLExprTableSource x) { printTableSourceExpr(x.getExpr()); String alias = x.getAlias(); if (alias != null) { print(' '); print0(alias); } if (isPrettyFormat() && x.hasAfterComment()) { print(' '); printlnComment(x.getAfterCommentsDirect()); } return false; }
public boolean visit(SQLExprTableSource x) { printTableSourceExpr(x.getExpr()); String alias = x.getAlias(); if (alias != null) { print(' '); print0(alias); } for (int i = 0; i < x.getHintsSize(); ++i) { print(' '); x.getHints().get(i).accept(this); } if (x.getPartitionSize() > 0) { print0(ucase ? " PARTITION (" : " partition ("); printlnAndAccept(x.getPartitions(), ", "); print(')'); } return false; }
alias = tableSource.getAlias();
@Override public String getTableAlias() { return ast.getTableSource().getAlias(); }
public static SchemaInfo getSchemaInfo(String user, String schema, SQLExprTableSource tableSource) throws SQLException { return getSchemaInfo(user, schema, tableSource.getExpr(), tableSource.getAlias()); }
@Override public boolean visit(SQLExprTableSource x) { if (this.isSimpleExprTableSource(x)) { String ident = x.getExpr().toString(); currentTable = ident; selectTableList.add(ident); String alias = x.getAlias(); if (alias != null && !aliasMap.containsKey(alias)) { putAliasToMap(alias, ident); } if (!aliasMap.containsKey(ident)) { putAliasToMap(ident, ident); } } else { this.accept(x.getExpr()); } return false; }
private void doFormat(SQLExprTableSource sqlTableSource, List<SQLSelectItem> selectList, List<SQLSelectItem> addList) { EntityContainer.EntityClassInfo entityClassInfo = EntityContainer.getEntityClassByClazz(((SQLIdentifierExpr) sqlTableSource.getExpr()).getName()); if (entityClassInfo == null) { return; } Iterator<SQLSelectItem> iterator = selectList.iterator(); while (iterator.hasNext()) { SQLSelectItem sqlSelectItem = iterator.next(); if (sqlSelectItem.getExpr() instanceof SQLPropertyExpr) { SQLPropertyExpr expr = (SQLPropertyExpr) sqlSelectItem.getExpr(); SQLIdentifierExpr exprOwner = (SQLIdentifierExpr) expr.getOwner(); if ((exprOwner.getName() + POINT + expr.getName()).equals(sqlTableSource.getAlias() + POINT + STAR)) { iterator.remove(); entityClassInfo.columns.forEach((filedName, column) -> addWhenAlias(addList, exprOwner, column)); } } else if (sqlSelectItem.getExpr() instanceof SQLObjectImpl) { iterator.remove(); entityClassInfo.columns.forEach((filedName, column) -> addList.add(new SQLSelectItem(new SQLIdentifierExpr(leftDecorated + column.columnName + rightDecorated)))); } } }
public boolean visit(SQLExprTableSource x) { processTableName(x.getExpr()); if (x.getAlias() != null) { print(' '); print0(x.getAlias()); } for (int i = 0; i < x.getHintsSize(); ++i) { print(' '); x.getHints().get(i).accept(this); } if (x.getPartitionSize() > 0) { print0(ucase ? " PARTITION (" : " partition ("); printlnAndAccept(x.getPartitions(), ", "); print(')'); } return false; } }