KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > derby > iapi > sql > compile > AccessPath


1 /*
2
3    Derby - Class org.apache.derby.iapi.sql.compile.AccessPath
4
5    Licensed to the Apache Software Foundation (ASF) under one or more
6    contributor license agreements. See the NOTICE file distributed with
7    this work for additional information regarding copyright ownership.
8    The ASF licenses this file to you under the Apache License, Version 2.0
9    (the "License"); you may not use this file except in compliance with
10    the License. You may obtain a copy of the License at
11
12       http://www.apache.org/licenses/LICENSE-2.0
13
14    Unless required by applicable law or agreed to in writing, software
15    distributed under the License is distributed on an "AS IS" BASIS,
16    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17    See the License for the specific language governing permissions and
18    limitations under the License.
19
20  */

21
22 package org.apache.derby.iapi.sql.compile;
23
24 import org.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor;
25 import org.apache.derby.iapi.sql.dictionary.TableDescriptor;
26 import org.apache.derby.iapi.sql.dictionary.DataDictionary;
27 import org.apache.derby.iapi.error.StandardException;
28
29 /**
30  * AccessPath represents a proposed access path for an Optimizable.
31  * An Optimizable may have more than one proposed AccessPath.
32  */

33
34 public interface AccessPath {
35     /**
36      * Set the conglomerate descriptor for this access path.
37      *
38      * @param cd A ConglomerateDescriptor
39      */

40     void setConglomerateDescriptor(ConglomerateDescriptor cd);
41
42     /**
43      * Get whatever was last set as the conglomerate descriptor.
44      * Returns null if nothing was set since the last call to startOptimizing()
45      */

46     ConglomerateDescriptor getConglomerateDescriptor();
47
48     /**
49      * Set the given cost estimate in this AccessPath. Generally, this will
50      * be the CostEstimate for the plan currently under consideration.
51      */

52     public void setCostEstimate(CostEstimate costEstimate);
53
54     /**
55      * Get the cost estimate for this AccessPath. This is the last one
56      * set by setCostEstimate.
57      */

58     public CostEstimate getCostEstimate();
59
60     /**
61      * Set whether or not to consider a covering index scan on the optimizable.
62      */

63     public void setCoveringIndexScan(boolean coveringIndexScan);
64
65     /**
66      * Return whether or not the optimizer is considering a covering index
67      * scan on this AccessPath.
68      *
69      * @return boolean Whether or not the optimizer chose a covering
70      * index scan.
71      */

72     public boolean getCoveringIndexScan();
73
74     /**
75      * Set whether or not to consider a non-matching index scan on this
76      * AccessPath.
77      */

78     public void setNonMatchingIndexScan(boolean nonMatchingIndexScan);
79
80     /**
81      * Return whether or not the optimizer is considering a non-matching
82      * index scan on this AccessPath. We expect to call this during
83      * generation, after access path selection is complete.
84      *
85      * @return boolean Whether or not the optimizer is considering
86      * a non-matching index scan.
87      */

88     public boolean getNonMatchingIndexScan();
89
90     /**
91      * Remember the given join strategy
92      *
93      * @param joinStrategy The best join strategy
94      */

95     public void setJoinStrategy(JoinStrategy joinStrategy);
96
97     /**
98      * Get the join strategy, as set by setJoinStrategy().
99      */

100     public JoinStrategy getJoinStrategy();
101
102     /**
103      * Set the lock mode
104      */

105     public void setLockMode(int lockMode);
106
107     /**
108      * Get the lock mode, as last set in setLockMode().
109      */

110     public int getLockMode();
111
112     /**
113      * Copy all information from the given AccessPath to this one.
114      */

115     public void copy(AccessPath copyFrom);
116
117     /**
118      * Get the optimizer associated with this access path.
119      *
120      * @return The optimizer associated with this access path.
121      */

122     public Optimizer getOptimizer();
123     
124     /**
125      * Sets the "name" of the access path. if the access path represents an
126      * index then set the name to the name of the index. if it is an index
127      * created for a constraint, use the constraint name. This is called only
128      * for base tables.
129      *
130      * @param td TableDescriptor of the base table.
131      * @param dd Datadictionary.
132      *
133      * @exception StandardException on error.
134      */

135     public void initializeAccessPathName(DataDictionary dd, TableDescriptor td)
136         throws StandardException;
137 }
138
Popular Tags