org.apache.derby.iapi.sql.dictionary
Class ConglomerateDescriptor

java.lang.Object
  extended byorg.apache.derby.iapi.sql.dictionary.TupleDescriptor
      extended byorg.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor
All Implemented Interfaces:
Dependable, Provider, UniqueTupleDescriptor

public class ConglomerateDescriptor
extends TupleDescriptor
implements UniqueTupleDescriptor, Provider

The ConglomerateDescriptor class is used to get information about conglomerates for the purpose of optimization. NOTE: The language module does not have to know much about conglomerates with this architecture. To get the cost of using a conglomerate, all it has to do is pass the ConglomerateDescriptor to the access methods, along with the predicate. What the access methods need from a ConglomerateDescriptor remains to be seen.

Version:
0.1
Author:
Jeff Lichtman

Field Summary
(package private)  java.lang.String[] columnNames
           
(package private)  long conglomerateNumber
           
(package private)  boolean forConstraint
           
(package private)  boolean indexable
           
(package private)  IndexRowGenerator indexRowGenerator
           
(package private)  java.lang.String name
           
(package private)  UUID schemaID
           
(package private)  UUID tableID
           
(package private)  UUID uuid
           
 
Fields inherited from class org.apache.derby.iapi.sql.dictionary.TupleDescriptor
COLUMN_LIST, CONGLOMERATE_LIST, CONSTRAINT_LIST, TRIGGER_LIST
 
Fields inherited from interface org.apache.derby.catalog.Dependable
ALIAS, COLUMNS_IN_TABLE, CONGLOMERATE, CONSTRAINT, DEFAULT, FILE, HEAP, INDEX, PREPARED_STATEMENT, SCHEMA, STORED_PREPARED_STATEMENT, TABLE, TRIGGER, VIEW
 
Constructor Summary
(package private) ConglomerateDescriptor(DataDictionary dataDictionary, long conglomerateNumber, java.lang.String name, boolean indexable, IndexRowGenerator indexRowGenerator, boolean forConstraint, UUID uuid, UUID tableID, UUID schemaID)
          Constructor for a conglomerate descriptor.
 
Method Summary
 java.lang.String getClassType()
          Get the provider's type.
 java.lang.String[] getColumnNames()
          Get the column names for this conglomerate descriptor.
 java.lang.String getConglomerateName()
          Gets the name of the conglomerate.
 long getConglomerateNumber()
          Gets the number for the conglomerate.
 DependableFinder getDependableFinder()
          Get an object which can be written to disk and which, when read from disk, will find or reconstruct this in-memory Dependable.
 java.lang.String getDescriptorName()
           
 java.lang.String getDescriptorType()
          Each descriptor must identify itself with its type; i.e index, check constraint whatever.
 IndexRowGenerator getIndexDescriptor()
          Gets the index row generator for this conglomerate, null if the conglomerate is not an index.
 UUID getObjectID()
          Get the provider's UUID
 java.lang.String getObjectName()
          Return the name of this Provider.
 UUID getSchemaID()
          Gets the UUID for the schema that the conglomerate belongs to.
 UUID getTableID()
          Gets the UUID for the table that the conglomerate belongs to.
 UUID getUUID()
          Gets the UUID String for the conglomerate.
 boolean isConstraint()
          Tells whether the conglomerate is an index backing up a constraint.
 boolean isIndex()
          Tells whether the conglomerate can be used as an index.
 void setColumnNames(java.lang.String[] columnNames)
          Set the column names for this conglomerate descriptor.
 void setConglomerateName(java.lang.String newName)
          Set the name of the conglomerate.
 void setConglomerateNumber(long conglomerateNumber)
          Set the conglomerate number.
 java.lang.String toString()
          Convert the conglomerate descriptor to a String
 
Methods inherited from class org.apache.derby.iapi.sql.dictionary.TupleDescriptor
getColumnDependableFinder, getDataDictionary, getDependableFinder, isPersistent, setDataDictionary
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.derby.catalog.Dependable
isPersistent
 

Field Detail

conglomerateNumber

long conglomerateNumber

name

java.lang.String name

columnNames

java.lang.String[] columnNames

indexable

boolean indexable

forConstraint

boolean forConstraint

indexRowGenerator

IndexRowGenerator indexRowGenerator

uuid

UUID uuid

tableID

UUID tableID

schemaID

UUID schemaID
Constructor Detail

ConglomerateDescriptor

