Example #1
0
        protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
        {
            if (!this.TryGetCurrent(constantPlaceholder, out var current))
            {
                return(constantPlaceholder);
            }

            if (!(this.result &= (current.Index == constantPlaceholder.Index)))
            {
                return(constantPlaceholder);
            }

            if ((this.options & SqlExpressionComparerOptions.IgnoreConstantPlaceholders) != 0)
            {
                this.result &= current.Type == constantPlaceholder.Type;

                return(constantPlaceholder);
            }

            this.currentObject = current.ConstantExpression;
            this.Visit(constantPlaceholder.ConstantExpression);
            this.currentObject = current;

            return(constantPlaceholder);
        }
		protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
		{
			this.values.Add(constantPlaceholder);

			this.maxIndex = Math.Max(constantPlaceholder.Index, this.maxIndex);

			return base.VisitConstantPlaceholder(constantPlaceholder);
		}
Example #3
0
		protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
		{
			this.hashCode ^= constantPlaceholder.Index;

			if ((this.options & SqlExpressionComparerOptions.IgnoreConstantPlaceholders) != 0)
			{
				return constantPlaceholder;
			}

			return base.VisitConstantPlaceholder(constantPlaceholder);
		}
        protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
        {
            this.hashCode ^= constantPlaceholder.Index;

            if ((this.options & SqlExpressionComparerOptions.IgnoreConstantPlaceholders) != 0)
            {
                return(constantPlaceholder);
            }

            return(base.VisitConstantPlaceholder(constantPlaceholder));
        }
		protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
		{
			var result = base.VisitConstant(constantPlaceholder.ConstantExpression);

			var retval = new SqlConstantPlaceholderExpression(constantPlaceholder.Index, (ConstantExpression)result);

			if (retval.Type.GetUnwrappedNullableType() == typeof(bool))
			{
				return new BitBooleanExpression(retval);
			}

			return retval;
		}
Example #6
0
        protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
        {
            hashCode ^= constantPlaceholder.Index;

            if (ignoreConstantPlaceholderValues)
            {
                return(constantPlaceholder);
            }
            else
            {
                return(base.VisitConstantPlaceholder(constantPlaceholder));
            }
        }
		protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
		{
			var nullableType = constantPlaceholder.Type.MakeNullable();

			if (nullableType == constantPlaceholder.Type)
			{
				replacedExpressions.Add(constantPlaceholder);

				return new SqlConstantPlaceholderExpression(this.placeholderCount++, Expression.Constant(null, nullableType));
			}
			else
			{
				replacedExpressions.Add(new SqlConstantPlaceholderExpression(constantPlaceholder.Index, Expression.Constant(constantPlaceholder.ConstantExpression.Value, nullableType)));

				return new SqlConstantPlaceholderExpression(this.placeholderCount++, Expression.Constant(null, nullableType));
			}
		}
Example #8
0
        protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
        {
            SqlConstantPlaceholderExpression current;

            if (!TryGetCurrent(constantPlaceholder, out current))
            {
                return(constantPlaceholder);
            }

            result = result && (current.Index == constantPlaceholder.Index);

            if (result && !ignoreConstantPlaceholderValues)
            {
                currentObject = current.ConstantExpression;
                Visit(constantPlaceholder.ConstantExpression);
                currentObject = current;
            }

            return(constantPlaceholder);
        }
		protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
		{
			if (placeholderValues != null)
			{
				var retval = Expression.ArrayIndex(this.placeholderValues, Expression.Constant(constantPlaceholder.Index));

				return retval.Type == constantPlaceholder.Type ? retval : (Expression)Expression.Convert(retval, constantPlaceholder.Type);
			}
			else
			{
				if (constantPlaceholder.Index < this.placeholderValuesLiteral.Length)
				{
					var retval = Expression.Constant(this.placeholderValuesLiteral[constantPlaceholder.Index]);

					return retval.Type == constantPlaceholder.Type ? retval : (Expression)Expression.Convert(retval, constantPlaceholder.Type);
				}
				else
				{
					return constantPlaceholder;
				}
			}
		}
		protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
		{
			var newLength = this.values.Length;

			while (constantPlaceholder.Index > newLength - 1)
			{
				newLength *= 2;
			}

			if (newLength != this.values.Length)
			{
				Array.Resize(ref this.values, newLength);
			}

			values[constantPlaceholder.Index] = constantPlaceholder.ConstantExpression.Value;

			if (maxLength < constantPlaceholder.Index + 1)
			{
				maxLength = constantPlaceholder.Index + 1;
			}

			return base.VisitConstantPlaceholder(constantPlaceholder);
		}
Example #11
0
		protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholderExpression)
		{
			if ((this.options & SqlQueryFormatterOptions.EvaluateConstantPlaceholders) != 0)
			{
				var startIndex = this.parameterValues.Count;

				var savedOptions = this.options;

				// Never optimise-out null constant placeholders

				this.options &= ~SqlQueryFormatterOptions.OptimiseOutConstantNulls;

				var retval = base.VisitConstantPlaceholder(constantPlaceholderExpression);

				this.options = savedOptions;

				var endIndex = this.parameterValues.Count;

				if (endIndex - startIndex == 1 && canReuse)
				{
					var index = startIndex;

					parameterIndexToPlaceholderIndexes.Add(new Pair<int, int>(index, constantPlaceholderExpression.Index));
				}

				return retval;
			}
			else
			{
				this.WriteFormat("$${0}", constantPlaceholderExpression.Index);

				return constantPlaceholderExpression;
			}
		}
Example #12
0
 protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
 {
     return Expression.Convert(Expression.ArrayIndex(this.dynamicParameters, Expression.Constant(constantPlaceholder.Index)), constantPlaceholder.ConstantExpression.Type);
 }
Example #13
0
        protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholderExpression)
        {
            if ((this.options & SqlQueryFormatterOptions.EvaluateConstantPlaceholders) != 0)
            {
                return base.VisitConstantPlaceholder(constantPlaceholderExpression);
            }
            else
            {
                this.WriteFormat("$${0}", constantPlaceholderExpression.Index);

                return constantPlaceholderExpression;
            }
        }
Example #14
0
		protected virtual Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
		{
			var result = this.VisitConstant(constantPlaceholder.ConstantExpression);

			if (constantPlaceholder.ConstantExpression != result)
			{
				if (!(result is ConstantExpression))
				{
					return result;
				}

				return new SqlConstantPlaceholderExpression(constantPlaceholder.Index, (ConstantExpression)result);
			}

			return constantPlaceholder;
		}
Example #15
0
        protected virtual Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
        {
            var result = this.VisitConstant(constantPlaceholder.ConstantExpression);

            return new SqlConstantPlaceholderExpression(constantPlaceholder.Index, (ConstantExpression)result);
        }
Example #16
0
        protected virtual Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
        {
            var result = VisitConstant(constantPlaceholder.ConstantExpression);

            return(new SqlConstantPlaceholderExpression(constantPlaceholder.Index, (ConstantExpression)result));
        }
Example #17
0
        protected override Expression VisitConstantPlaceholder(SqlConstantPlaceholderExpression constantPlaceholder)
        {
            this.output.AppendFormat("$${0}", constantPlaceholder.Index);

            return constantPlaceholder;
        }