コード例 #1
0
        /// <summary>
        /// Column name -> Table alias
        /// </summary>
        //private Dictionary<string, string> _columnTableDict;

        public void Invoke(WSqlFragment node, Dictionary<string, List<string>> edgeTableReferenceDict/*,
            Dictionary<string, string> columnTableDcit*/)
        {
            _edgeTableReferenceDict = edgeTableReferenceDict;
            //_columnTableDict = columnTableDcit;
            node.Accept(this);
        }
コード例 #2
0
 public void Invoke(WSqlFragment fragment,
     IList<GraphDataModificationAnnotation> annotations)
 {
     _annotations = annotations;
     _nodeCount = 0;
     fragment.Accept(this);
 }
コード例 #3
0
 public WSqlTableContext Invoke(WSqlFragment node)
 {
     _results = new WSqlTableContext();
     _nodeTables = null;
     node.Accept(this);
     return _results;
 }
コード例 #4
0
 public void Invoke(WSqlFragment fragment,
                    IList <GraphDataModificationAnnotation> annotations)
 {
     _annotations = annotations;
     _nodeCount   = 0;
     fragment.Accept(this);
 }
コード例 #5
0
        public Dictionary <string, HashSet <string> > Invoke(WSqlFragment sqlFragment, System.Collections.IEnumerable targetTableReferences,
                                                             out bool isOnlyTargetTableReferecend)
        {
            _isOnlyTargetTableReferenced = true;
            accessedColumns = new Dictionary <string, HashSet <string> >();

            if (sqlFragment != null)
            {
                foreach (string tabAlias in targetTableReferences)
                {
                    accessedColumns.Add(tabAlias, new HashSet <string>());
                }

                sqlFragment.Accept(this);

                foreach (string tableRef in targetTableReferences)
                {
                    if (accessedColumns[tableRef].Count == 0)
                    {
                        accessedColumns.Remove(tableRef);
                    }
                }
            }

            isOnlyTargetTableReferecend = _isOnlyTargetTableReferenced;
            return(accessedColumns);
        }
コード例 #6
0
 public WSqlTableContext Invoke(WSqlFragment node, IEnumerable <Tuple <string, string> > nodeTables)
 {
     _results    = new WSqlTableContext();
     _nodeTables = nodeTables;
     node.Accept(this);
     return(_results);
 }
コード例 #7
0
 public WSqlTableContext Invoke(WSqlFragment node)
 {
     _results    = new WSqlTableContext();
     _nodeTables = null;
     node.Accept(this);
     return(_results);
 }
コード例 #8
0
 public WSqlTableContext Invoke(WSqlFragment node, IEnumerable<Tuple<string, string>> nodeTables )
 {
     _results = new WSqlTableContext();
     _nodeTables = nodeTables;
     node.Accept(this);
     return _results;
 }
コード例 #9
0
 internal void UpdateTokenInfo(WSqlFragment fragment)
 {
     if (fragment == null)
     {
         return;
     }
     UpdateTokenInfo(fragment.FirstTokenIndex, fragment.LastTokenIndex);
 }
コード例 #10
0
 public bool Invoke(WSqlFragment sqlFragment)
 {
     hasModification = false;
     if (sqlFragment != null)
     {
         sqlFragment.Accept(this);
     }
     return(hasModification);
 }
コード例 #11
0
 public void Invoke(
     WSqlFragment node,
     out HashSet <string> tables,
     out HashSet <string> unboundColumns)
 {
     _tables         = new HashSet <string>(StringComparer.OrdinalIgnoreCase);
     _unboundColumns = new HashSet <string>(StringComparer.OrdinalIgnoreCase);
     tables          = _tables;
     unboundColumns  = _unboundColumns;
     node.Accept(this);
 }
コード例 #12
0
 public void Invoke(
     WSqlFragment node,
     out HashSet<string> tables,
     out HashSet<string> unboundColumns)
 {
     _tables = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
     _unboundColumns = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
     tables = _tables;
     unboundColumns = _unboundColumns;
     node.Accept(this);
 }
コード例 #13
0
 public WCommonTableExpression Invoke(WSqlFragment node, string tempTableName, string sourceTableName,
                                      out WTableReference sinkTable, out List <WScalarExpression> edgeProperties)
 {
     _edgeProperties  = new List <WScalarExpression>();
     _tempTableName   = tempTableName;
     _sourceTableName = sourceTableName;
     node.Accept(this);
     sinkTable = _sinkTable;
     _edgeProperties.Insert(0,
                            new WColumnReferenceExpression
     {
         MultiPartIdentifier = new WMultiPartIdentifier(new Identifier {
             Value = "sink"
         })
     }
                            );
     edgeProperties = _edgeProperties;
     return(_result);
 }
コード例 #14
0
 public void Invoke(WSqlFragment fragment)
 {
     fragment.Accept(this);
 }
コード例 #15
0
 public void Invoke(WSqlFragment queryBlock, Dictionary <GremlinVariableProperty, string> map)
 {
     _map = map;
     queryBlock.Accept(this);
 }
コード例 #16
0
 public WCommonTableExpression Invoke(WSqlFragment node, string tempTableName, out WTableReference sinkTable, out List<WScalarExpression> edgeProperties)
 {
     _edgeProperties = new List<WScalarExpression>
     {
         new WColumnReferenceExpression
         {
             MultiPartIdentifier = new WMultiPartIdentifier(new Identifier {Value = "sink"})
         }
     };
     _tempTableName = tempTableName;
     node.Accept(this);
     sinkTable = _sinkTable;
     edgeProperties = _edgeProperties;
     return _result;
 }
コード例 #17
0
ファイル: WSql.cs プロジェクト: champmit/GraphView
 internal void UpdateTokenInfo(WSqlFragment fragment)
 {
     if (fragment == null)
         return;
     UpdateTokenInfo(fragment.FirstTokenIndex, fragment.LastTokenIndex);
 }
コード例 #18
0
 public void Invoke(WSqlFragment queryBlock, Dictionary <Tuple <string, string>, Tuple <string, string> > map)
 {
     this.Map = map;
     queryBlock.Accept(this);
 }
コード例 #19
0
 public void Invoke(WSqlFragment queryBlock, Dictionary <WColumnReferenceExpression, string> map)
 {
     this.map = map;
     queryBlock.Accept(this);
 }
コード例 #20
0
 public virtual void Visit(WSqlFragment fragment)
 {
 }
コード例 #21
0
 public virtual void Visit(WSqlFragment fragment)
 {
 }
コード例 #22
0
 public void Invoke(WSqlFragment fragment)
 {
     fragment.Accept(this);
 }
コード例 #23
0
 public void Invoke(WSqlFragment node, ref IList <ParseError> errors)
 {
     _errors = errors;
     node.Accept(this);
 }
コード例 #24
0
 public void Invoke(WSqlFragment node)
 {
     node.Accept(this);
 }
コード例 #25
0
 public void Invoke(WSqlFragment node, Dictionary<string, List<string>> edgeTableReferenceDict)
 {
     _edgeTableReferenceDict = edgeTableReferenceDict;
     node.Accept(this);
 }
コード例 #26
0
 public void Invoke(WSqlFragment node)
 {
     node.Accept(this);
 }
コード例 #27
0
 public void Invoke(WSqlFragment node, ref IList<ParseError> errors)
 {
     _errors = errors;
     node.Accept(this);
 }