예제 #1
0
 /// <summary>
 /// Creates a new comparative operator
 /// </summary>
 /// <param name="myProperty">The interesting property</param>
 /// <param name="myConstant">The constant value</param>
 /// <param name="myIsLongrunning">Determines whether it is anticipated that the request could take longer</param>
 /// <param name="mySecurityToken">The current security token</param>
 /// <param name="myTransactionToken">The current transaction token</param>
 /// <param name="myVertexStore">The vertex store that is needed to load the vertices</param>
 protected AComparativeOperator(QueryPlanProperty myProperty, ILiteralExpression myConstant, Boolean myIsLongrunning, SecurityToken mySecurityToken, Int64 myTransactionToken, IVertexStore myVertexStore)
 {
     _property = myProperty;
     _constant = myConstant;
     _isLongrunning = myIsLongrunning;
     _vertexStore = myVertexStore;
     _securityToken = mySecurityToken;
     _transactionToken = myTransactionToken;
 }
 /// <summary>
 /// Creates a new queryplan that processes a less or equals than operation using indices
 /// </summary>
 /// <param name="mySecurityToken">The current security token</param>
 /// <param name="myTransactionToken">The current transaction token</param>
 /// <param name="myProperty">The interesting property</param>
 /// <param name="myConstant">The constant value</param>
 /// <param name="myVertexStore">The vertex store that is needed to load the vertices</param>
 /// <param name="myIsLongrunning">Determines whether it is anticipated that the request could take longer</param>
 /// <param name="myExpressionIndex">The name of the index which is used to resolve the expression</param>
 public QueryPlanLessOrEqualsThanWithIndex(SecurityToken mySecurityToken, 
                                             Int64 myTransactionToken, 
                                             QueryPlanProperty myProperty, 
                                             ILiteralExpression myConstant, 
                                             IVertexStore myVertexStore, 
                                             Boolean myIsLongrunning, 
                                             IIndexManager myIndexManager,
                                             String myExpressionIndex = null)
     : base(myProperty, 
             myConstant, 
             myIsLongrunning, 
             mySecurityToken, 
             myTransactionToken, 
             myIndexManager, 
             myVertexStore,
             myExpressionIndex)
 { }
예제 #3
0
 /// <summary>
 /// Creates a new queryplan that processes a like operation using indices
 /// </summary>
 /// <param name="mySecurityToken">The current security token</param>
 /// <param name="myTransactionToken">The current transaction token</param>
 /// <param name="myProperty">The interesting property</param>
 /// <param name="myConstant">The constant value</param>
 /// <param name="myVertexStore">The vertex store that is needed to load the vertices</param>
 /// <param name="myIsLongrunning">Determines whether it is anticipated that the request could take longer</param>
 /// <param name="myExpressionIndex">The index name which is used for resolving the expression</param>
 public QueryPlanLikeWithIndex(SecurityToken mySecurityToken,
                               Int64 myTransactionToken,
                               QueryPlanProperty myProperty,
                               ILiteralExpression myConstant,
                               IVertexStore myVertexStore,
                               Boolean myIsLongrunning,
                               IIndexManager myIndexManager,
                               String myExpressionIndex = null)
     : base(myProperty,
            myConstant,
            myIsLongrunning,
            mySecurityToken,
            myTransactionToken,
            myIndexManager,
            myVertexStore,
            myExpressionIndex)
 {
 }
 /// <summary>
 /// Creates a new comparative index operator
 /// </summary>
 /// <param name="myProperty">The interesting property</param>
 /// <param name="myConstant">The constant value</param>
 /// <param name="myIsLongrunning">Determines whether it is anticipated that the request could take longer</param>
 /// <param name="mySecurityToken">The current security token</param>
 /// <param name="myTransactionToken">The current transaction token</param>
 /// <param name="myIndexManager">The index manager is needed to get the property related indices</param>
 /// <param name="myVertexStore">The vertex store that is needed to load the vertices</param>
 protected AComparativeIndexOperator(QueryPlanProperty myProperty,
                                     ILiteralExpression myConstant,
                                     Boolean myIsLongrunning,
                                     SecurityToken mySecurityToken,
                                     Int64 myTransactionToken,
                                     IIndexManager myIndexManager,
                                     IVertexStore myVertexStore,
                                     String myExpressionIndex = null)
 {
     _property         = myProperty;
     _constant         = myConstant;
     _isLongrunning    = myIsLongrunning;
     _vertexStore      = myVertexStore;
     _indexManager     = myIndexManager;
     _securityToken    = mySecurityToken;
     _transactionToken = myTransactionToken;
     _expressionIndex  = myExpressionIndex;
 }
