public ImmutableDataInsertActionNode(
     IQsiTreeNode parent,
     IQsiTableDirectivesNode directives,
     IQsiTableAccessNode target,
     QsiQualifiedIdentifier[] partitions,
     QsiQualifiedIdentifier[] columns,
     IQsiRowValueExpressionNode[] values,
     IQsiSetColumnExpressionNode[] setValues,
     IQsiTableNode valueTable,
     QsiDataConflictBehavior conflictBehavior,
     IQsiDataConflictActionNode conflictAction,
     IUserDataHolder userData)
 {
     Parent           = parent;
     Directives       = directives;
     Target           = target;
     Partitions       = partitions;
     Columns          = columns;
     Values           = values;
     SetValues        = setValues;
     ValueTable       = valueTable;
     ConflictBehavior = conflictBehavior;
     ConflictAction   = conflictAction;
     UserData         = userData;
 }
Exemplo n.º 2
0
 public ImmutableSwitchExpressionNode(IQsiTreeNode parent, IQsiExpressionNode value, IQsiSwitchCaseExpressionNode[] cases, IUserDataHolder userData)
 {
     Parent   = parent;
     Value    = value;
     Cases    = cases;
     UserData = userData;
 }
Exemplo n.º 3
0
 public ImmutableHanaDerivedTableNode(
     IQsiTreeNode parent,
     IQsiTableDirectivesNode directives,
     IQsiColumnsDeclarationNode columns,
     IQsiTableNode source,
     IQsiAliasNode alias,
     IQsiWhereExpressionNode @where,
     IQsiGroupingExpressionNode grouping,
     IQsiMultipleOrderExpressionNode order,
     IQsiLimitExpressionNode limit,
     QsiExpressionNode top,
     HanaResultSetOperation?operation,
     QsiExpressionFragmentNode sampling,
     HanaTableBehaviorNode behavior,
     QsiExpressionFragmentNode timeTravel,
     QsiExpressionFragmentNode hint,
     IUserDataHolder userData)
 {
     Parent     = parent;
     Directives = directives;
     Columns    = columns;
     Source     = source;
     Alias      = alias;
     Where      = @where;
     Grouping   = grouping;
     Order      = order;
     Limit      = limit;
     Top        = top;
     Operation  = operation;
     Sampling   = sampling;
     Behavior   = behavior;
     TimeTravel = timeTravel;
     Hint       = hint;
     UserData   = userData;
 }
 public ImmutableLiteralExpressionNode(IQsiTreeNode parent, object value, QsiDataType type, IUserDataHolder userData)
 {
     Parent   = parent;
     Value    = value;
     Type     = type;
     UserData = userData;
 }
 public ImmutableAllColumnNode(IQsiTreeNode parent, QsiQualifiedIdentifier path, IUserDataHolder userData)
 {
     Parent   = parent;
     Path     = path;
     UserData = userData;
     IncludeInvisibleColumns = false;
 }
Exemplo n.º 6
0
        internal static void PutContextSpan(IQsiTreeNode node, IToken start, IToken stop)
        {
            var startIndex = Math.Min(start.StartIndex, stop.TokenSource.InputStream.Size - 1);
            var stopIndex  = Math.Min(stop.StopIndex + 1, stop.TokenSource.InputStream.Size);

            Span[node] = new Range(startIndex, stopIndex);
        }
Exemplo n.º 7
0
 public ImmutableUnaryExpressionNode(IQsiTreeNode parent, string @operator, IQsiExpressionNode expression, IUserDataHolder userData)
 {
     Parent     = parent;
     Operator   = @operator;
     Expression = expression;
     UserData   = userData;
 }
Exemplo n.º 8
0
 public ImmutableColumnsDeclarationNode(IQsiTreeNode parent, IQsiColumnNode[] columns, IUserDataHolder userData)
 {
     Parent   = parent;
     Count    = columns?.Length ?? 0;
     Columns  = columns;
     IsEmpty  = Count == 0;
     UserData = userData;
 }
Exemplo n.º 9
0
        string IQsiTreeDeparser.Deparse(IQsiTreeNode node, QsiScript script)
        {
            var writer = new ScriptWriter();

            DeparseTreeNode(writer, node, script);

            return(writer.ToString());
        }
