You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2022/01/27 14:42:06 UTC

[empire-db] branch version3 updated: EMPIREDB-362 getSourceColumn cleanup

This is an automated email from the ASF dual-hosted git repository.

doebele pushed a commit to branch version3
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/version3 by this push:
     new d0af266  EMPIREDB-362 getSourceColumn cleanup
d0af266 is described below

commit d0af266387d4302fb774b3765cd8fc405c00154c
Author: Rainer Döbele <do...@apache.org>
AuthorDate: Thu Jan 27 15:42:03 2022 +0100

    EMPIREDB-362 getSourceColumn cleanup
---
 .../java/org/apache/empire/data/ColumnExpr.java    |  1 -
 .../main/java/org/apache/empire/db/DBColumn.java   | 13 +++++++--
 .../java/org/apache/empire/db/DBColumnExpr.java    | 20 +++++--------
 .../java/org/apache/empire/db/DBCommandExpr.java   |  6 ++--
 .../java/org/apache/empire/db/DBQueryColumn.java   | 16 +++++-----
 .../main/java/org/apache/empire/db/DBRecord.java   |  2 +-
 .../main/java/org/apache/empire/db/DBUtils.java    |  2 +-
 .../src/main/java/org/apache/empire/db/DBView.java | 34 +++++++++++-----------
 .../empire/db/expr/column/DBAbstractFuncExpr.java  |  9 ++++++
 .../apache/empire/db/expr/column/DBAliasExpr.java  |  9 ++++++
 .../apache/empire/db/expr/column/DBCalcExpr.java   |  9 ++++++
 .../apache/empire/db/expr/column/DBCaseExpr.java   |  6 ++++
 .../empire/db/expr/column/DBCaseWhenExpr.java      |  7 +++++
 .../apache/empire/db/expr/column/DBConcatExpr.java |  6 ++++
 .../apache/empire/db/expr/column/DBCountExpr.java  | 21 +++++++++++--
 .../apache/empire/db/expr/column/DBScalarExpr.java | 10 ++++++-
 .../apache/empire/db/expr/column/DBValueExpr.java  | 13 +++++++--
 .../empire/db/expr/compare/DBCompareColExpr.java   |  4 +--
 .../empire/db/expr/join/DBColumnJoinExpr.java      |  8 ++---
 .../apache/empire/db/expr/order/DBOrderByExpr.java |  2 +-
 .../empire/dbms/oracle/OracleRowNumExpr.java       | 11 ++++++-
 21 files changed, 149 insertions(+), 60 deletions(-)

diff --git a/empire-db/src/main/java/org/apache/empire/data/ColumnExpr.java b/empire-db/src/main/java/org/apache/empire/data/ColumnExpr.java
index 3fde592..7686852 100644
--- a/empire-db/src/main/java/org/apache/empire/data/ColumnExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/data/ColumnExpr.java
@@ -78,5 +78,4 @@ public interface ColumnExpr extends Unwrappable<ColumnExpr>
      * @return the column on which this expression is based or null if not applicable.
      */
     Column getSourceColumn();
-    ColumnExpr unwrap();
 }
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBColumn.java b/empire-db/src/main/java/org/apache/empire/db/DBColumn.java
index e2d38d8..53bb88d 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBColumn.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBColumn.java
@@ -256,9 +256,16 @@ public abstract class DBColumn extends DBColumnExpr
     }
 
     /**
-     * Returns this object.
-     *
-     * @return this object
+     * Returns itself as the source column.
+     */
+    @Override
+    public DBColumn getSourceColumn()
+    {
+        return this;
+    }
+
+    /**
+     * Returns itself as the update column.
      */
     @Override
     public DBColumn getUpdateColumn()
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBColumnExpr.java b/empire-db/src/main/java/org/apache/empire/db/DBColumnExpr.java
index 29c3ede..e6685b2 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBColumnExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBColumnExpr.java
@@ -28,7 +28,6 @@ import org.apache.empire.commons.ObjectUtils;
 import org.apache.empire.commons.OptionEntry;
 import org.apache.empire.commons.Options;
 import org.apache.empire.commons.StringUtils;
-import org.apache.empire.data.Column;
 import org.apache.empire.data.ColumnExpr;
 import org.apache.empire.data.DataType;
 import org.apache.empire.db.expr.column.DBAliasExpr;