ConglomerateDescriptor(DataDictionary dataDictionary,
                       long conglomerateNumber,
                       java.lang.String name,
                       boolean indexable,
                       IndexRowGenerator indexRowGenerator,
                       boolean forConstraint,
                       UUID uuid,
                       UUID tableID,
                       UUID schemaID)
Constructor for a conglomerate descriptor.

Parameters:
dataDictionary - The data dictionary that this descriptor lives in
conglomerateNumber - The number for the conglomerate we're interested in
name - The name of the conglomerate, if any
indexable - TRUE means the conglomerate is indexable, FALSE means it isn't
forConstraint - TRUE means the conglomerate is an index backing up a constraint, FALSE means it isn't
uuid - UUID for this conglomerate
tableID - UUID for the table that this conglomerate belongs to
schemaID - UUID for the schema that this conglomerate belongs to
Method Detail

getConglomerateNumber

public long getConglomerateNumber()
Gets the number for the conglomerate.

Returns:
A long identifier for the conglomerate

setConglomerateNumber

public void setConglomerateNumber(long conglomerateNumber)
Set the conglomerate number. This is useful when swapping conglomerates, like for bulkInsert.

Parameters:
conglomerateNumber - The new conglomerate number.
Returns:
Nothing.

getUUID

public UUID getUUID()
Gets the UUID String for the conglomerate.

Specified by:
getUUID in interface UniqueTupleDescriptor
Returns:
The UUID String for the conglomerate

getTableID

public UUID getTableID()
Gets the UUID for the table that the conglomerate belongs to.

Returns:
The UUID String for the conglomerate

getSchemaID

public UUID getSchemaID()
Gets the UUID for the schema that the conglomerate belongs to.

Returns:
The UUID String for the schema that the conglomerate belongs to

isIndex

public boolean isIndex()
Tells whether the conglomerate can be used as an index.

Returns:
TRUE if the conglomerate can be used as an index, FALSE if not

isConstraint

public boolean isConstraint()
Tells whether the conglomerate is an index backing up a constraint.

Returns:
TRUE if the conglomerate is an index backing up a constraint, FALSE if not

getConglomerateName

public java.lang.String getConglomerateName()
Gets the name of the conglomerate. For heaps, this is null. For indexes, it is the index name.

Returns:
The name of the conglomerate, null if it's the heap for a table.

setConglomerateName

public void setConglomerateName(java.lang.String newName)
Set the name of the conglomerate. Used only by rename index.

Parameters:
newName - The new name of the conglomerate.

getIndexDescriptor

public IndexRowGenerator getIndexDescriptor()
Gets the index row generator for this conglomerate, null if the conglomerate is not an index.

Returns:
The index descriptor for this conglomerate, if any.

setColumnNames

public void setColumnNames(java.lang.String[] columnNames)
Set the column names for this conglomerate descriptor. This is useful for tracing the optimizer.

Parameters:
columnNames - 0-based array of column names.
Returns:
Nothing.

getColumnNames

public java.lang.String[] getColumnNames()
Get the column names for this conglomerate descriptor. This is useful for tracing the optimizer.

Returns:
the column names for the conglomerate descriptor.

getDependableFinder

public DependableFinder getDependableFinder()
Description copied from interface: Dependable
Get an object which can be written to disk and which, when read from disk, will find or reconstruct this in-memory Dependable.

Specified by:
getDependableFinder in interface Dependable
Returns:
the stored form of this provider

getObjectName

public java.lang.String getObjectName()
Return the name of this Provider. (Useful for errors.)

Specified by:
getObjectName in interface Dependable
Returns:
String The name of this provider.

getObjectID

public UUID getObjectID()
Get the provider's UUID

Specified by:
getObjectID in interface Dependable
Returns:
The provider's UUID

getClassType

public java.lang.String getClassType()
Get the provider's type.

Specified by:
getClassType in interface Dependable
Returns:
char The provider's type.

toString

public java.lang.String toString()
Convert the conglomerate descriptor to a String

Returns:
The conglomerate descriptor as a String

getDescriptorType

public java.lang.String getDescriptorType()
Description copied from class: TupleDescriptor
Each descriptor must identify itself with its type; i.e index, check constraint whatever.

Overrides:
getDescriptorType in class TupleDescriptor
See Also:
TupleDescriptor.getDescriptorType()

getDescriptorName

public java.lang.String getDescriptorName()
Overrides:
getDescriptorName in class TupleDescriptor
See Also:
TupleDescriptor.getDescriptorName()

Built on Tue 2006-10-10 19:23:47+0200, from revision exported

Apache Derby V10.1 Engine Documentation - Copyright © 1997,2005 The Apache Software Foundation or its licensors, as applicable.