All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.ignite.internal.table.TableViewInternal Maven / Gradle / Ivy

The newest version!
/*
 * 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.ignite.internal.table;

import org.apache.ignite.internal.schema.ColumnsExtractor;
import org.apache.ignite.internal.schema.SchemaRegistry;
import org.apache.ignite.internal.storage.index.StorageHashIndexDescriptor;
import org.apache.ignite.internal.storage.index.StorageSortedIndexDescriptor;
import org.apache.ignite.internal.table.distributed.PartitionSet;
import org.apache.ignite.table.Table;
import org.apache.ignite.table.Tuple;
import org.apache.ignite.table.mapper.Mapper;

/** Internal table view interface. */
public interface TableViewInternal extends Table {
    /**
     * Gets a table id.
     *
     * @return Table id as UUID.
     */
    int tableId();

    /** Returns an ID of a primary index, {@code -1} if not set. */
    int pkId();

    /**
     * Gets an internal table instance this view represents.
     *
     * @return Internal table instance.
     */
    InternalTable internalTable();

    /**
     * Gets a schema view for the table.
     *
     * @return Schema view.
     */
    SchemaRegistry schemaView();

    /**
     * Sets a schema view for the table.
     *
     * @param schemaReg Schema view.
     */
    void schemaView(SchemaRegistry schemaReg);

    /**
     * Returns a partition ID for a key tuple.
     *
     * @param key The tuple.
     * @return The partition ID.
     */
    int partitionId(Tuple key);

    /**
     * Returns a partition ID for a key.
     *
     * @param key The key.
     * @param keyMapper Key mapper
     * @return The partition ID.
     */
     int partitionId(K key, Mapper keyMapper);

    /**
     * Registers the index with given id in a table.
     *
     * @param indexDescriptor Index descriptor.
     * @param unique A flag indicating whether the given index unique or not.
     * @param searchRowResolver Function which converts given table row to an index key.
     */
    void registerHashIndex(
            StorageHashIndexDescriptor indexDescriptor,
            boolean unique,
            ColumnsExtractor searchRowResolver,
            PartitionSet partitions
    );

    /**
     * Registers the index with given id in a table.
     *
     * @param indexDescriptor Index descriptor.
     * @param unique A flag indicating whether the given index unique or not.
     * @param searchRowResolver Function which converts given table row to an index key.
     */
    void registerSortedIndex(
            StorageSortedIndexDescriptor indexDescriptor,
            boolean unique,
            ColumnsExtractor searchRowResolver,
            PartitionSet partitions
    );

    /**
     * Unregisters given index from table.
     *
     * @param indexId An index id to unregister.
     */
    void unregisterIndex(int indexId);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy