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.
| Modifier and Type | Field and Description |
|---|---|
| private transient String[] | |
| private long | |
| private final boolean | |
| private final boolean | |
| private final IndexRowGenerator | |
| private String | |
| private final UUID | |
| private final UUID | |
| private final UUID |
| Access | Constructor and Description |
|---|---|
| pack-priv | ConglomerateDescriptor(DataDictionary
The data dictionary that this descriptor lives in dataDictionary, long The number for the conglomerate
we're interested in conglomerateNumber, String The name of the conglomerate, if any name, boolean TRUE means the conglomerate is indexable,
FALSE means it isn't indexable, IndexRowGenerator The descriptor of the index if it's not a
heap indexRowGenerator, boolean TRUE means the conglomerate is an index backing up
a constraint, FALSE means it isn't forConstraint, UUID UUID for this conglomerate uuid, UUID UUID for the table that this conglomerate belongs to tableID, UUID UUID for the schema that this conglomerate belongs to schemaID)Constructor for a conglomerate descriptor. |
| Modifier and Type | Method and Description |
|---|---|
| public ConglomerateDescriptor | Returns: A conglomerate descriptor, pulled from the received array, that describes what a physical conglomerate would have to look to like in order to support all sharing descriptors (minus "this" if ignoreThis is true).Array of conglomerate descriptors in
which to search; the array may include an entry for "this";
it should not be null. descriptors, boolean If true then we will NOT consider "this"
conglomerate descriptor in our search. That is, we will
find a descriptor to describe what a physical conglomerate
would have to look like in order to support all sharing
descriptors OTHER THAN this one. ignoreThis)This method searches the received array of conglom descriptors to find all descriptors that currently share a physical conglom with "this". |
| public ConglomerateDescriptor | Returns: If the conglomerate described by this descriptor is an index conglomerate that is shared by multiple constraints/indexes, then we may have to create a new conglomerate to satisfy the constraints/indexes which remain after we drop the existing conglomerate. If that's needed then we'll return a conglomerate descriptor which describes what the new conglomerate must look like. It is then up to the caller of this method to create a new corresponding conglomerate. We don't create the index here because depending on who called us, it might not make sense to create it--esp. if we get here because of a DROP TABLE.Connection context to use for dropping lcc, TableDescriptor TableDescriptor for the table to which this
conglomerate belongs td)Drop this ConglomerateDescriptor when it represents an index. |
| public String | Returns: char The provider's type.Implements org. Get the provider's type. |
| public String[] | Returns: the column names for the conglomerate descriptor.Get the column names for this conglomerate descriptor. |
| public String | Returns: The name of the conglomerate, null if it's the heap for a table.Gets the name of the conglomerate. |
| public long | Returns: A long identifier for the conglomerateGets the number for the conglomerate. |
| public DependableFinder | Returns: the stored form of this providerImplements org. Get an object which can be written to disk and which, when read from disk, will find or reconstruct this in-memory Dependable. |
| public String | |
| public String | getDescriptorType()
Overrides org. Each descriptor must identify itself with its type; i.e index, check constraint whatever. |
| public IndexRowGenerator | Returns: The index descriptor for this conglomerate, if any.Gets the index row generator for this conglomerate, null if the conglomerate is not an index. |
| public UUID | Returns: The provider's UUIDImplements org. Get the provider's UUID |
| public String | Returns: String The name of this provider.Implements org. Return the name of this Provider. |
| public UUID | Returns: The UUID String for the schema that the conglomerate belongs toGets the UUID for the schema that the conglomerate belongs to. |
| public UUID | Returns: The UUID String for the conglomerateGets the UUID for the table that the conglomerate belongs to. |
| public UUID | Returns: The UUID String for the conglomerateImplements abstract org. Gets the UUID String for the conglomerate. |
| public boolean | Returns: TRUE if the conglomerate is an index backing up a constraint, FALSE if notTells whether the conglomerate is an index backing up a constraint. |
| public boolean | Returns: TRUE if the conglomerate can be used as an index, FALSE if notTells whether the conglomerate can be used as an index. |
| public void | setColumnNames(String[]
0-based array of column names. columnNames)Set the column names for this conglomerate descriptor. |
| public void | setConglomerateName(String
The new name of the conglomerate. newName)Set the name of the conglomerate. |
| public void | setConglomerateNumber(long
The new conglomerate number. conglomerateNumber)Set the conglomerate number. |
| public String | Returns: The conglomerate descriptor as a StringOverrides java. Convert the conglomerate descriptor to a String |
| columnNames | back to summary |
|---|---|
| private transient String[] columnNames | |
| conglomerateNumber | back to summary |
|---|---|
| private long conglomerateNumber | |
| forConstraint | back to summary |
|---|---|
| private final boolean forConstraint | |
| indexable | back to summary |
|---|---|
| private final boolean indexable | |
| indexRowGenerator | back to summary |
|---|---|
| private final IndexRowGenerator indexRowGenerator | |
| name | back to summary |
|---|---|
| private String name | |
| schemaID | back to summary |
|---|---|
| private final UUID schemaID | |
| tableID | back to summary |
|---|---|
| private final UUID tableID | |
| uuid | back to summary |
|---|---|
| private final UUID uuid | |
| ConglomerateDescriptor | back to summary |
|---|---|
| pack-priv ConglomerateDescriptor(DataDictionary dataDictionary, long conglomerateNumber, String name, boolean indexable, IndexRowGenerator indexRowGenerator, boolean forConstraint, UUID uuid, UUID tableID, UUID schemaID) Constructor for a conglomerate descriptor.
| |
| describeSharedConglomerate | back to summary |
|---|---|
| public ConglomerateDescriptor describeSharedConglomerate(ConglomerateDescriptor[] descriptors, boolean ignoreThis) throws StandardException This method searches the received array of conglom descriptors to find all descriptors that currently share a physical conglom with "this". The method then searches within those sharing descriptors to find one that fully describes what a physical conglom would have to look like in order to support _all_ of the sharing descriptors in the array--esp. one that correctly enforces the uniqueness requirements for those descriptors.
| |
| drop | back to summary |
|---|---|
| public ConglomerateDescriptor drop(LanguageConnectionContext lcc, TableDescriptor td) throws StandardException Drop this ConglomerateDescriptor when it represents an index. If this is the last desciptor for a physical index then the physical index (conglomerate) and its descriptor will be dropped.
| |
| getClassType | back to summary |
|---|---|
| public String getClassType() Implements org. Get the provider's type.
| |
| getColumnNames | back to summary |
|---|---|
| public String[] getColumnNames() Get the column names for this conglomerate descriptor. This is useful for tracing the optimizer.
| |
| getConglomerateName | back to summary |
|---|---|
| public String getConglomerateName() Gets the name of the conglomerate. For heaps, this is null. For indexes, it is the index name.
| |
| getConglomerateNumber | back to summary |
|---|---|
| public long getConglomerateNumber() Gets the number for the conglomerate.
| |
| getDependableFinder | back to summary |
|---|---|
| public DependableFinder getDependableFinder() Implements org. Doc from org. Get an object which can be written to disk and which, when read from disk, will find or reconstruct this in-memory Dependable.
| |
| getDescriptorName | back to summary |
|---|---|
| public String getDescriptorName() Overrides org.
| |
| getDescriptorType | back to summary |
|---|---|
| public String getDescriptorType() Overrides org. Doc from org. Each descriptor must identify itself with its type; i.e index, check constraint whatever.
| |
| getIndexDescriptor | back to summary |
|---|---|
| public IndexRowGenerator getIndexDescriptor() Gets the index row generator for this conglomerate, null if the conglomerate is not an index.
| |
| getObjectID | back to summary |
|---|---|
| public UUID getObjectID() Implements org. Get the provider's UUID
| |
| getObjectName | back to summary |
|---|---|
| public String getObjectName() Implements org. Return the name of this Provider. (Useful for errors.)
| |
| getSchemaID | back to summary |
|---|---|
| public UUID getSchemaID() Gets the UUID for the schema that the conglomerate belongs to.
| |
| getTableID | back to summary |
|---|---|
| public UUID getTableID() Gets the UUID for the table that the conglomerate belongs to.
| |
| getUUID | back to summary |
|---|---|
| public UUID getUUID() Implements abstract org. Gets the UUID String for the conglomerate.
| |
| isConstraint | back to summary |
|---|---|
| public boolean isConstraint() Tells whether the conglomerate is an index backing up a constraint.
| |
| isIndex | back to summary |
|---|---|
| public boolean isIndex() Tells whether the conglomerate can be used as an index.
| |
| setColumnNames | back to summary |
|---|---|
| public void setColumnNames(String[] columnNames) Set the column names for this conglomerate descriptor. This is useful for tracing the optimizer.
| |
| setConglomerateName | back to summary |
|---|---|
| public void setConglomerateName(String newName) Set the name of the conglomerate. Used only by rename index.
| |
| setConglomerateNumber | back to summary |
|---|---|
| public void setConglomerateNumber(long conglomerateNumber) Set the conglomerate number. This is useful when swapping conglomerates, like for bulkInsert.
| |
| toString | back to summary |
|---|---|
| public String toString() Overrides java. Convert the conglomerate descriptor to a String
| |