@Override public Column[] getColumns() { return base.getColumns(); }
private static boolean canUseUniqueIndex(Index idx, Table table, IndexColumn[] cols) { if (idx.getTable() != table || !idx.getIndexType().isUnique()) { return false; } Column[] indexCols = idx.getColumns(); HashSet<Column> indexColsSet = new HashSet<>(); Collections.addAll(indexColsSet, indexCols); HashSet<Column> colsSet = new HashSet<>(); for (IndexColumn c : cols) { colsSet.add(c.column); } return colsSet.equals(indexColsSet); }
result.getColumns().length > index.getColumns().length)) { result = index;
private boolean isGroupSortedIndex(TableFilter tableFilter, Index index) { Column[] indexColumns = index.getColumns();
if (result == null || result.getColumns().length > index.getColumns().length || nullable && isNullsLast(result) && !isNullsLast(index)) { result = index;
/** * Remove the given index from the list. * * @param index the index to remove */ public void removeIndex(Index index) { ArrayList<Index> indexes = getIndexes(); if (indexes != null) { remove(indexes, index); if (index.getIndexType().isPrimaryKey()) { for (Column col : index.getColumns()) { col.setPrimaryKey(false); } } } }
Column[] indexCols = existingIndex.getColumns();
public MultiVersionIndex(Index base, RegularTable table) { this.base = base; this.table = table; IndexType deltaIndexType = IndexType.createNonUnique(false); if (base instanceof SpatialIndex) { throw DbException.get(ErrorCode.FEATURE_NOT_SUPPORTED_1, "MVCC & spatial index"); } this.delta = new TreeIndex(table, -1, "DELTA", base.getIndexColumns(), deltaIndexType); delta.setMultiVersion(true); this.sync = base.getDatabase(); this.firstColumn = base.getColumns()[0]; }
continue; if (index.getColumns().length == 1) { indexesToDrop.add(index); } else {
private boolean existsRow(Session session, Index searchIndex, SearchRow check, Row excluding) { Table searchTable = searchIndex.getTable(); searchTable.lock(session, false, false); Cursor cursor = searchIndex.find(session, check, check); while (cursor.next()) { SearchRow found; found = cursor.getSearchRow(); if (excluding != null && found.getKey() == excluding.getKey()) { continue; } Column[] cols = searchIndex.getColumns(); boolean allEqual = true; int len = Math.min(columns.length, cols.length); for (int i = 0; i < len; i++) { int idx = cols[i].getColumnId(); Value c = check.getValue(idx); Value f = found.getValue(idx); if (searchTable.compareTypeSafe(c, f) != 0) { allEqual = false; break; } } if (allEqual) { return true; } } return false; }
.getMainIndexColumn()].column }; } else { indexedColumns = foundIndex.getColumns();
v = ValueNull.INSTANCE; } else { v = row.getValue(index.getColumns()[0].getColumnId());
throw DbException.get(ErrorCode.CONSTRAINT_NOT_FOUND_1, "PRIMARY KEY"); keys = idx.getColumns();
columnIndex.getColumns().length > 1)) { topTableFilter.setIndex(columnIndex); isDistinctQuery = true;
throw DbException.get(ErrorCode.CONSTRAINT_NOT_FOUND_1, "PRIMARY KEY"); keys = idx.getColumns();
if (index != null) { Column[] indexColumns = index.getColumns(); boolean indexMatchesKeys = false; if (indexColumns.length <= keys.length) {
if (index != null) { Column[] indexColumns = index.getColumns(); boolean indexMatchesKeys = true; if (indexColumns.length <= keys.length) {
Index index = topTableFilter.getIndex(); SearchRow first = null; int columnIndex = index.getColumns()[0].getColumnId(); int sampleSize = getSampleSizeValue(session); while (true) {
buff.append(" ("); buff.resetCount(); Column[] cols = searchIndex.getColumns(); int len = Math.min(columns.length, cols.length); for (int i = 0; i < len; i++) {
int columnId = index.getColumns()[0].getColumnId(); ExpressionColumn expr = (ExpressionColumn) on; if (expr.getColumn().isNullable()) {