예제 #1
0
 /// <summary>
 /// Generates the text for an AllColumns builder.
 /// </summary>
 /// <param name="item">The AllColumns builder to generate the text for.</param>
 protected internal override void VisitAllColumns(AllColumns item)
 {
     if (item.Source != null)
     {
         forSourceContext(SourceReferenceType.Reference).visitAliasedSource(item.Source);
         writer.Write(".");
     }
     writer.Write("*");
 }
예제 #2
0
 private void buildProjectionItem(MatchResult result, SelectBuilder builder)
 {
     MatchResult expression = result.Matches[SqlGrammar.ProjectionItem.Expression.Name];
     if (expression.IsMatch)
     {
         MatchResult itemResult = expression.Matches[SqlGrammar.ProjectionItem.Expression.Item];
         IProjectionItem item = (IProjectionItem)buildArithmeticItem(itemResult);
         string alias = null;
         MatchResult aliasExpression = expression.Matches[SqlGrammar.ProjectionItem.Expression.AliasExpression.Name];
         if (aliasExpression.IsMatch)
         {
             MatchResult aliasResult = aliasExpression.Matches[SqlGrammar.ProjectionItem.Expression.AliasExpression.Alias];
             alias = getToken(aliasResult);
         }
         builder.AddProjection(item, alias);
         return;
     }
     MatchResult star = result.Matches[SqlGrammar.ProjectionItem.Star.Name];
     if (star.IsMatch)
     {
         AliasedSource source = null;
         MatchResult qualifier = star.Matches[SqlGrammar.ProjectionItem.Star.Qualifier.Name];
         if (qualifier.IsMatch)
         {
             MatchResult columnSource = qualifier.Matches[SqlGrammar.ProjectionItem.Star.Qualifier.ColumnSource];
             List<string> parts = new List<string>();
             buildMultipartIdentifier(columnSource, parts);
             string sourceName = parts[parts.Count - 1];
             source = scope.GetSource(sourceName);
         }
         AllColumns all = new AllColumns(source);
         builder.AddProjection(all);
         return;
     }
     throw new InvalidOperationException();
 }
예제 #3
0
 /// <summary>
 /// Visits an AllColumns builder.
 /// </summary>
 /// <param name="item">The item to visit.</param>
 protected internal virtual void VisitAllColumns(AllColumns item)
 {
 }
예제 #4
0
 /// <summary>
 /// Visits an AllColumns builder.
 /// </summary>
 /// <param name="item">The item to visit.</param>
 protected internal virtual void VisitAllColumns(AllColumns item)
 {
 }