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

            SQLiteCreateViewStatement dst = obj as SQLiteCreateViewStatement;

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

            if (_isTemp != dst._isTemp || _ifNotExists != dst._ifNotExists)
            {
                return(false);
            }

            if (!RefCompare.Compare(_select, dst._select))
            {
                return(false);
            }

            return(base.Equals(obj));
        }
        public override object Clone()
        {
            SQLiteSelectStatement select = null;

            if (_select != null)
            {
                select = (SQLiteSelectStatement)_select.Clone();
            }
            SQLiteObjectName viewName = null;

            if (this.ObjectName != null)
            {
                viewName = (SQLiteObjectName)this.ObjectName.Clone();
            }

            SQLiteCreateViewStatement res = new SQLiteCreateViewStatement(viewName);

            res._ifNotExists = _ifNotExists;
            res._isTemp      = _isTemp;
            res._select      = select;
            return(res);
        }