Creates a SqlTableBase object from a given SqlStatement, extracting all SqlStatement.Orderings in the statement as required by SQL.
        public override Expression VisitSqlSubStatementExpression(SqlSubStatementExpression expression)
        {
            ArgumentUtility.CheckNotNull("expression", expression);

            var sqlStatement = expression.SqlStatement;

            var factory = new SqlPreparationSubStatementTableFactory(Stage, Context, _generator);

            FromExpressionInfo = factory.CreateSqlTableForStatement(sqlStatement, _tableGenerator);
            Assertion.DebugAssert(FromExpressionInfo.Value.WhereCondition == null);

            return(new SqlTableReferenceExpression(FromExpressionInfo.Value.SqlTable));
        }
    public void SetUp ()
    {
      _stageMock = MockRepository.GenerateStrictMock<ISqlPreparationStage>();
      _context = SqlStatementModelObjectMother.CreateSqlPreparationContext ();
      _generator = new UniqueIdentifierGenerator();
      _factory = new SqlPreparationSubStatementTableFactory (_stageMock, _context, _generator);

      var builderForStatementWithOrderings = new SqlStatementBuilder (SqlStatementModelObjectMother.CreateSqlStatementWithCook ())
      {
        Orderings = {
            new Ordering (Expression.Constant ("order1"), OrderingDirection.Desc),
            new Ordering (Expression.Constant ("order2"), OrderingDirection.Asc),
        }
      };
      _statementWithOrderings = builderForStatementWithOrderings.GetSqlStatement ();
    }
    public override Expression VisitSqlSubStatementExpression (SqlSubStatementExpression expression)
    {
      ArgumentUtility.CheckNotNull ("expression", expression);

      var sqlStatement = expression.SqlStatement;

      var factory = new SqlPreparationSubStatementTableFactory (Stage, Context, _generator);
      FromExpressionInfo = factory.CreateSqlTableForStatement (sqlStatement, _tableGenerator);
      Assertion.DebugAssert (FromExpressionInfo.Value.WhereCondition == null);

      return new SqlTableReferenceExpression (FromExpressionInfo.Value.SqlTable);
    }