@@ -93,6 +92,14 @@ public abstract class DBColumnExpr extends DBExpr
     public abstract boolean isAggregate();
 
     /**
+     * Returns the underlying physical column which was used for this expression
+     * For functions involving none or more than one physical column this function return the first one
+     * @return a column used for this expression
+     */
+    @Override
+    public abstract DBColumn getSourceColumn();
+    
+    /**
      * Returns the underlying physical column which may be used for updates.
      * For functions involving none or more than one physical column this function returns null.
      * @return the column to be used for updates if any.
@@ -232,17 +239,6 @@ public abstract class DBColumnExpr extends DBExpr
     { 
         setAttribute(DBCOLATTR_TYPE, controlType);
     }
-
-    /**
-     * Returns the source column.
-     * This is equivalent to the "Update Column"
-     * see getUpdateColumn()
-     */
-    @Override
-    public final Column getSourceColumn()
-    {
-        return getUpdateColumn();
-    }
     
     /**
      * Gets the Java bean property name for this column
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBCommandExpr.java b/empire-db/src/main/java/org/apache/empire/db/DBCommandExpr.java
index 9d04599..6772bcd 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBCommandExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBCommandExpr.java
@@ -60,7 +60,7 @@ public abstract class DBCommandExpr extends DBExpr
             this.cmd = cmd;
             // Add Expressions to list
             for (int i = 0; i < exprList.length; i++)
-                columns.add(exprList[i].getUpdateColumn());
+                columns.add(exprList[i].getSourceColumn());
         }
 
         /** Not applicable - returns null */
@@ -249,7 +249,7 @@ public abstract class DBCommandExpr extends DBExpr
             if (attributes != null && attributes.indexOf(name)>=0)
                 return attributes.get(name);
             // Otherwise ask expression
-            DBColumn column = expr.getUpdateColumn();
+            DBColumn column = expr.getSourceColumn();
             if (column!=null)
                 return column.getAttribute(name);
             return null;
@@ -264,7 +264,7 @@ public abstract class DBCommandExpr extends DBExpr
             if (options != null)
                 return options;
             // Otherwise ask expression
