/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend/Ast/Nodes/Select/SelectSubqueryConditionExpressionNode.cs
59 строк
2 KB
Ivan Kozhin
Improve AST clone support
29 апр 2024, 20:52
29 апр 2024, 20:52
a38ad63
Код
Авторство
О чём код?
using QueryCat.Backend.Core.Types; namespace QueryCat.Backend.Ast.Nodes.Select; internal sealed class SelectSubqueryConditionExpressionNode : ExpressionNode { public enum QuantifierOperator { Any, All } /// <inheritdoc /> public override string Code => "subquery_op"; public ExpressionNode LeftNode { get; } public VariantValue.Operation Operation { get; } public QuantifierOperator Operator { get; } public SelectQueryNode SubQueryNode { get; } /// <inheritdoc /> public SelectSubqueryConditionExpressionNode( ExpressionNode leftNode, VariantValue.Operation operation, QuantifierOperator quantifierOperator, SelectQueryNode subQueryNode) { LeftNode = leftNode; Operation = operation; Operator = quantifierOperator; SubQueryNode = subQueryNode; } public SelectSubqueryConditionExpressionNode(SelectSubqueryConditionExpressionNode node) : this( (ExpressionNode)node.LeftNode.Clone(), node.Operation, node.Operator, (SelectQueryNode)node.SubQueryNode.Clone()) { node.CopyTo(this); } /// <inheritdoc /> public override object Clone() => new SelectSubqueryConditionExpressionNode(this); /// <inheritdoc /> public override IEnumerable<IAstNode> GetChildren() { yield return LeftNode; yield return SubQueryNode; } /// <inheritdoc /> public override void Accept(AstVisitor visitor) => visitor.Visit(this); }