Ejemplo n.º 1
0
        internal override void WriteExpressionStatement(ref NoAllocStringBuilder builder, ref int valuesCount, DdbExpressionVisitor visitor)
        {
            // "SET #a = #b + if_not_exists(#c, :v0)"

            visitor.Visit <TEntity>(Expression);
            builder.Append(visitor.Builder);

            builder.Append(" = ");

            visitor.Visit <TEntity>(_left);
            builder.Append(visitor.Builder);

            AppendMathOperatorExpression(ref builder);

            WriteIfNotExistsBlock <TEntity>(ref builder, visitor, _right, ref valuesCount);
        }
Ejemplo n.º 2
0
        internal override void WriteExpressionStatement(ref NoAllocStringBuilder builder, ref int valuesCount, DdbExpressionVisitor visitor)
        {
            // "REMOVE #a"

            visitor.Visit <TEntity>(Expression);
            builder.Append(visitor.Builder);
        }
Ejemplo n.º 3
0
        internal override void WriteExpressionStatement(ref NoAllocStringBuilder builder, ref int valuesCount, DdbExpressionVisitor visitor)
        {
            // "SET #a = #b + #c"

            visitor.Visit <TEntity>(Expression);
            builder.Append(visitor.Builder);

            builder.Append(" = ");

            visitor.Visit <TEntity>(_left);
            builder.Append(visitor.Builder);

            AppendMathOperatorExpression(ref builder);

            visitor.Visit <TEntity>(_right);
            builder.Append(visitor.Builder);
        }
Ejemplo n.º 4
0
        internal override void WriteExpressionStatement(ref NoAllocStringBuilder builder, ref int valuesCount, DdbExpressionVisitor visitor)
        {
            // "SET #a = list_append(if_not_exists(#b, :v0),#c)"

            visitor.Visit <TEntity>(Expression);
            builder.Append(visitor.Builder);

            builder.Append(" = list_append(");

            WriteIfNotExistsBlock <TEntity>(ref builder, visitor, _left, ref valuesCount);

            builder.Append(',');

            visitor.Visit <TEntity>(_right);
            builder.Append(visitor.Builder);

            builder.Append(')');
        }
Ejemplo n.º 5
0
        internal override void WriteExpressionStatement(ref NoAllocStringBuilder builder, ref int valuesCount, DdbExpressionVisitor visitor)
        {
            // "#a = :v0"

            visitor.Visit <TEntity>(Expression);

            WriteEncodedExpressionName(visitor.Builder, _useSize, ref builder);
            builder.Append(" = :v");
            builder.Append(valuesCount++);
        }
        internal override void WriteExpressionStatement(ref NoAllocStringBuilder builder, ref int valuesCount, DdbExpressionVisitor visitor)
        {
            // "SET #a = list_append(#b,#c)"

            visitor.Visit <TEntity>(Expression);
            builder.Append(visitor.Builder);

            builder.Append(" = list_append(");

            visitor.Visit <TEntity>(_left);
            builder.Append(visitor.Builder);

            builder.Append(',');

            visitor.Visit <TEntity>(_right);
            builder.Append(visitor.Builder);

            builder.Append(')');
        }
Ejemplo n.º 7
0
        internal override void WriteExpressionStatement(ref NoAllocStringBuilder builder, ref int valuesCount, DdbExpressionVisitor visitor)
        {
            // attribute_not_exists(#a)

            visitor.Visit <TEntity>(Expression);

            builder.Append("attribute_not_exists(");
            builder.Append(visitor.Builder);
            builder.Append(')');
        }
Ejemplo n.º 8
0
        internal override void WriteExpressionStatement(ref NoAllocStringBuilder builder, ref int valuesCount, DdbExpressionVisitor visitor)
        {
            // "#a IN (:v0, :v1, :v2)"

            visitor.Visit <TEntity>(Expression);

            WriteEncodedExpressionName(visitor.Builder, _useSize, ref builder);
            builder.Append(" IN (");

            for (var i = 0; i < _values.Length; i++)
            {
                if (i > 0)
                {
                    builder.Append(", ");
                }

                builder.Append(":v");
                builder.Append(valuesCount++);
            }

            builder.Append(')');
        }