Beispiel #1
0
        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);
 }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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);
        }