@Override public long hashCode64() { if (hashCode64 == 0) { if (server == null) { hashCode64 = new SQLPropertyExpr( new SQLPropertyExpr(server, database) , schema) .hashCode64(); } else { hashCode64 = new SQLPropertyExpr(database, schema) .hashCode64(); } } return hashCode64; }
public SQLPropertyExpr clone() { SQLExpr owner_x = null; if (owner != null) { owner_x = owner.clone(); } SQLPropertyExpr x = new SQLPropertyExpr(owner_x, name, nameHashCod64); x.hashCode64 = hashCode64; x.resolvedColumn = resolvedColumn; x.resolvedOwnerObject = resolvedOwnerObject; return x; }
public boolean containsColumn(String tableName, String columnName) { long hashCode; int p = tableName.indexOf('.'); if (p != -1) { SQLExpr owner = SQLUtils.toSQLExpr(tableName, dbType); hashCode = new SQLPropertyExpr(owner, columnName).hashCode64(); } else { hashCode = FnvHash.hashCode64(tableName, columnName); } return columns.containsKey(hashCode); }
public SQLPropertyExpr simplify() { String normalizedName = SQLUtils.normalize(name); SQLExpr normalizedOwner = this.owner; if (normalizedOwner instanceof SQLIdentifierExpr) { normalizedOwner = ((SQLIdentifierExpr) normalizedOwner).simplify(); } if (normalizedName != name || normalizedOwner != owner) { return new SQLPropertyExpr(normalizedOwner, normalizedName, hashCode64); } return this; }
public Column(String table, String name){ this.table = table; this.name = name; int p = table.indexOf('.'); if (p != -1) { String dbType = null; if (table.indexOf('`') != -1) { dbType = JdbcConstants.MYSQL; } else if (table.indexOf('[') != -1) { dbType = JdbcConstants.SQL_SERVER; } else if (table.indexOf('@') != -1) { dbType = JdbcConstants.ORACLE; } SQLExpr owner = SQLUtils.toSQLExpr(table, dbType); hashCode64 = new SQLPropertyExpr(owner, name).hashCode64(); } else { hashCode64 = FnvHash.hashCode64(table, name); } }
public SQLName nameRest(SQLName name) { if (lexer.token == Token.DOT) { lexer.nextToken(); if (lexer.token == Token.KEY) { name = new SQLPropertyExpr(name, "KEY"); lexer.nextToken(); return name; } if (lexer.token != Token.LITERAL_ALIAS && lexer.token != Token.IDENTIFIER && (!lexer.getKeywods().containsValue(lexer.token))) { throw new ParserException("error, " + lexer.info()); } if (lexer.token == Token.LITERAL_ALIAS) { name = new SQLPropertyExpr(name, lexer.stringVal()); } else { name = new SQLPropertyExpr(name, lexer.stringVal()); } lexer.nextToken(); name = nameRest(name); } return name; }
@Deprecated private static SQLBinaryOpExpr createTenantCondition(WallVisitor visitor, String alias, StatementType statementType, String tableName) { SQLExpr left, right; if (alias != null) { left = new SQLPropertyExpr(new SQLIdentifierExpr(alias), visitor.getConfig().getTenantColumn()); } else { left = new SQLIdentifierExpr(visitor.getConfig().getTenantColumn()); } right = generateTenantValue(visitor, alias, statementType, tableName); SQLBinaryOpExpr tenantCondition = new SQLBinaryOpExpr(left, SQLBinaryOperator.Equality, right); return tenantCondition; }
public void setSchema(String schema) { if (expr instanceof SQLIdentifierExpr) { if (schema == null) { return; } String ident = ((SQLIdentifierExpr) expr).getName(); this.setExpr(new SQLPropertyExpr(schema, ident)); } else if (expr instanceof SQLPropertyExpr) { SQLPropertyExpr propertyExpr = (SQLPropertyExpr) expr; if (schema == null) { setExpr(new SQLIdentifierExpr(propertyExpr.getName())); } else { propertyExpr.setOwner(schema); } } }
public boolean visit(SQLJoinTableSource x) { SQLTableSource left = x.getLeft(), right = x.getRight(); left.accept(this); right.accept(this); SQLExpr condition = x.getCondition(); if (condition != null) { condition.accept(this); } if (x.getUsing().size() > 0 && left instanceof SQLExprTableSource && right instanceof SQLExprTableSource) { SQLExpr leftExpr = ((SQLExprTableSource) left).getExpr(); SQLExpr rightExpr = ((SQLExprTableSource) right).getExpr(); for (SQLExpr expr : x.getUsing()) { if (expr instanceof SQLIdentifierExpr) { String name = ((SQLIdentifierExpr) expr).getName(); SQLPropertyExpr leftPropExpr = new SQLPropertyExpr(leftExpr, name); SQLPropertyExpr rightPropExpr = new SQLPropertyExpr(rightExpr, name); leftPropExpr.setResolvedTableSource(left); rightPropExpr.setResolvedTableSource(right); SQLBinaryOpExpr usingCondition = new SQLBinaryOpExpr(leftPropExpr, SQLBinaryOperator.Equality, rightPropExpr); usingCondition.accept(this); } } } return false; }
protected SQLExpr dotRest(SQLExpr expr) { if (lexer.token == Token.STAR) { lexer.nextToken(); expr = new SQLPropertyExpr(expr, "*"); } else { String name; expr = methodRest(expr, name, aggregate); } else { expr = new SQLPropertyExpr(expr, name, hash_lower);
public SQLName nameRest(SQLName expr) { if (lexer.token() == Token.DOTDOT) { lexer.nextToken(); boolean backet = false; if (lexer.token() == Token.LBRACKET) { lexer.nextToken(); backet = true; } String text = lexer.stringVal(); lexer.nextToken(); if (backet) { accept(Token.RBRACKET); } SQLServerObjectReferenceExpr owner = new SQLServerObjectReferenceExpr(expr); expr = new SQLPropertyExpr(owner, text); } return super.nameRest(expr); }
SQLPropertyExpr name = new SQLPropertyExpr(alias, column.getName().getSimpleName()); name.setResolvedColumn(column); columns.add(new SQLSelectItem(name));
public SQLExpr expr() { if (lexer.token == Token.STAR) { lexer.nextToken(); SQLExpr expr = new SQLAllColumnExpr(); if (lexer.token == Token.DOT) { lexer.nextToken(); accept(Token.STAR); return new SQLPropertyExpr(expr, "*"); } return expr; } SQLExpr expr = primary(); Token token = lexer.token; if (token == Token.COMMA) { return expr; } else if (token == Token.EQ) { expr = relationalRest(expr); expr = andRest(expr); expr = xorRest(expr); expr = orRest(expr); return expr; } else { return exprRest(expr); } }
public SQLExpr primaryRest(SQLExpr expr) { if (lexer.token() == Token.COLONCOLON) { lexer.nextToken(); String propertyName = lexer.stringVal(); lexer.nextToken(); expr = new SQLPropertyExpr(expr, propertyName); } else if (lexer.token() == Token.LBRACKET) { SQLArrayExpr array = new SQLArrayExpr(); array.setExpr(expr); lexer.nextToken(); this.exprList(array.getValues(), array); accept(Token.RBRACKET); expr = array; } return super.primaryRest(expr); } }
String alias = from.getAlias(); if (alias != null) { SQLUtils.replaceInParent(x, new SQLPropertyExpr(alias, name));
item = new SQLPropertyExpr(new SQLIdentifierExpr(alias), tenantColumn); } else { item = new SQLIdentifierExpr(tenantColumn);
protected SQLExpr dotRest(SQLExpr expr) { if (lexer.token() == Token.LITERAL_ALIAS) { String name = lexer.stringVal(); lexer.nextToken(); expr = new SQLPropertyExpr(expr, name); if (lexer.token() == Token.DOT) { lexer.nextToken(); expr = dotRest(expr); } return expr; } if (lexer.identifierEquals(FnvHash.Constants.NEXTVAL)) { if (expr instanceof SQLIdentifierExpr) { SQLIdentifierExpr identExpr = (SQLIdentifierExpr) expr; SQLSequenceExpr seqExpr = new SQLSequenceExpr(identExpr, SQLSequenceExpr.Function.NextVal); lexer.nextToken(); return seqExpr; } } else if (lexer.identifierEquals(FnvHash.Constants.CURRVAL)) { if (expr instanceof SQLIdentifierExpr) { SQLIdentifierExpr identExpr = (SQLIdentifierExpr) expr; SQLSequenceExpr seqExpr = new SQLSequenceExpr(identExpr, SQLSequenceExpr.Function.CurrVal); lexer.nextToken(); return seqExpr; } } return super.dotRest(expr); }
item = new SQLPropertyExpr(new SQLIdentifierExpr(alias), tenantColumn); } else { item = new SQLIdentifierExpr(tenantColumn);
countQueryBlock.getSelectList().add(new SQLSelectItem(new SQLPropertyExpr(new SQLIdentifierExpr("XX"), "*"))); SQLAggregateExpr aggregateExpr = new SQLAggregateExpr("ROW_NUMBER"); SQLOrderBy orderBy = select.getOrderBy();
String propertyName = lexer.stringVal(); lexer.nextTokenEq(); expr = new SQLPropertyExpr(expr, propertyName);