-            DBColumn column = expr.getUpdateColumn();
+            DBColumn column = expr.getSourceColumn();
             if (column!=null)
                 return column.getOptions();
             return null;
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBQueryColumn.java b/empire-db/src/main/java/org/apache/empire/db/DBQueryColumn.java
index df28783..43d4772 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBQueryColumn.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBQueryColumn.java
@@ -56,7 +56,7 @@ public class DBQueryColumn extends DBColumn
     @Override
     public double getSize()
     {
-        DBColumn column = expr.getUpdateColumn();
+        DBColumn column = expr.getSourceColumn();
         if (column==null)
             return 0.0;
         return column.getSize();
@@ -65,7 +65,7 @@ public class DBQueryColumn extends DBColumn
     @Override
     public boolean isReadOnly()
     {
-        DBColumn column = expr.getUpdateColumn();
+        DBColumn column = expr.getSourceColumn();
         if (column==null)
             return true;
         return column.isReadOnly();
@@ -74,7 +74,7 @@ public class DBQueryColumn extends DBColumn
     @Override
     public boolean isAutoGenerated()
     {
-        DBColumn column = expr.getUpdateColumn();
+        DBColumn column = expr.getSourceColumn();
         if (column==null)
             return false;
         return column.isAutoGenerated();
@@ -83,7 +83,7 @@ public class DBQueryColumn extends DBColumn
     @Override
     public boolean isRequired()
     {
-        DBColumn column = expr.getUpdateColumn();
+        DBColumn column = expr.getSourceColumn();
         if (column==null)
             return false;
         return column.isRequired();
@@ -98,7 +98,7 @@ public class DBQueryColumn extends DBColumn
         if (enumType!=null)
             return ((Class<Enum<?>>)enumType);        
         // otherwise check update column
-        DBColumn col = expr.getUpdateColumn();
+        DBColumn col = expr.getSourceColumn();
         if (col!=null)
             return col.getEnumType();
         // otherwise 
@@ -108,7 +108,7 @@ public class DBQueryColumn extends DBColumn
     @Override
     public Object validateValue(Object value)
     {
-        DBColumn column = expr.getUpdateColumn();
+        DBColumn column = expr.getSourceColumn();
         if (column==null)
             return value;
         return column.validateValue(value);
@@ -120,7 +120,7 @@ public class DBQueryColumn extends DBColumn
         if (attributes != null && attributes.contains(name))
             return attributes.get(name);
         // Otherwise ask expression
-        DBColumn column = expr.getUpdateColumn();
+        DBColumn column = expr.getSourceColumn();
         if (column==null)
             return null;
         return column.getAttribute(name);
@@ -132,7 +132,7 @@ public class DBQueryColumn extends DBColumn
         if (options != null)
             return options;
         // Otherwise ask expression
-        DBColumn column = expr.getUpdateColumn();
+        DBColumn column = expr.getSourceColumn();
         if (column==null)
             return null;
         return column.getOptions();
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBRecord.java b/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
index e52189a..b2b87a5 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
@@ -658,7 +658,7 @@ public class DBRecord extends DBRecordData implements DBContextAware, Record, Cl
      */
     public Options getFieldOptions(DBColumn column)
     {
-        // DBColumn col = ((colexpr instanceof DBColumn) ? ((DBColumn) colexpr) : colexpr.getUpdateColumn());
+        // DBColumn col = ((colexpr instanceof DBColumn) ? ((DBColumn) colexpr) : colexpr.getSourceColumn());
         return column.getOptions();
     }
 
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBUtils.java b/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
index 56d7e24..6448f5d 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
@@ -365,7 +365,7 @@ public class DBUtils implements DBContextAware
             return querySingleInt(sql, null, 0);
         }
         // find any rowset
-        DBRowSet rs = exprList[0].getUpdateColumn().getRowSet();
+        DBRowSet rs = exprList[0].getSourceColumn().getRowSet();
         // create the count command
         DBCommand countCmd = cmd.clone();
         countCmd.clearSelect();
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBView.java b/empire-db/src/main/java/org/apache/empire/db/DBView.java
index 3dd19ce..8a171cf 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBView.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBView.java
@@ -48,7 +48,7 @@ public abstract class DBView extends DBRowSet
       
         protected final DBColumnExpr expr;
         protected final DataType     dataType;
-        protected final DBColumn     updateColumn;
+        protected final DBColumn     sourceColumn;
         protected final double       size;
 
         /**
@@ -68,9 +68,9 @@ public abstract class DBView extends DBRowSet
                 exprType= DataType.INTEGER;
             this.dataType = exprType; 
             // Update Column
-            this.updateColumn = expr.getUpdateColumn();
+            this.sourceColumn = expr.getSourceColumn();
             // from update column
-            this.size = (updateColumn!=null ? updateColumn.getSize() : size);
+            this.size = (sourceColumn!=null ? sourceColumn.getSize() : size);
             // Add to view
             if (view != null)
                 view.addColumn(this);
@@ -101,9 +101,9 @@ public abstract class DBView extends DBRowSet
         @Override
         public boolean isAutoGenerated()
         {
-            if (updateColumn==null)
+            if (sourceColumn==null)
                 return false;
-            return updateColumn.isAutoGenerated();
+            return sourceColumn.isAutoGenerated();
         }
 
         @Override
@@ -112,8 +112,8 @@ public abstract class DBView extends DBRowSet
             if (getView().isUpdateable()==false)
                 return true;
             // Check ReadOnly attribute 
-            if (updateColumn!=null)
-                return updateColumn.isReadOnly();
+            if (sourceColumn!=null)
+                return sourceColumn.isReadOnly();
             // AUTOINC's are read only
             return isAutoGenerated();
         }
@@ -124,17 +124,17 @@ public abstract class DBView extends DBRowSet
             if (getView().isUpdateable()==false)
                 return false;
             // Check update Column
-            if (updateColumn==null)
+            if (sourceColumn==null)
                 return false;
-            return updateColumn.isRequired();
+            return sourceColumn.isRequired();
         }    
 
         @Override
         public Object validateValue(Object value)
         {
-            if (updateColumn==null)
+            if (sourceColumn==null)
                 return value;
-            return updateColumn.validateValue(value);
+            return sourceColumn.validateValue(value);
         }
 
         @Override
@@ -143,9 +143,9 @@ public abstract class DBView extends DBRowSet
             if (attributes != null && attributes.contains(name))
                 return attributes.get(name);
             // Otherwise ask expression
-            if (updateColumn==null)
+            if (sourceColumn==null)
                 return null;
-            return updateColumn.getAttribute(name);
+            return sourceColumn.getAttribute(name);
         }
 
         @Override
@@ -154,9 +154,9 @@ public abstract class DBView extends DBRowSet
             if (options != null)
                 return options;
             // Otherwise ask expression
-            if (updateColumn==null)
+            if (sourceColumn==null)
                 return null;
-            return updateColumn.getOptions();
+            return sourceColumn.getOptions();
         }
 
         @Override
@@ -165,8 +165,8 @@ public abstract class DBView extends DBRowSet
             Element elem = XMLUtil.addElement(parent, "column");
             elem.setAttribute("name", name);
             // set default attributes
-            if (updateColumn != null)
-                elem.setAttribute("source", updateColumn.getFullName());
+            if (sourceColumn != null)
+                elem.setAttribute("source", sourceColumn.getFullName());
             // size
             double size = getSize();
             if (size > 0)
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAbstractFuncExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAbstractFuncExpr.java
index f00b632..ab02d2a 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAbstractFuncExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAbstractFuncExpr.java
@@ -114,6 +114,15 @@ public abstract class DBAbstractFuncExpr extends DBColumnExpr
     }
 
     /**
+     * Returns the expression the source column.
+     */
+    @Override
+    public DBColumn getSourceColumn()
+    {
+        return expr.getSourceColumn();
+    }
+
+    /**
      * Returns the DBColunm object.
      * 
      * @return the DBColunm object
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 e34ab90..d18ea02 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
@@ -94,6 +94,15 @@ public class DBAliasExpr extends DBColumnExpr
     }
 
     /**
+     * Returns the expression the source column.
+     */
+    @Override
+    public DBColumn getSourceColumn()
+    {
+        return expr.getSourceColumn();
+    }
+
+    /**
      * Returns the DBColunm object.
      *
      * @return the DBColunm object
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 e7e352d..b4d2af8 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
@@ -123,6 +123,15 @@ public class DBCalcExpr extends DBColumnExpr
         return parent;
     }
 
+    /**
+     * Returns the expression the source column.
+     */
+    @Override
+    public DBColumn getSourceColumn()
+    {
+        return expr.getSourceColumn();
+    }
+
     /** returns null */
     @Override
     public DBColumn getUpdateColumn()
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCaseExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCaseExpr.java
index b9287d1..ca29473 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCaseExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCaseExpr.java
@@ -76,6 +76,12 @@ public class DBCaseExpr extends DBColumnExpr
     }
 
     @Override
+    public DBColumn getSourceColumn()
+    {
+        return trueExpr.getUpdateColumn();
+    }
+
+    @Override
     public DBColumn getUpdateColumn()
     {
         return trueExpr.getUpdateColumn();
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCaseWhenExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCaseWhenExpr.java
index 0de6bdf..1105b9f 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCaseWhenExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCaseWhenExpr.java
@@ -82,6 +82,13 @@ public class DBCaseWhenExpr extends DBColumnExpr
     }
 
     @Override
+    public DBColumn getSourceColumn()
+    {
+        DBColumnExpr cexp = getFirstColumnExpr();
+        return cexp.getSourceColumn();
+    }
+
+    @Override
     public DBColumn getUpdateColumn()
     {
         return null;
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBConcatExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBConcatExpr.java
index 26bdd83..4ea1db9 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBConcatExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBConcatExpr.java
@@ -103,6 +103,12 @@ public class DBConcatExpr extends DBColumnExpr
     }
 
     @Override
+    public DBColumn getSourceColumn()
+    {
+        return left.getSourceColumn();
+    }
+
+    @Override
     public DBColumn getUpdateColumn()
     {
         return null;
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCountExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCountExpr.java
index 267b8b8..d9998ab 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCountExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCountExpr.java
@@ -18,6 +18,9 @@
  */
 package org.apache.empire.db.expr.column;
 
+import java.util.Set;
+
+import org.apache.empire.data.Column;
 // Java
 import org.apache.empire.data.DataType;
 import org.apache.empire.db.DBColumn;
@@ -27,8 +30,6 @@ import org.apache.empire.db.DBRowSet;
 import org.apache.empire.xml.XMLUtil;
 import org.w3c.dom.Element;
 
-import java.util.Set;
-
 
 /**
  * This class is used to add the "count" statement to the SQL-Command.
@@ -108,6 +109,22 @@ public class DBCountExpr extends DBColumnExpr
     }
 
     /**
+     * Returns the expression the source column.
+     */
+    @Override
+    public DBColumn getSourceColumn()
+    {
+        if (column!=null)
+            return column.getSourceColumn();
+        // key cols
+        Column[] keyCols = rowset.getKeyColumns(); 
+        if (keyCols!=null)
+            return (DBColumn)keyCols[0].getSourceColumn();
+        // none
+        return null;
+    }
+
+    /**
      * Returns null.
      * 
      * @return null
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBScalarExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBScalarExpr.java
index 17ca6c5..f273554 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBScalarExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBScalarExpr.java
@@ -145,8 +145,16 @@ public class DBScalarExpr extends DBColumnExpr
     }
 
     /**
+     * Returns the expression the source column.
+     */
+    @Override
+    public DBColumn getSourceColumn()
+    {
+        return null;
+    }
+
+    /**
      * Returns null.
-     * 
      * @return null
      */
     @Override
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java
index 460630a..420b9ce 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java
@@ -158,9 +158,16 @@ public class DBValueExpr extends DBColumnExpr
     }
 
     /**
-     * Returns null.
-     * 
-     * @return null
+     * Returns the expression the source column.
+     */
+    @Override
+    public DBColumn getSourceColumn()
+    {
+        return (column != null) ? column.getSourceColumn() : null;
+    }
+
+    /**
+     * Returns the expression the update column.
      */
     @Override
     public DBColumn getUpdateColumn()
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/compare/DBCompareColExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/compare/DBCompareColExpr.java
index 53da6d9..2e25765 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/compare/DBCompareColExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/compare/DBCompareColExpr.java
@@ -275,8 +275,8 @@ public class DBCompareColExpr extends DBCompareExpr
                 }
             }
             // finally check update columns
-    		DBColumn tcol = texpr.getUpdateColumn();
-    		DBColumn ocol = oexpr.getUpdateColumn();
+    		DBColumn tcol = texpr.getSourceColumn();
+    		DBColumn ocol = oexpr.getSourceColumn();
     		return (tcol!=null) ? (tcol.equals(ocol)) : false;
     	}
     	return false;
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/join/DBColumnJoinExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/join/DBColumnJoinExpr.java
index 2600895..49ef3ec 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/join/DBColumnJoinExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/join/DBColumnJoinExpr.java
@@ -85,7 +85,7 @@ public class DBColumnJoinExpr extends DBJoinExpr
     @Override
     public DBRowSet getLeftTable()
     {
-        DBColumn col = left.getUpdateColumn();
+        DBColumn col = left.getSourceColumn();
         if (col==null)
             throw new InvalidPropertyException("left", left);
         return col.getRowSet();
@@ -97,7 +97,7 @@ public class DBColumnJoinExpr extends DBJoinExpr
     @Override
     public DBRowSet getRightTable()
     {
-        DBColumn col = right.getUpdateColumn();
+        DBColumn col = right.getSourceColumn();
         if (col==null)
             throw new InvalidPropertyException("right", right);
         return col.getRowSet();
@@ -124,8 +124,8 @@ public class DBColumnJoinExpr extends DBJoinExpr
         if (column==null)
             return false;
         // Check Update Columns
-        if (column.equals(left.getUpdateColumn()) ||
-            column.equals(right.getUpdateColumn()))
+        if (column.equals(left.getSourceColumn()) ||
+            column.equals(right.getSourceColumn()))
             return true;
         if (compExpr!=null)
         {   // Check expression
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/order/DBOrderByExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/order/DBOrderByExpr.java
index c69def1..f1f05c8 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/order/DBOrderByExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/order/DBOrderByExpr.java
@@ -52,7 +52,7 @@ public class DBOrderByExpr extends DBExpr
     
     public DBColumn getColumn()
     {
-        return expr.getUpdateColumn();
+        return expr.getSourceColumn();
     }
 
     public boolean isDescending()
diff --git a/empire-db/src/main/java/org/apache/empire/dbms/oracle/OracleRowNumExpr.java b/empire-db/src/main/java/org/apache/empire/dbms/oracle/OracleRowNumExpr.java
index af16813..a1bf91c 100644
--- a/empire-db/src/main/java/org/apache/empire/dbms/oracle/OracleRowNumExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/dbms/oracle/OracleRowNumExpr.java
@@ -96,7 +96,16 @@ public class OracleRowNumExpr extends DBColumnExpr
 
     /**
      * Returns null.
-     * 
+     * @return null
+     */
+    @Override
+    public DBColumn getSourceColumn()
+    {
+        return null;
+    }
+
+    /**
+     * Returns null.
      * @return null
      */
     @Override