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

            SQLiteUpdateStatement dst = obj as SQLiteUpdateStatement;

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

            if (_conf != dst._conf || _table != dst._table)
            {
                return(false);
            }
            if (!RefCompare.Compare(_whereExpr, dst._whereExpr))
            {
                return(false);
            }
            if (!RefCompare.CompareList <SQLiteUpdateItem>(_setlist, dst._setlist))
            {
                return(false);
            }

            return(base.Equals(obj));
        }
        public override object Clone()
        {
            List <SQLiteUpdateItem> setlist = null;

            if (_setlist != null)
            {
                setlist = new List <SQLiteUpdateItem>();
                foreach (SQLiteUpdateItem item in _setlist)
                {
                    setlist.Add((SQLiteUpdateItem)item.Clone());
                }
            }
            SQLiteExpression whereExpr = null;

            if (_whereExpr != null)
            {
                whereExpr = (SQLiteExpression)_whereExpr.Clone();
            }

            SQLiteUpdateStatement res = new SQLiteUpdateStatement();

            res._conf      = _conf;
            res._setlist   = setlist;
            res._table     = _table;
            res._whereExpr = whereExpr;
            return(res);
        }