Esempio n. 1
0
 public ImmutableUnaryExpressionNode(IQsiTreeNode parent, string @operator, IQsiExpressionNode expression, IUserDataHolder userData)
 {
     Parent     = parent;
     Operator   = @operator;
     Expression = expression;
     UserData   = userData;
 }
Esempio n. 2
0
 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;
 }
Esempio n. 4
0
 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;
 }
Esempio n. 6
0
 public ImmutableGroupingExpressionNode(
     IQsiTreeNode parent,
     IQsiExpressionNode[] items,
     IQsiExpressionNode having,
     IUserDataHolder userData)
 {
     Parent   = parent;
     Items    = items;
     Having   = having;
     UserData = userData;
 }
Esempio n. 7
0
 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;
 }
Esempio n. 13
0
 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;
 }
Esempio n. 15
0
 public ImmutableDerivedColumnNode(
     IQsiTreeNode parent,
     IQsiColumnNode column,
     IQsiExpressionNode expression,
     IQsiAliasNode alias,
     IUserDataHolder userData)
 {
     Parent     = parent;
     Column     = column;
     Expression = expression;
     Alias      = alias;
     UserData   = userData;
 }
Esempio n. 16
0
 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;
 }
Esempio n. 17
0
        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;
            }
        }
Esempio n. 18
0
        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));
        }
Esempio n. 19
0
        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));
        }