public static string GetN1QlSelectNewExpression(Expression expression, N1QlQueryGenerationContext queryGenerationContext)
        {
            var visitor = new N1QlExpressionTreeVisitor(queryGenerationContext);

            visitor.VisitSelectNewExpression(expression);
            return(visitor.GetN1QlExpression());
        }
        public static string GetN1QlSelectNewExpression(NewExpression expression, N1QlQueryGenerationContext queryGenerationContext)
        {
            // Ensure that any date/time expressions are properly converted to Unix milliseconds as needed
            expression = (NewExpression)TransformingExpressionTreeVisitor.Transform(expression,
                                                                                    ExpressionTransformers.DateTimeTransformationRegistry.Default);

            var visitor = new N1QlExpressionTreeVisitor(queryGenerationContext);

            visitor.VisitSelectNewExpression(expression);
            return(visitor.GetN1QlExpression());
        }
Пример #3
0
        private string GetN1QlExpression(Expression expression)
        {
            if (_groupingStatus == GroupingStatus.AfterGroupSubquery)
            {
                // SELECT, HAVING, and ORDER BY clauses must be remapped to refer directly to the extents in the grouping subquery
                // rather than refering to the output of the grouping subquery

                expression = TransformingExpressionTreeVisitor.Transform(expression, _groupingExpressionTransformerRegistry);
            }

            return(N1QlExpressionTreeVisitor.GetN1QlExpression(expression, _queryGenerationContext));
        }