private void HandleSelectStatementDistinct(SelectStatement selectStatement, KoraliumParser.Select_statementContext context) { if (context.DISTINCT() != null) { selectStatement.Distinct = true; } }
public override object VisitSelect_statement([NotNull] KoraliumParser.Select_statementContext context) { SelectStatement selectStatement = new SelectStatement(); HandleSelectStatementSelectExpressions(selectStatement, context); HandleSelectStatementFromClause(selectStatement, context); HandleSelectStatementWhereClause(selectStatement, context); HandleSelectStatementGroupByClause(selectStatement, context); HandleSelectStatementHavingClause(selectStatement, context); HandleSelectStatementOrderByClause(selectStatement, context); HandleSelectStatementLimitOffset(selectStatement, context); HandleSelectStatementDistinct(selectStatement, context); return(selectStatement); }
/// <summary> /// Exit a parse tree produced by <see cref="KoraliumParser.select_statement"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitSelect_statement([NotNull] KoraliumParser.Select_statementContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="KoraliumParser.select_statement"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitSelect_statement([NotNull] KoraliumParser.Select_statementContext context) { return(VisitChildren(context)); }
private void HandleSelectStatementWhereClause(SelectStatement selectStatement, KoraliumParser.Select_statementContext context) { var whereClauseNode = context.where_clause(); if (whereClauseNode != null) { var whereClause = Visit(whereClauseNode) as WhereClause; if (whereClause == null) { throw new SqlParserException("Could not parse where clause"); } selectStatement.WhereClause = whereClause; } }
private void HandleSelectStatementFromClause(SelectStatement selectStatement, KoraliumParser.Select_statementContext context) { var fromClauseNode = context.from_clause(); if (fromClauseNode != null) { var fromClause = Visit(fromClauseNode) as FromClause; if (fromClause == null) { throw new SqlParserException("Could not parse from clause"); } selectStatement.FromClause = fromClause; } }
private void HandleSelectStatementSelectExpressions(SelectStatement selectStatement, KoraliumParser.Select_statementContext context) { var selectExpressions = context.select_expression(); if (selectExpressions != null) { foreach (var selectExpressionNode in selectExpressions) { var selectExpression = Visit(selectExpressionNode) as SelectExpression; if (selectExpression == null) { throw new SqlParserException("Could not parse select statement"); } selectStatement.SelectElements.Add(selectExpression); } } }
private void HandleSelectStatementLimitOffset(SelectStatement selectStatement, KoraliumParser.Select_statementContext context) { if (context.limit != null || context.offset != null) { OffsetLimitClause offsetLimitClause = new OffsetLimitClause(); if (context.limit != null) { var limit = Visit(context.limit) as ScalarExpression; if (limit == null) { throw new SqlParserException("Could not parse limit"); } offsetLimitClause.Limit = limit; } if (context.offset != null) { var offset = Visit(context.offset) as ScalarExpression; if (offset == null) { throw new SqlParserException("Could not parse offset"); } offsetLimitClause.Offset = offset; } selectStatement.OffsetLimitClause = offsetLimitClause; } }
private void HandleSelectStatementOrderByClause(SelectStatement selectStatement, KoraliumParser.Select_statementContext context) { var orderByNode = context.order_by_clause(); if (orderByNode != null) { var orderByClause = Visit(orderByNode) as OrderByClause; if (orderByClause == null) { throw new SqlParserException("Could not parse order by clause"); } selectStatement.OrderByClause = orderByClause; } }
private void HandleSelectStatementHavingClause(SelectStatement selectStatement, KoraliumParser.Select_statementContext context) { var havingNode = context.having_clause(); if (havingNode != null) { var havingClause = Visit(havingNode) as HavingClause; if (havingClause == null) { throw new SqlParserException("Could not parse having clause"); } selectStatement.HavingClause = havingClause; } }
private void HandleSelectStatementGroupByClause(SelectStatement selectStatement, KoraliumParser.Select_statementContext context) { var groupByNode = context.groupby_clause(); if (groupByNode != null) { var groupByClause = Visit(groupByNode) as GroupByClause; if (groupByClause == null) { throw new SqlParserException("Could not parse group by clause"); } selectStatement.GroupByClause = groupByClause; } }