Exemplo n.º 10
0
        public static bool FindDescendant <T1>(this IQsiTreeNode node, out T1 t1)
            where T1 : IQsiTreeNode
        {
            t1 = default;

            Type[] types = { typeof(T1) };

            if (FindDescendantLayout(node, types, out IQsiTreeNode[] nodes))
Exemplo n.º 11
0
 public AnalyzerContext(QsiEngine engine, QsiScript script, IQsiTreeNode tree, QsiAnalyzerOptions options, CancellationToken cancellationToken)
 {
     Engine            = engine;
     Script            = script;
     Tree              = tree;
     Options           = options ?? throw new ArgumentNullException(nameof(options));
     CancellationToken = cancellationToken;
 }
Exemplo n.º 12
0
 public static void PutFragmentSpan(IQsiTreeNode node, TSqlFragment sqlFragment)
 {
     PutFragmentSpan(
         node,
         sqlFragment.ScriptTokenStream[sqlFragment.FirstTokenIndex],
         sqlFragment.ScriptTokenStream[sqlFragment.LastTokenIndex]
         );
 }
Exemplo n.º 13
0
 public ImmutableTableReferenceNode(
     IQsiTreeNode parent,
     QsiQualifiedIdentifier identifier,
     IUserDataHolder userData)
 {
     Parent     = parent;
     Identifier = identifier;
     UserData   = userData;
 }
Exemplo n.º 14
0
        public static IEnumerable <IQsiTreeNode> Flatten(this IQsiTreeNode node)
        {
            yield return(node);

            foreach (var child in node.Children.SelectMany(Flatten))
            {
                yield return(child);
            }
        }
Exemplo n.º 15
0
 public ImmutableMultipleOrderExpressionNode(
     IQsiTreeNode parent,
     IQsiOrderExpressionNode[] orders,
     IUserDataHolder userData)
 {
     Parent   = parent;
     Orders   = orders;
     UserData = userData;
 }
 public ImmutableColumnExpressionNode(
     IQsiTreeNode parent,
     IQsiColumnNode column,
     IUserDataHolder userData)
 {
     Parent   = parent;
     Column   = column;
     UserData = userData;
 }
 public ImmutableWhereExpressionNode(
     IQsiTreeNode parent,
     IQsiExpressionNode expression,
     IUserDataHolder userData)
 {
     Parent     = parent;
     Expression = expression;
     UserData   = userData;
 }
Exemplo n.º 18
0
 public ImmutableChangeSearchPathActionNode(
     IQsiTreeNode parent,
     QsiIdentifier[] identifiers,
     IUserDataHolder userData)
 {
     Parent      = parent;
     Identifiers = identifiers;
     UserData    = userData;
 }
 public ImmutableMultipleExpressionNode(
     IQsiTreeNode parent,
     IQsiExpressionNode[] elements,
     IUserDataHolder userData)
 {
     Parent   = parent;
     Elements = elements;
     UserData = userData;
 }
Exemplo n.º 20
0
 public ImmutableInvokeExpressionNode(
     IQsiTreeNode parent,
     IQsiFunctionExpressionNode member,
     IQsiParametersExpressionNode parameters,
     IUserDataHolder userData)
 {
     Parent     = parent;
     Member     = member;
     Parameters = parameters;
     UserData   = userData;
 }
Exemplo n.º 21
0
 public ImmutableTableDirectivesNode(
     IQsiTreeNode parent,
     IQsiDerivedTableNode[] tables,
     bool isRecursive,
     IUserDataHolder userData)
 {
     Parent      = parent;
     Tables      = tables;
     IsRecursive = isRecursive;
     UserData    = userData;
 }
Exemplo n.º 22
0
 public ImmutableGroupingExpressionNode(
     IQsiTreeNode parent,
     IQsiExpressionNode[] items,
     IQsiExpressionNode having,
     IUserDataHolder userData)
 {
     Parent   = parent;
     Items    = items;
     Having   = having;
     UserData = userData;
 }
 public ImmutableLimitExpressionNode(
     IQsiTreeNode parent,
     IQsiExpressionNode limit,
     IQsiExpressionNode offset,
     IUserDataHolder userData)
 {
     Parent   = parent;
     Limit    = limit;
     Offset   = offset;
     UserData = userData;
 }
Exemplo n.º 24
0
        protected override void DeparseTreeNode(ScriptWriter writer, IQsiTreeNode node, QsiScript script)
        {
            var range = CqlTree.Span[node];

            if (Equals(range, default(Range)))
            {
                base.DeparseTreeNode(writer, node, script);
            }

            writer.Write(script.Script[range]);
        }
 public ImmutableMemberAccessExpressionNode(
     IQsiTreeNode parent,
     IQsiExpressionNode target,
     IQsiExpressionNode member,
     IUserDataHolder userData)
 {
     Parent   = parent;
     Target   = target;
     Member   = member;
     UserData = userData;
 }
Exemplo n.º 26
0
 public ImmutablePrepareActionNode(
     IQsiTreeNode parent,
     QsiQualifiedIdentifier identifier,
     IQsiExpressionNode query,
     IUserDataHolder userData)
 {
     Parent     = parent;
     Identifier = identifier;
     Query      = query;
     UserData   = userData;
 }
 public ImmutableDataDeleteActionNode(
     IQsiTreeNode parent,
     IQsiTableNode target,
     QsiQualifiedIdentifier[] columns,
     IUserDataHolder userData)
 {
     Parent   = parent;
     Target   = target;
     Columns  = columns;
     UserData = userData;
 }
 public ImmutableDataUpdateActionNode(
     IQsiTreeNode parent,
     IQsiTableNode target,
     IQsiSetColumnExpressionNode[] setValues,
     IUserDataHolder userData)
 {
     Parent    = parent;
     Target    = target;
     SetValues = setValues;
     UserData  = userData;
 }
Exemplo n.º 29
0
 public ImmutableOrderExpressionNode(
     IQsiTreeNode parent,
     QsiSortOrder order,
     IQsiExpressionNode expression,
     IUserDataHolder userData)
 {
     Parent     = parent;
     Order      = order;
     Expression = expression;
     UserData   = userData;
 }
 public ImmutableSwitchCaseExpressionNode(
     IQsiTreeNode parent,
     IQsiExpressionNode condition,
     IQsiExpressionNode consequent,
     IUserDataHolder userData)
 {
     Parent     = parent;
     Condition  = condition;
     Consequent = consequent;
     UserData   = userData;
 }