protected SqlStroke(System.Linq.Expressions.Expression Expression, SqlStrokePart Left, SqlStrokePart Right)
        {
            expression = Expression;

            left = Left;

            right = Right;
        }
        private void SetCurrentSqlStrokePart(System.Linq.Expressions.Expression Expression)
        {
            if (CurrentSqlClause == null)
            {
                throw new SqlVisitorException("Stroke part can be retrieved only after parent sql clause is iterated");
            }

            if (!CurrentSqlClause.IsStroke)
            {
                throw new SqlVisitorException("Couldn't set current stroke part for clause that is not stroke");
            }

            SqlStrokePart sqlStrokePart = CurrentSqlClause.sqlStroke.GetPart(Expression);

            if (sqlStrokePart != null)
            {
                _currentSqlStrokePart = sqlStrokePart;
            }

            /*
            if (CurrentSqlStrokePart == null)
            {
                throw new SqlVisitorException("Couldn't set current stroke part");
            }
             */

        }