⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conglomerate.java

📁 derby database source code.good for you.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*   Derby - Class org.apache.derby.iapi.store.access.conglomerate.Conglomerate   Copyright 1997, 2004 The Apache Software Foundation or its licensors, as applicable.   Licensed 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.derby.iapi.store.access.conglomerate;import org.apache.derby.iapi.error.StandardException;import org.apache.derby.iapi.store.access.ConglomerateController;import org.apache.derby.iapi.store.access.DynamicCompiledOpenConglomInfo;import org.apache.derby.iapi.store.access.Qualifier;import org.apache.derby.iapi.store.access.RowLocationRetRowSource;import org.apache.derby.iapi.store.access.StoreCostController;import org.apache.derby.iapi.store.access.StaticCompiledOpenConglomInfo;import org.apache.derby.iapi.store.access.TransactionController;import org.apache.derby.iapi.store.raw.ContainerKey;import org.apache.derby.iapi.store.raw.LockingPolicy;import org.apache.derby.iapi.store.raw.Transaction;import org.apache.derby.iapi.types.DataValueDescriptor;import org.apache.derby.iapi.services.io.Storable;import org.apache.derby.iapi.services.io.FormatableBitSet;/**A conglomerate is an abstract storage structure (theycorrespond to access methods).  The Conglomerate interfacecorresponds to a single instance of a conglomerate. Inother words, for each conglomerate in the system, therewill be one object implementing Conglomerate.<P>The Conglomerate interface is implemented by each access method.The implementation must maintain enough information to properlyopen the conglomerate and scans, and to drop the conglomerate.This information typically will include the id of the containeror containers in which the conglomerate is stored, and my alsoinclude property information.<P>Conglomerates are created by a conglomerate factory.  The accessmanager stores them in a directory (which is why they implementStorable).**/public interface Conglomerate extends Storable, DataValueDescriptor{    /**     * Add a column to the conglomerate.     * <p>     * This routine update's the in-memory object version of the      * Conglomerate to have one more column of the type described by the     * input template column.     *     * Note that not all conglomerates may support this feature.     * 	 * @param xact_manager     The TransactionController under which this      *                         operation takes place.     * @param column_id        The column number to add this column at.     * @param template_column  An instance of the column to be added to table.     *	 * @exception  StandardException  Standard exception policy.     **/	public void addColumn(    TransactionManager  xact_manager,    int                 column_id,    Storable            template_column)        throws StandardException;    /**     * Drop this conglomerate.     *	 * @exception  StandardException  Standard exception policy.     **/	void drop(TransactionManager  xact_manager)		throws StandardException;    /**     * Retrieve the maximum value row in an ordered conglomerate.     * <p>     * Returns true and fetches the rightmost row of an ordered conglomerate      * into "fetchRow" if there is at least one row in the conglomerate.  If     * there are no rows in the conglomerate it returns false.     * <p>     * Non-ordered conglomerates will not implement this interface, calls     * will generate a StandardException.     * <p>     * RESOLVE - this interface is temporary, long term equivalent (and more)      * functionality will be provided by the openBackwardScan() interface.       *	 * @param xact_manager    The TransactionController under which this      *                        operation takes place.     *     * @param rawtran         The raw store xact to associate all ops with.     *	 * @param conglomId       The identifier of the conglomerate	 *                        to open the scan for.     *	 * @param open_mode       Specifiy flags to control opening of table.       *                        OPENMODE_FORUPDATE - if set open the table for     *                        update otherwise open table shared.     * @param lock_level      One of (MODE_TABLE, MODE_RECORD, or MODE_NONE).     *     * @param locking_policy  The LockingPolicy to use to open the conglomerate.     *     * @param isolation_level The isolation level to lock the conglomerate at.     *                        One of (ISOLATION_READ_COMMITTED,      *                        ISOLATION_REPEATABLE_READ, or      *                        ISOLATION_SERIALIZABLE).     *	 * @param scanColumnList  A description of which columns to return from      *                        every fetch in the scan. fetchRow       *                        and scanColumnList work together     *                        to describe the row to be returned by the scan -      *                        see RowUtil for description of how these three      *                        parameters work together to describe a "row".     *     * @param fetchRow        The row to retrieve the maximum value into.     *	 * @return boolean indicating if a row was found and retrieved or not.     *	 * @exception  StandardException  Standard exception policy.     **/	boolean fetchMaxOnBTree(    TransactionManager      xact_manager,    Transaction             rawtran,    long                    conglomId,    int                     open_mode,    int                     lock_level,    LockingPolicy           locking_policy,    int                     isolation_level,    FormatableBitSet                 scanColumnList,    DataValueDescriptor[]   fetchRow)        throws StandardException;    /**     * Get the containerid of conglomerate.     * <p>     * Will have to change when a conglomerate could have more than one      * containerid.     *	 * @return The containerid.     *	 * @exception  StandardException  Standard exception policy.     **/    long getContainerid();    /**     * Get the id of the container of the conglomerate.     * <p>     * Will have to change when a conglomerate could have more than one      * container.  The ContainerKey is a combination of the container id     * and segment id.     *	 * @return The ContainerKey.     *	 * @exception  StandardException  Standard exception policy.     **/    ContainerKey getId();    /**     * Return static information about the conglomerate to be included in a     * a compiled plan.     * <p>     * The static info would be valid until any ddl was executed on the      * conglomid, and would be up to the caller to throw away when that      * happened.  This ties in with what language already does for other      * invalidation of static info.  The type of info in this would be      * containerid and array of format id's from which templates can be created.     * The info in this object is read only and can be shared among as many      * threads as necessary.     * <p>     *	 * @return The static compiled information.     *	 * @param tc        The TransactionController under which this operation      *                  takes place.     * @param conglomId The identifier of the conglomerate to open.     *	 * @exception  StandardException  Standard exception policy.     **/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -