예제 #1
0
        internal override GraphViewExecutionOperator Compile(QueryCompilationContext context, GraphViewConnection dbConnection)
        {
            var nodeIdParameter = Parameters[0] as WColumnReferenceExpression;
            var nodeIdIndex     = context.LocateColumnReference(nodeIdParameter);

            var dropNodeOp = new DropNodeOperator(context.CurrentExecutionOperator, dbConnection, nodeIdIndex);

            context.CurrentExecutionOperator = dropNodeOp;

            return(dropNodeOp);
        }
        private void DropVertex(VertexField vertexField)
        {
            RawRecord record = new RawRecord();

            record.Append(new StringField(vertexField.VertexId));  // nodeIdIndex
            DropNodeOperator op = new DropNodeOperator(this.dummyInputOp, this.connection, 0);

            op.DataModify(record);

            // Now VertexCacheObject has been updated (in DataModify)
        }
예제 #3
0
        internal GraphViewExecutionOperator Compile2(QueryCompilationContext context, GraphViewConnection dbConnection)
        {
            WColumnReferenceExpression dropTargetParameter = Parameters[0] as WColumnReferenceExpression;

            Debug.Assert(dropTargetParameter != null, "dropTargetParameter != null");
            int dropTargetIndex = context.LocateColumnReference(dropTargetParameter);

            //
            // A new DropOperator which drops target based on its runtime type
            //
            DropNodeOperator dropOp = new DropNodeOperator(context.CurrentExecutionOperator, dbConnection, dropTargetIndex);

            context.CurrentExecutionOperator = dropOp;

            return(dropOp);
        }