예제 #5
0
 /// <summary>
 /// Creates a new queryplan that processes a like operation without any index
 /// </summary>
 /// <param name="mySecurityToken">The current security token</param>
 /// <param name="myTransactionToken">The current transaction token</param>
 /// <param name="myProperty">The interesting property</param>
 /// <param name="myConstant">The constant value</param>
 /// <param name="myVertexStore">The vertex store that is needed to load the vertices</param>
 /// <param name="myIsLongrunning">Determines whether it is anticipated that the request could take longer</param>
 public QueryPlanLikeWithoutIndex(SecurityToken mySecurityToken, Int64 myTransactionToken, QueryPlanProperty myProperty, ILiteralExpression myConstant, IVertexStore myVertexStore, Boolean myIsLongrunning)
     : base(myProperty, myConstant, myIsLongrunning, mySecurityToken, myTransactionToken, myVertexStore)            
 {
 }
예제 #6
0
 /// <summary>
 /// Creates a new queryplan that processes a in range operation using indices
 /// </summary>
 /// <param name="mySecurityToken">The current security token</param>
 /// <param name="myTransactionToken">The current transaction token</param>
 /// <param name="myProperty">The interesting property</param>
 /// <param name="myConstant">The constant value</param>
 /// <param name="myVertexStore">The vertex store that is needed to load the vertices</param>
 /// <param name="myIsLongrunning">Determines whether it is anticipated that the request could take longer</param>
 /// <param name="myExpressionIndex">The index name which is used for resolving the expression</param>
 public QueryPlanInRangeWithIndex(SecurityToken mySecurityToken, 
                                     Int64 myTransactionToken, 
                                     QueryPlanProperty myProperty, 
                                     RangeLiteralExpression myConstant, 
                                     IVertexStore myVertexStore, 
                                     Boolean myIsLongrunning, 
                                     IIndexManager myIndexManager,
                                     String myExpressionIndex = null)
 {
     _securityToken = mySecurityToken;
     _transactionToken = myTransactionToken;
     _property = myProperty;
     _constant = myConstant;
     _vertexStore = myVertexStore;
     _isLongrunning = myIsLongrunning;
     _expressionIndex = myExpressionIndex;
 }
 /// <summary>
 /// Creates a new queryplan that processes a less or equals than operation without any index
 /// </summary>
 /// <param name="mySecurityToken">The current security token</param>
 /// <param name="myTransactionToken">The current transaction token</param>
 /// <param name="myProperty">The interesting property</param>
 /// <param name="myConstant">The constant value</param>
 /// <param name="myVertexStore">The vertex store that is needed to load the vertices</param>
 /// <param name="myIsLongrunning">Determines whether it is anticipated that the request could take longer</param>
 public QueryPlanLessOrEqualsThanWithoutIndex(SecurityToken mySecurityToken, Int64 myTransactionToken, QueryPlanProperty myProperty, ILiteralExpression myConstant, IVertexStore myVertexStore, Boolean myIsLongrunning)
     : base(myProperty, myConstant, myIsLongrunning, mySecurityToken, myTransactionToken, myVertexStore)
 {
 }
예제 #8
0
        /// <summary>
        /// This method extracts the property and the constant out of a binary expression
        /// </summary>
        /// <param name="myBinaryExpression">The binary expression</param>
        /// <param name="myTransactionToken">The current transaction token</param>
        /// <param name="mySecurityToken">The current security token</param>
        /// <param name="myProperty">The property out parameter</param>
        /// <param name="myConstant">The constant out parameter</param>
        private void FindPropertyAndConstant(BinaryExpression myBinaryExpression, 
                                                Int64 myTransactionToken, 
                                                SecurityToken mySecurityToken, 
                                                out QueryPlanProperty myProperty, 
                                                out ILiteralExpression myConstant)
        {
            if (myBinaryExpression.Left is PropertyExpression)
            {
                myProperty = GenerateQueryPlanProperty((PropertyExpression)myBinaryExpression.Left, 
                                                        myTransactionToken, 
                                                        mySecurityToken);

                myConstant = (ILiteralExpression)myBinaryExpression.Right;
            }
            else
            {
                myProperty = GenerateQueryPlanProperty((PropertyExpression)myBinaryExpression.Right, 
                                                        myTransactionToken, 
                                                        mySecurityToken);

                myConstant = (ILiteralExpression)myBinaryExpression.Left;
            }
        }
