public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            SQLiteSelectColumn dst = obj as SQLiteSelectColumn;

            if (dst == null)
            {
                return(false);
            }

            if (!RefCompare.CompareMany(_expr, dst._expr, _tableName, dst._tableName))
            {
                return(false);
            }
            if (_asName != dst._asName)
            {
                return(false);
            }

            return(true);
        }
        public virtual object Clone()
        {
            SQLiteExpression expr = null;

            if (_expr != null)
            {
                expr = (SQLiteExpression)_expr.Clone();
            }
            SQLiteObjectName tableName = null;

            if (_tableName != null)
            {
                tableName = (SQLiteObjectName)_tableName.Clone();
            }

            SQLiteSelectColumn res = new SQLiteSelectColumn();

            res._expr      = expr;
            res._asName    = _asName;
            res._tableName = tableName;
            return(res);
        }