EMPIREDB-411
Skip alias expression for calculations (DBCalcExpr)
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAliasExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAliasExpr.java
index 84cd804..89dbb18 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAliasExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAliasExpr.java
@@ -54,7 +54,7 @@
public DBAliasExpr(DBColumnExpr expr, String alias)
{
// Check whether already a AliasExpr
- if (expr.getClass().equals(getClass()))
+ if (expr instanceof DBAliasExpr)
this.expr = ((DBAliasExpr) expr).expr;
else
this.expr = expr;
@@ -196,7 +196,7 @@
{ // Append alias
if((context & CTX_ALIAS)!=0)
{ // Add the column expression
- expr.addSQL(sql, context);
+ expr.addSQL(sql, (context & ~CTX_ALIAS));
// Rename
DBMSHandler dbms = getDatabase().getDbms();
String asExpr = dbms.getSQLPhrase(DBSqlPhrase.SQL_RENAME_COLUMN);
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCalcExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCalcExpr.java
index e7311bc..625bca0 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCalcExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCalcExpr.java
@@ -214,6 +214,7 @@
@Override
public void addSQL(DBSQLBuilder sql, long context)
{
+ context &= ~CTX_ALIAS; // No column aliases
// Zusammenbauen
expr.addSQL(sql, context);
sql.append(op);
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBParenthesisExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBParenthesisExpr.java
index c506d18..796fb66 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBParenthesisExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBParenthesisExpr.java
@@ -47,8 +47,8 @@
*/
public DBParenthesisExpr(DBColumnExpr expr)
{
- // Check whether already a AliasExpr
- if (expr.getClass().equals(getClass()))
+ // Check whether already a DBParenthesisExpr
+ if (expr instanceof DBParenthesisExpr)
this.wrapped = ((DBParenthesisExpr) expr).wrapped;
else
this.wrapped = expr;