/** * Constructor * * @param crf the associated CatalogRowFactory */ TabInfoImpl(CatalogRowFactory crf) { this.heapConglomerate = -1; this.crf = crf; int numIndexes = crf.getNumIndexes(); if (numIndexes > 0) { indexes = new IndexInfoImpl[numIndexes]; /* Init indexes */ for (int indexCtr = 0; indexCtr < numIndexes; indexCtr++) { indexes[indexCtr] = new IndexInfoImpl( indexCtr, crf); } } }
/** * Set the index conglomerate for the table. * * @param index Index number for index for table * @param indexConglomerate The conglomerate for that index */ void setIndexConglomerate(int index, long indexConglomerate) { /* Index names must be set before conglomerates. * Also verify that we are not setting the same conglomerate * twice. */ if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes[index] != null, "indexes[index] expected to be non-null"); SanityManager.ASSERT(indexes[index].getConglomerateNumber() == -1, "indexes[index] expected to be -1"); } indexes[index].setConglomerateNumber(indexConglomerate); /* We are completely initialized when all indexes have * their conglomerates initialized */ numIndexesSet++; }
/** * Get the index name. * * @param indexId Index number for index for table * * @return String The index name. */ String getIndexName(int indexId) { return indexes[indexId].getIndexName(); }
SanityManager.ASSERT(indexes[index].getIndexName() != null, "indexes[index].getIndexName() expected to be non-null"); if (indexes[index].getIndexName().equals(indexName)) indexes[index].setConglomerateNumber(cd.getConglomerateNumber()); break;
/** * Get the column count for the specified index number. * * @param indexNumber The index number. * * @return int The column count for the specified index. */ int getIndexColumnCount(int indexNumber) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (!(indexNumber < indexes.length)) { SanityManager.THROWASSERT("indexNumber (" + indexNumber + ") is out of range(0-" + indexes.length + ")"); } } return indexes[indexNumber].getColumnCount(); }
/** * Get the conglomerate for the specified index. * * @return long The conglomerate for the specified index. */ public long getIndexConglomerate(int indexID) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (indexID >= indexes.length) { SanityManager.THROWASSERT( "indexID (" + indexID + ") is out of range(0-" + indexes.length + ")"); } } return indexes[indexID].getConglomerateNumber(); }
/** * Set the IndexRowGenerator for the specified index number. * * @param indexNumber The index number. * @param irg The IndexRowGenerator for the specified index number. */ void setIndexRowGenerator(int indexNumber, IndexRowGenerator irg) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (indexNumber >= indexes.length) { SanityManager.THROWASSERT( "indexNumber (" + indexNumber + ") is out of range(0-" + indexes.length + ")"); } } indexes[indexNumber].setIndexRowGenerator(irg); }
/** * Get the IndexRowGenerator for the specified index number. * * @param indexNumber The index number. * * @return IndexRowGenerator The IRG for the specified index number. */ IndexRowGenerator getIndexRowGenerator(int indexNumber) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (indexNumber >= indexes.length) { SanityManager.THROWASSERT( "indexNumber (" + indexNumber + ") is out of range(0-" + indexes.length + ")"); } } return indexes[indexNumber].getIndexRowGenerator(); }
/** * Return whether or not this index is declared unique * * @param indexNumber The index number * * @return boolean Whether or not this index is declared unique */ boolean isIndexUnique(int indexNumber) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (indexNumber >= indexes.length) { SanityManager.THROWASSERT("indexNumber (" + indexNumber + ") is out of range(0-" + indexes.length + ")"); } } return indexes[indexNumber].isIndexUnique(); }
/** * Get the base column position for a column within a catalog * given the (0-based) index number for this catalog and the * (0-based) column number for the column within the index. * * @param indexNumber The index number * @param colNumber The column number within the index * * @return int The base column position for the column. */ int getBaseColumnPosition(int indexNumber, int colNumber) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (indexNumber >= indexes.length) { SanityManager.THROWASSERT("indexNumber (" + indexNumber + ") is out of range(0-" + indexes.length + ")"); } } return indexes[indexNumber].getBaseColumnPosition(colNumber); }
SanityManager.ASSERT(indexes[index].getIndexName() != null, "indexes[index].getIndexName() expected to be non-null"); if (indexes[index].getIndexName().equals(indexName)) indexes[index].setConglomerateNumber(cd.getConglomerateNumber()); break;
/** * Get the column count for the specified index number. * * @param indexNumber The index number. * * @return int The column count for the specified index. */ int getIndexColumnCount(int indexNumber) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (!(indexNumber < indexes.length)) { SanityManager.THROWASSERT("indexNumber (" + indexNumber + ") is out of range(0-" + indexes.length + ")"); } } return indexes[indexNumber].getColumnCount(); }
/** * Get the conglomerate for the specified index. * * @return long The conglomerate for the specified index. */ public long getIndexConglomerate(int indexID) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (indexID >= indexes.length) { SanityManager.THROWASSERT( "indexID (" + indexID + ") is out of range(0-" + indexes.length + ")"); } } return indexes[indexID].getConglomerateNumber(); }
/** * Set the IndexRowGenerator for the specified index number. * * @param indexNumber The index number. * @param irg The IndexRowGenerator for the specified index number. */ void setIndexRowGenerator(int indexNumber, IndexRowGenerator irg) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (indexNumber >= indexes.length) { SanityManager.THROWASSERT( "indexNumber (" + indexNumber + ") is out of range(0-" + indexes.length + ")"); } } indexes[indexNumber].setIndexRowGenerator(irg); }
/** * Get the IndexRowGenerator for the specified index number. * * @param indexNumber The index number. * * @return IndexRowGenerator The IRG for the specified index number. */ IndexRowGenerator getIndexRowGenerator(int indexNumber) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (indexNumber >= indexes.length) { SanityManager.THROWASSERT( "indexNumber (" + indexNumber + ") is out of range(0-" + indexes.length + ")"); } } return indexes[indexNumber].getIndexRowGenerator(); }
/** * Return whether or not this index is declared unique * * @param indexNumber The index number * * @return boolean Whether or not this index is declared unique */ boolean isIndexUnique(int indexNumber) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (indexNumber >= indexes.length) { SanityManager.THROWASSERT("indexNumber (" + indexNumber + ") is out of range(0-" + indexes.length + ")"); } } return indexes[indexNumber].isIndexUnique(); }
/** * Get the base column position for a column within a catalog * given the (0-based) index number for this catalog and the * (0-based) column number for the column within the index. * * @param indexNumber The index number * @param colNumber The column number within the index * * @return int The base column position for the column. */ int getBaseColumnPosition(int indexNumber, int colNumber) { if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes != null, "indexes is expected to be non-null"); if (indexNumber >= indexes.length) { SanityManager.THROWASSERT("indexNumber (" + indexNumber + ") is out of range(0-" + indexes.length + ")"); } } return indexes[indexNumber].getBaseColumnPosition(colNumber); }
/** * Set the index conglomerate for the table. * * @param index Index number for index for table * @param indexConglomerate The conglomerate for that index */ void setIndexConglomerate(int index, long indexConglomerate) { /* Index names must be set before conglomerates. * Also verify that we are not setting the same conglomerate * twice. */ if (SanityManager.DEBUG) { SanityManager.ASSERT(indexes[index] != null, "indexes[index] expected to be non-null"); SanityManager.ASSERT(indexes[index].getConglomerateNumber() == -1, "indexes[index] expected to be -1"); } indexes[index].setConglomerateNumber(indexConglomerate); /* We are completely initialized when all indexes have * their conglomerates initialized */ numIndexesSet++; }
SanityManager.ASSERT(indexes[index].getIndexName() != null, "indexes[index].getIndexName() expected to be non-null"); if (indexes[index].getIndexName().equals(indexName)) indexes[index].setConglomerateNumber(cd.getConglomerateNumber()); break;
/** * Get the index name. * * @param indexId Index number for index for table * * @return String The index name. */ String getIndexName(int indexId) { return indexes[indexId].getIndexName(); }