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