You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2013/03/05 20:50:34 UTC

svn commit: r1452963 - in /incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter: VXQueryOptimizationContext.java rules/propagationpolicies/cardinality/ rules/propagationpolicies/cardinality/Cardinality.java

Author: prestonc
Date: Tue Mar  5 19:50:34 2013
New Revision: 1452963

URL: http://svn.apache.org/r1452963
Log:
Added Cardinality property that can be tracked in the VXQueryOptimizationContext for each operator.

Added:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/propagationpolicies/cardinality/
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/propagationpolicies/cardinality/Cardinality.java   (with props)
Modified:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/VXQueryOptimizationContext.java

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/VXQueryOptimizationContext.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/VXQueryOptimizationContext.java?rev=1452963&r1=1452962&r2=1452963&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/VXQueryOptimizationContext.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/VXQueryOptimizationContext.java Tue Mar  5 19:50:34 2013
@@ -17,6 +17,7 @@ package org.apache.vxquery.compiler.rewr
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.vxquery.compiler.rewriter.rules.propagationpolicies.cardinality.Cardinality;
 import org.apache.vxquery.compiler.rewriter.rules.propagationpolicies.documentorder.DocumentOrder;
 import org.apache.vxquery.compiler.rewriter.rules.propagationpolicies.uniquenodes.UniqueNodes;
 
@@ -32,6 +33,7 @@ public class VXQueryOptimizationContext 
 
     private final Map<ILogicalOperator, HashMap<Integer, DocumentOrder>> documentOrderOperatorVariableMap = new HashMap<ILogicalOperator, HashMap<Integer, DocumentOrder>>();
     private final Map<ILogicalOperator, HashMap<Integer, UniqueNodes>> uniqueNodesOperatorVariableMap = new HashMap<ILogicalOperator, HashMap<Integer, UniqueNodes>>();
+    private final Map<ILogicalOperator, Cardinality> cardinalityOperatorMap = new HashMap<ILogicalOperator, Cardinality>();
 
     public VXQueryOptimizationContext(int varCounter, int frameSize,
             IExpressionEvalSizeComputer expressionEvalSizeComputer,
@@ -42,8 +44,24 @@ public class VXQueryOptimizationContext 
                 expressionTypeComputer, nullableTypeComputer, physicalOptimizationConfig);
     }
 
+    public Cardinality getCardinalityOperatorMap(ILogicalOperator op) {
+        if (cardinalityOperatorMap.containsKey(op)) {
+            return cardinalityOperatorMap.get(op);
+        } else {
+            return null;
+        }
+    }
+
+    public void putCardinalityOperatorMap(ILogicalOperator op, Cardinality cardinality) {
+        this.cardinalityOperatorMap.put(op, cardinality);
+    }
+
     public HashMap<Integer, DocumentOrder> getDocumentOrderOperatorVariableMap(ILogicalOperator op) {
-        return documentOrderOperatorVariableMap.get(op);
+        if (documentOrderOperatorVariableMap.containsKey(op)) {
+            return documentOrderOperatorVariableMap.get(op);
+        } else {
+            return null;
+        }
     }
 
     public void putDocumentOrderOperatorVariableMap(ILogicalOperator op, HashMap<Integer, DocumentOrder> variableMap) {
@@ -51,7 +69,11 @@ public class VXQueryOptimizationContext 
     }
 
     public HashMap<Integer, UniqueNodes> getUniqueNodesOperatorVariableMap(ILogicalOperator op) {
-        return uniqueNodesOperatorVariableMap.get(op);
+        if (uniqueNodesOperatorVariableMap.containsKey(op)) {
+            return uniqueNodesOperatorVariableMap.get(op);
+        } else {
+            return null;
+        }
     }
 
     public void putUniqueNodesOperatorVariableMap(ILogicalOperator op, HashMap<Integer, UniqueNodes> variableMap) {

Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/propagationpolicies/cardinality/Cardinality.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/propagationpolicies/cardinality/Cardinality.java?rev=1452963&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/propagationpolicies/cardinality/Cardinality.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/propagationpolicies/cardinality/Cardinality.java Tue Mar  5 19:50:34 2013
@@ -0,0 +1,24 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.vxquery.compiler.rewriter.rules.propagationpolicies.cardinality;
+
+public enum Cardinality {
+
+    ONE,
+    MANY;
+
+}
\ No newline at end of file

Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/propagationpolicies/cardinality/Cardinality.java
------------------------------------------------------------------------------
    svn:eol-style = native