/** Return the alias for our table */
  protected DatabaseTable getAliasedTable() {
    DataExpression base = (DataExpression) getBaseExpression();

    DatabaseTable alias = base.aliasForTable(getField().getTable());
    if (alias == null) {
      return getField().getTable();
    } else {
      return alias;
    }
  }
 /** INTERNAL: Used for cloning. */
 @Override
 protected void postCopyIn(Map alreadyDone) {
   super.postCopyIn(alreadyDone);
   this.derivedExpressions = copyDerivedExpressions(alreadyDone);
   if (this.onClause != null) {
     this.onClause = this.onClause.copiedVersionFrom(alreadyDone);
   }
   if (this.joinSource != null) {
     this.joinSource = this.joinSource.copiedVersionFrom(alreadyDone);
   }
 }
 /** INTERNAL: */
 public void clearAliases() {
   hasBeenAliased = false;
   super.clearAliases();
 }