public ImmutableUnaryExpressionNode(IQsiTreeNode parent, string @operator, IQsiExpressionNode expression, IUserDataHolder userData) { Parent = parent; Operator = @operator; Expression = expression; UserData = userData; }
public ImmutableSwitchExpressionNode(IQsiTreeNode parent, IQsiExpressionNode value, IQsiSwitchCaseExpressionNode[] cases, IUserDataHolder userData) { Parent = parent; Value = value; Cases = cases; UserData = userData; }
public ImmutableWhereExpressionNode( IQsiTreeNode parent, IQsiExpressionNode expression, IUserDataHolder userData) { Parent = parent; Expression = expression; UserData = userData; }
public ImmutableOrderExpressionNode( IQsiTreeNode parent, QsiSortOrder order, IQsiExpressionNode expression, IUserDataHolder userData) { Parent = parent; Order = order; Expression = expression; UserData = userData; }
public ImmutableSetColumnExpressionNode( IQsiTreeNode parent, QsiQualifiedIdentifier target, IQsiExpressionNode value, IUserDataHolder userData) { Parent = parent; Target = target; Value = value; UserData = userData; }
public ImmutableGroupingExpressionNode( IQsiTreeNode parent, IQsiExpressionNode[] items, IQsiExpressionNode having, IUserDataHolder userData) { Parent = parent; Items = items; Having = having; UserData = userData; }
public ImmutablePrepareActionNode( IQsiTreeNode parent, QsiQualifiedIdentifier identifier, IQsiExpressionNode query, IUserDataHolder userData) { Parent = parent; Identifier = identifier; Query = query; UserData = userData; }
public ImmutableSwitchCaseExpressionNode( IQsiTreeNode parent, IQsiExpressionNode condition, IQsiExpressionNode consequent, IUserDataHolder userData) { Parent = parent; Condition = condition; Consequent = consequent; UserData = userData; }
protected virtual QsiDataValue ResolveColumnValue(IAnalyzerContext context, IQsiExpressionNode expression) { if (expression is IQsiLiteralExpressionNode literal) { return(new QsiDataValue(literal.Value, literal.Type)); } var value = context.Engine.TreeDeparser.Deparse(expression, context.Script); return(new QsiDataValue(value, QsiDataType.Raw)); }
public ImmutableMemberAccessExpressionNode( IQsiTreeNode parent, IQsiExpressionNode target, IQsiExpressionNode member, IUserDataHolder userData) { Parent = parent; Target = target; Member = member; UserData = userData; }
public ImmutableLimitExpressionNode( IQsiTreeNode parent, IQsiExpressionNode limit, IQsiExpressionNode offset, IUserDataHolder userData) { Parent = parent; Limit = limit; Offset = offset; UserData = userData; }
public ImmutableBinaryExpressionNode( IQsiTreeNode parent, IQsiExpressionNode left, string @operator, IQsiExpressionNode right, IUserDataHolder userData) { Parent = parent; Left = left; Operator = @operator; Right = right; UserData = userData; }
public ImmutableSetVariableExpressionNode( IQsiTreeNode parent, QsiQualifiedIdentifier target, QsiAssignmentKind assignmentKind, IQsiExpressionNode value, IUserDataHolder userData) { Parent = parent; Target = target; AssignmentKind = assignmentKind; Value = value; UserData = userData; }
public ImmutableDataConflictActionNode( IQsiTreeNode parent, QsiQualifiedIdentifier target, IQsiSetColumnExpressionNode[] setValues, IQsiExpressionNode condition, IUserDataHolder userData) { Parent = parent; Target = target; SetValues = setValues; Condition = condition; UserData = userData; }
public ImmutableDerivedColumnNode( IQsiTreeNode parent, IQsiColumnNode column, IQsiExpressionNode expression, IQsiAliasNode alias, IUserDataHolder userData) { Parent = parent; Column = column; Expression = expression; Alias = alias; UserData = userData; }
public ImmutableDerivedColumnNode( IQsiTreeNode parent, IQsiColumnNode column, IQsiExpressionNode expression, IQsiAliasNode alias, QsiIdentifier inferredName, IUserDataHolder userData) { Parent = parent; Column = column; Expression = expression; Alias = alias; InferredName = inferredName; UserData = userData; }
protected override void DeparseExpressionNode(ScriptWriter writer, IQsiExpressionNode node, QsiScript script) { switch (node) { case HanaCollateExpressionNode collate: DeparseHanaCollateExpressionNode(writer, collate, script); break; case HanaAssociationExpressionNode associationExpression: DeparseHanaAssociationExpressionNode(writer, associationExpression, script); break; case HanaAssociationReferenceNode associationRef: DeparseHanaAssociationReferenceNode(writer, associationRef, script); break; default: base.DeparseExpressionNode(writer, node, script); break; } }
protected override IEnumerable <QsiTableColumn> ResolveColumnsInExpression(TableCompileContext context, IQsiExpressionNode expression) { switch (expression) { case CqlIndexExpressionNode _: case CqlMultipleUsingExpressionNode _: case CqlUsingExpressionNode _: break; case CqlIndexerExpressionNode _: case CqlRangeExpressionNode _: case CqlSetColumnExpressionNode _: { return(expression.Children .Cast <IQsiExpressionNode>() .SelectMany(n => ResolveColumnsInExpression(context, n))); } } return(base.ResolveColumnsInExpression(context, expression)); }
protected override IEnumerable <QsiTableColumn> ResolveColumnsInExpression(TableCompileContext context, IQsiExpressionNode expression) { switch (expression) { case MySqlAliasedExpressionNode aliasedExpressionNode: return(ResolveColumnsInExpression(context, aliasedExpressionNode.Expression.Value)); case MySqlCollationExpressionNode collationExpressionNode: return(ResolveColumnsInExpression(context, collationExpressionNode.Expression.Value)); } return(base.ResolveColumnsInExpression(context, expression)); }