C# Class GraphView.TranslateDataModificationVisitor

Inheritance: WSqlFragmentVisitor
Show file Open project: Microsoft/GraphView Class Usage Examples

Public Methods

Method Description
Invoke ( WSqlFragment fragment ) : void
TranslateDataModificationVisitor ( SqlTransaction tx ) : System
Visit ( WBeginEndBlockStatement node ) : void
Visit ( WProcedureStatement node ) : void
Visit ( WSqlBatch node ) : void

Private Methods

Method Description
CheckInsertEdgeValidity ( string tableSchema, string sourceTableName, string columnName, string sinkTableName, bool &hasReversedEdge ) : void
ConstructDeleteEdgeSelect ( WSelectQueryBlock node, WEdgeColumnReferenceExpression edgeCol, string tempTableName, WTableReference &sinkTable, WTableReference &sourceTable, bool &hasReversedEdge ) : WMultiCommonTableExpression
ConstructReversedMatchClause ( WSelectQueryBlock node, WSqlTableContext context ) : WMatchClause
Translate ( IList statements ) : List
TranslateEdgeDelete ( WDeleteEdgeSpecification node, List res ) : void
TranslateEdgeInsert ( WInsertEdgeSpecification node, List res ) : void

Translates insert edge statement into update statement. Uses common table expression to record the inserting adjacency-list, then inserts result into a table variable with soucrc id as its primary to ensure the order, finally update node tables.

TranslateNodeDelete ( WDeleteNodeSpecification node, List res ) : void

Method Details

Invoke() public method

public Invoke ( WSqlFragment fragment ) : void
fragment WSqlFragment
return void

TranslateDataModificationVisitor() public method

public TranslateDataModificationVisitor ( SqlTransaction tx ) : System
tx SqlTransaction
return System

Visit() public method

public Visit ( WBeginEndBlockStatement node ) : void
node WBeginEndBlockStatement
return void

Visit() public method

public Visit ( WProcedureStatement node ) : void
node WProcedureStatement
return void

Visit() public method

public Visit ( WSqlBatch node ) : void
node WSqlBatch
return void