/// <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) { }
/// <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; }
/// <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) { }
/// <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) { }
/// <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; } }
/// <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) { }
/// <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; }
/// <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; }