01: /*
02:
03: Derby - Class org.apache.derby.impl.store.access.btree.index.B2ICostController
04:
05: Licensed to the Apache Software Foundation (ASF) under one or more
06: contributor license agreements. See the NOTICE file distributed with
07: this work for additional information regarding copyright ownership.
08: The ASF licenses this file to you under the Apache License, Version 2.0
09: (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.impl.store.access.btree.index;
23:
24: import java.io.IOException;
25: import java.util.Properties;
26: import org.apache.derby.iapi.services.sanity.SanityManager;
27: import org.apache.derby.iapi.error.StandardException;
28: import org.apache.derby.iapi.store.access.conglomerate.Conglomerate;
29: import org.apache.derby.iapi.store.access.conglomerate.TransactionManager;
30: import org.apache.derby.iapi.store.access.ConglomerateController;
31: import org.apache.derby.iapi.store.access.Qualifier;
32: import org.apache.derby.iapi.types.RowLocation;
33: import org.apache.derby.iapi.store.access.ScanController;
34:
35: import org.apache.derby.iapi.store.raw.Transaction;
36:
37: import org.apache.derby.impl.store.access.btree.BTreeCostController;
38:
39: /**
40: * Controller used to provide cost estimates to optimizer about secondary index
41: * data access.
42: *
43: * Implements the StoreCostController interface for the B-Tree index
44: * implementation. The primary use of this interface is to provide costs
45: * used by the query optimizer to use when choosing query plans. Provides
46: * costs of things like fetch one row, how many rows in conglomerate, how
47: * many rows between these 2 keys.
48: *
49: * Note most work of this class is inherited from the generic btree
50: * implementation. This class initializes the top level object and deals with
51: * locking information specific to a secondary index implementation of a btree.
52: */
53: public class B2ICostController extends BTreeCostController {
54: /*
55: ** Fields of B2IController.
56: */
57:
58: /*
59: ** Methods of B2IController.
60: */
61:
62: B2ICostController() {
63: // Perform the generic b-tree construction.
64: super ();
65: }
66:
67: void init(TransactionManager xact_manager, B2I conglomerate,
68: Transaction rawtran) throws StandardException {
69: // Do generic b-tree initialization.
70: super.init(xact_manager, conglomerate, rawtran);
71:
72: if (SanityManager.DEBUG)
73: SanityManager.ASSERT(conglomerate != null);
74: }
75: }
|