public override EventAdvancedIndexProvisionCompileTime ValidateEventIndex( string indexName, string indexTypeName, ExprNode[] columns, ExprNode[] parameters) { ValidateColumnCount(4, indexTypeName, columns.Length); ValidateColumnReturnTypeNumber(indexTypeName, 0, columns[0], AdvancedIndexQuadTreeConstants.COL_X); ValidateColumnReturnTypeNumber(indexTypeName, 1, columns[1], AdvancedIndexQuadTreeConstants.COL_Y); ValidateColumnReturnTypeNumber(indexTypeName, 2, columns[2], AdvancedIndexQuadTreeConstants.COL_WIDTH); ValidateColumnReturnTypeNumber(indexTypeName, 3, columns[3], AdvancedIndexQuadTreeConstants.COL_HEIGHT); ValidateParameters(indexTypeName, parameters); var indexDesc = new AdvancedIndexDescWExpr(indexTypeName, columns); var xEval = indexDesc.IndexedExpressions[0].Forge; var yEval = indexDesc.IndexedExpressions[1].Forge; var widthEval = indexDesc.IndexedExpressions[2].Forge; var heightEval = indexDesc.IndexedExpressions[3].Forge; var indexStatementConfigs = new AdvancedIndexConfigStatementMXCIFQuadtreeForge(xEval, yEval, widthEval, heightEval); return new EventAdvancedIndexProvisionCompileTime( indexDesc, parameters, EventAdvancedIndexFactoryForgeQuadTreeMXCIFForge.INSTANCE, indexStatementConfigs); }
public EventAdvancedIndexProvisionCompileTime( AdvancedIndexDescWExpr indexDesc, ExprNode[] parameters, EventAdvancedIndexFactoryForge factory, EventAdvancedIndexConfigStatementForge configStatement) { IndexDesc = indexDesc; Parameters = parameters; Factory = factory; ConfigStatement = configStatement; }
public AdvancedIndexConfigContextPartition ConfigureContextPartition( EventType eventType, AdvancedIndexDescWExpr indexDesc, ExprEvaluator[] parameters, ExprEvaluatorContext exprEvaluatorContext, EventTableOrganization organization, EventAdvancedIndexConfigStatementForge advancedIndexConfigStatement) { return AdvancedIndexFactoryProviderQuadTree.ConfigureQuadTree( organization.IndexName, parameters, exprEvaluatorContext); }
public EventAdvancedIndexProvisionCompileTime ToCompileTime( EventType eventTypeIndexed, StatementRawInfo statementRawInfo, StatementCompileTimeServices services) { ExprNode[] indexedExpr; if (IndexExpressionsOpt != null) { indexedExpr = IndexExpressionsOpt; } else { if (IsIndexExpressionsAllProps) { indexedExpr = new ExprNode[IndexProperties.Length]; for (var i = 0; i < IndexProperties.Length; i++) { indexedExpr[i] = new ExprIdentNodeImpl(eventTypeIndexed, IndexProperties[i], 0); } } else { indexedExpr = new ExprNode[IndexProperties.Length]; for (var i = 0; i < IndexProperties.Length; i++) { indexedExpr[i] = services.CompilerServices.CompileExpression(IndexExpressionTexts[i], services); indexedExpr[i] = EPLValidationUtil.ValidateSimpleGetSubtree( ExprNodeOrigin.CREATEINDEXCOLUMN, indexedExpr[i], eventTypeIndexed, false, statementRawInfo, services); } } } var desc = new AdvancedIndexDescWExpr(IndexTypeName, indexedExpr); ExprNode[] parameters; if (ParameterExpressionsOpt != null) { parameters = ParameterExpressionsOpt; } else { parameters = new ExprNode[ParameterExpressionTexts.Length]; for (var i = 0; i < ParameterExpressionTexts.Length; i++) { parameters[i] = services.CompilerServices.CompileExpression(ParameterExpressionTexts[i], services); } } return new EventAdvancedIndexProvisionCompileTime( desc, parameters, Factory.Forge, Factory.ToConfigStatement(indexedExpr)); }
public override EventAdvancedIndexProvisionCompileTime ValidateEventIndex( string indexName, string indexTypeName, ExprNode[] columns, ExprNode[] parameters) { ValidateColumnCount(2, indexTypeName, columns.Length); ValidateColumnReturnTypeNumber(indexTypeName, 0, columns[0], AdvancedIndexQuadTreeConstants.COL_X); ValidateColumnReturnTypeNumber(indexTypeName, 1, columns[1], AdvancedIndexQuadTreeConstants.COL_Y); ValidateParameters(indexTypeName, parameters); var indexDesc = new AdvancedIndexDescWExpr(indexTypeName, columns); var xEval = indexDesc.IndexedExpressions[0].Forge; var yEval = indexDesc.IndexedExpressions[1].Forge; var indexStatementConfigs = new AdvancedIndexConfigStatementPointRegionQuadtreeForge(xEval, yEval); return new EventAdvancedIndexProvisionCompileTime( indexDesc, parameters, EventAdvancedIndexFactoryForgeQuadTreePointRegionForge.INSTANCE, indexStatementConfigs); }