예제 #9
0
 /// <summary>
 /// Creates a new queryplan that processes a less than operation using indices
 /// </summary>
 /// <param name="mySecurityToken">The current security token</param>
 /// <param name="myTransactionToken">The current transaction token</param>
 /// <param name="myProperty">The interesting property</param>
 /// <param name="myConstant">The constant value</param>
 /// <param name="myVertexStore">The vertex store that is needed to load the vertices</param>
 /// <param name="myIsLongrunning">Determines whether it is anticipated that the request could take longer</param>
 public QueryPlanLessThanWithIndex(SecurityToken mySecurityToken, TransactionToken myTransactionToken, QueryPlanProperty myProperty, ILiteralExpression myConstant, IVertexStore myVertexStore, Boolean myIsLongrunning, IIndexManager myIndexManager)
     : base(myProperty, myConstant, myIsLongrunning, mySecurityToken, myTransactionToken, myIndexManager, myVertexStore)
 {
 }
예제 #10
0
 /// <summary>
 /// Creates a new comparative index operator
 /// </summary>
 /// <param name="myProperty">The interesting property</param>
 /// <param name="myConstant">The constant value</param>
 /// <param name="myIsLongrunning">Determines whether it is anticipated that the request could take longer</param>
 /// <param name="mySecurityToken">The current security token</param>
 /// <param name="myTransactionToken">The current transaction token</param>
 /// <param name="myIndexManager">The index manager is needed to get the property related indices</param>
 /// <param name="myVertexStore">The vertex store that is needed to load the vertices</param>
 protected AComparativeIndexOperator(QueryPlanProperty myProperty, 
                                     ILiteralExpression myConstant, 
                                     Boolean myIsLongrunning, 
                                     SecurityToken mySecurityToken, 
                                     Int64 myTransactionToken, 
                                     IIndexManager myIndexManager, 
                                     IVertexStore myVertexStore,
                                     String myExpressionIndex = null)
 {
     _property = myProperty;
     _constant = myConstant;
     _isLongrunning = myIsLongrunning;
     _vertexStore = myVertexStore;
     _indexManager = myIndexManager;
     _securityToken = mySecurityToken;
     _transactionToken = myTransactionToken;
     _expressionIndex = myExpressionIndex;
 }
예제 #11
0
 /// <summary>
 /// Creates a new queryplan that processes a in range operation without any index
 /// </summary>
 /// <param name="mySecurityToken">The current security token</param>
 /// <param name="myTransactionToken">The current transaction token</param>
 /// <param name="myProperty">The interesting property</param>
 /// <param name="myConstant">The constant value</param>
 /// <param name="myVertexStore">The vertex store that is needed to load the vertices</param>
 /// <param name="myIsLongrunning">Determines whether it is anticipated that the request could take longer</param>
 public QueryPlanInRangeWithoutIndex(SecurityToken mySecurityToken, TransactionToken myTransactionToken, QueryPlanProperty myProperty, RangeLiteralExpression myConstant, IVertexStore myVertexStore, Boolean myIsLongrunning)
     : base(myProperty, null, myIsLongrunning, mySecurityToken, myTransactionToken, myVertexStore)
 {
     _constantRange = myConstant;
 }
예제 #12
0
 /// <summary>
 /// Creates a new queryplan that processes a in range operation without any index
 /// </summary>
 /// <param name="mySecurityToken">The current security token</param>
 /// <param name="myTransactionToken">The current transaction token</param>
 /// <param name="myProperty">The interesting property</param>
 /// <param name="myConstant">The constant value</param>
 /// <param name="myVertexStore">The vertex store that is needed to load the vertices</param>
 /// <param name="myIsLongrunning">Determines whether it is anticipated that the request could take longer</param>
 public QueryPlanInRangeWithoutIndex(SecurityToken mySecurityToken, Int64 myTransactionToken, QueryPlanProperty myProperty, RangeLiteralExpression myConstant, IVertexStore myVertexStore, Boolean myIsLongrunning)
     : base(myProperty, null, myIsLongrunning, mySecurityToken, myTransactionToken, myVertexStore)
 {
     _constantRange = myConstant;
 }