public override object Clone()
        {
            SQLiteExpression expr = null;

            if (_expr != null)
            {
                expr = (SQLiteExpression)_expr.Clone();
            }
            SQLiteColumnType type = null;

            if (_type != null)
            {
                type = (SQLiteColumnType)_type.Clone();
            }

            SQLiteCastExpression res = new SQLiteCastExpression();

            res._expr = expr;
            res._type = type;
            return(res);
        }
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            SQLiteCastExpression dst = obj as SQLiteCastExpression;

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

            if (!RefCompare.CompareMany(_expr, dst._expr, _type, dst._type))
            {
                return(false);
            }

            return(base.Equals(obj));
        }