Skip to content

Commit

Permalink
Merge pull request #61 from chequer-io/fix/QP-4629
Browse files Browse the repository at this point in the history
QP-4629 Fix having clause constraint
  • Loading branch information
zero1ne committed Jul 27, 2023
2 parents ef9f996 + e148cb9 commit a6eca6d
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
10 changes: 10 additions & 0 deletions Qsi.MySql/Tree/Visitors/ExpressionVisitor.cs
Expand Up @@ -1585,6 +1585,16 @@ public static QsiLiteralExpressionNode VisitFractionalPrecision(FractionalPrecis
}

#region Having Clause
public static QsiGroupingExpressionNode MakeEmptyQsiGroupingExpressionNode(HavingClauseContext context)
{
return TreeHelper.Create<QsiGroupingExpressionNode>(n =>
{
n.Items.AddRange(new List<QsiExpressionNode>(0));
MySqlTree.PutContextSpan(n, context);
});
}

public static QsiExpressionNode VisitHavingClause(HavingClauseContext context)
{
return VisitExpr(context.expr());
Expand Down
5 changes: 4 additions & 1 deletion Qsi.MySql/Tree/Visitors/TableVisitor.cs
Expand Up @@ -700,7 +700,10 @@ public static QsiTableNode VisitQuerySpecification(QuerySpecificationContext con
node.Grouping.SetValue(ExpressionVisitor.VisitGroupByClause(groupByClause));
break;

case HavingClauseContext havingClause when !node.Grouping.IsEmpty:
case HavingClauseContext havingClause:
if (node.Grouping.IsEmpty)
node.Grouping.SetValue(ExpressionVisitor.MakeEmptyQsiGroupingExpressionNode(havingClause));

node.Grouping.Value.Having.SetValue(ExpressionVisitor.VisitHavingClause(havingClause));
break;

Expand Down

0 comments on commit a6eca6d

Please sign in to comment.