@Override public TableDescriptor get() throws IOException { TableDescriptor old = getTableDescriptors().get(tableName); if (!old.hasColumnFamily(columnName)) { throw new InvalidFamilyOperationException("Family '" + Bytes.toString(columnName) + "' does not exist, so it cannot be deleted"); } if (old.getColumnFamilyCount() == 1) { throw new InvalidFamilyOperationException("Family '" + Bytes.toString(columnName) + "' is the only column family in the table, so it cannot be deleted"); } return TableDescriptorBuilder.newBuilder(old).removeColumnFamily(columnName).build(); } }, nonceGroup, nonce);
builder.removeColumnFamily(family.getName()); schemaChangeNeeded = true;
@Override public void perform() throws Exception { TableDescriptor tableDescriptor = admin.getDescriptor(tableName); ColumnFamilyDescriptor[] columnDescriptors = tableDescriptor.getColumnFamilies(); if (columnDescriptors.length <= (protectedColumns == null ? 1 : protectedColumns.size())) { return; } int index = random.nextInt(columnDescriptors.length); while(protectedColumns != null && protectedColumns.contains(columnDescriptors[index].getNameAsString())) { index = random.nextInt(columnDescriptors.length); } byte[] colDescName = columnDescriptors[index].getName(); LOG.debug("Performing action: Removing " + Bytes.toString(colDescName)+ " from " + tableName.getNameAsString()); TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableDescriptor); builder.removeColumnFamily(colDescName); // Don't try the modify if we're stopping if (context.isStopping()) { return; } admin.modifyTable(builder.build()); } }
private static Region setMobThreshold(Region region, byte[] cfName, long modThreshold) { ColumnFamilyDescriptor cfd = ColumnFamilyDescriptorBuilder .newBuilder(region.getTableDescriptor().getColumnFamily(cfName)) .setMobThreshold(modThreshold) .build(); TableDescriptor td = TableDescriptorBuilder .newBuilder(region.getTableDescriptor()) .removeColumnFamily(cfName) .setColumnFamily(cfd) .build(); ((HRegion)region).setTableDescriptor(td); return region; }
private static HRegion setMobThreshold(HRegion region, byte[] cfName, long modThreshold) { ColumnFamilyDescriptor cfd = ColumnFamilyDescriptorBuilder .newBuilder(region.getTableDescriptor().getColumnFamily(cfName)) .setMobThreshold(modThreshold) .build(); TableDescriptor td = TableDescriptorBuilder .newBuilder(region.getTableDescriptor()) .removeColumnFamily(cfName) .setColumnFamily(cfd) .build(); region.setTableDescriptor(td); return region; }
TableDescriptor newTd = TableDescriptorBuilder .newBuilder(td) .removeColumnFamily(Bytes.toBytes("cf1")) .modifyColumnFamily(modCf2) .modifyColumnFamily(modCf3)
.setCompactionEnabled(!oldDescriptor.isCompactionEnabled()) .setColumnFamily(ColumnFamilyDescriptorBuilder.of(cf2)) .removeColumnFamily(Bytes.toBytes(cf3)) .setRegionReplication(3) .build();
private void setSharedIndexMaxVersion(PTable table, TableDescriptor tableDescriptor, TableDescriptorBuilder indexDescriptorBuilder) { if (table.getColumnFamilies().isEmpty()) { byte[] familyName = SchemaUtil.getEmptyColumnFamily(table); ColumnFamilyDescriptorBuilder indexColDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(indexDescriptorBuilder.build().getColumnFamily(familyName)); ColumnFamilyDescriptor tableColDescriptor = tableDescriptor.getColumnFamily(familyName); indexColDescriptorBuilder.setMaxVersions(tableColDescriptor.getMaxVersions()); indexColDescriptorBuilder.setValue( Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL),tableColDescriptor.getValue(Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL))); indexDescriptorBuilder.removeColumnFamily(familyName); indexDescriptorBuilder.addColumnFamily(indexColDescriptorBuilder.build()); } else { for (PColumnFamily family : table.getColumnFamilies()) { byte[] familyName = family.getName().getBytes(); ColumnFamilyDescriptor indexColDescriptor = indexDescriptorBuilder.build().getColumnFamily(familyName); if (indexColDescriptor != null) { ColumnFamilyDescriptor tableColDescriptor = tableDescriptor.getColumnFamily(familyName); ColumnFamilyDescriptorBuilder indexColDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(indexColDescriptor); indexColDescriptorBuilder.setMaxVersions(tableColDescriptor.getMaxVersions()); indexColDescriptorBuilder.setValue( Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL),tableColDescriptor.getValue(Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL))); indexDescriptorBuilder.removeColumnFamily(familyName); indexDescriptorBuilder.addColumnFamily(indexColDescriptorBuilder.build()); } } } }
indexColDescriptor.setValue(Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL), tableColDescriptor.getValue(Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL))); indexDescriptorBuilder.removeColumnFamily(indexFamilyName); indexDescriptorBuilder.setColumnFamily(indexColDescriptor.build()); } else { indexColDescriptor.setValue(Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL), tableColDescriptor.getValue(Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL))); indexDescriptorBuilder.removeColumnFamily(familyName); indexDescriptorBuilder.setColumnFamily(indexColDescriptor.build());
ColumnFamilyDescriptorBuilder.newBuilder(origIndexDescriptor.getColumnFamily(defaultIndexColFam)); modifyColumnFamilyDescriptor(indexDefaultColDescriptorBuilder, applyPropsToAllIndexesDefaultCF); newIndexDescriptorBuilder.removeColumnFamily(defaultIndexColFam); newIndexDescriptorBuilder.setColumnFamily(indexDefaultColDescriptorBuilder.build()); tableAndIndexDescriptorMappings.put(origIndexDescriptor, newIndexDescriptorBuilder.build()); ColumnFamilyDescriptorBuilder.newBuilder(cfd); modifyColumnFamilyDescriptor(newCfd, applyPropsToAllIndexesDefaultCF); newViewIndexDescriptorBuilder.removeColumnFamily(cfd.getName()); newViewIndexDescriptorBuilder.setColumnFamily(newCfd.build());
modifyColumnFamilyDescriptor(colDescriptorBuilder, familyProps); colDescriptor = colDescriptorBuilder.build(); newTableDescriptorBuilder.removeColumnFamily(cf); newTableDescriptorBuilder.setColumnFamily(colDescriptor);
desc=TableDescriptorBuilder.newBuilder(desc).removeColumnFamily(cols[0].getName()).addColumnFamily(col).build();
TableDescriptor newTd = TableDescriptorBuilder .newBuilder(td) .removeColumnFamily(Bytes.toBytes("cf1")) .modifyColumnFamily(modCf2) .modifyColumnFamily(modCf3)
private void setSharedIndexMaxVersion(PTable table, TableDescriptor tableDescriptor, TableDescriptorBuilder indexDescriptorBuilder) { if (table.getColumnFamilies().isEmpty()) { byte[] familyName = SchemaUtil.getEmptyColumnFamily(table); ColumnFamilyDescriptorBuilder indexColDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(indexDescriptorBuilder.build().getColumnFamily(familyName)); ColumnFamilyDescriptor tableColDescriptor = tableDescriptor.getColumnFamily(familyName); indexColDescriptorBuilder.setMaxVersions(tableColDescriptor.getMaxVersions()); indexColDescriptorBuilder.setValue( Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL),tableColDescriptor.getValue(Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL))); indexDescriptorBuilder.removeColumnFamily(familyName); indexDescriptorBuilder.addColumnFamily(indexColDescriptorBuilder.build()); } else { for (PColumnFamily family : table.getColumnFamilies()) { byte[] familyName = family.getName().getBytes(); ColumnFamilyDescriptor indexColDescriptor = indexDescriptorBuilder.build().getColumnFamily(familyName); if (indexColDescriptor != null) { ColumnFamilyDescriptor tableColDescriptor = tableDescriptor.getColumnFamily(familyName); ColumnFamilyDescriptorBuilder indexColDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(indexColDescriptor); indexColDescriptorBuilder.setMaxVersions(tableColDescriptor.getMaxVersions()); indexColDescriptorBuilder.setValue( Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL),tableColDescriptor.getValue(Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL))); indexDescriptorBuilder.removeColumnFamily(familyName); indexDescriptorBuilder.addColumnFamily(indexColDescriptorBuilder.build()); } } } }
private void setSharedIndexMaxVersion(PTable table, TableDescriptor tableDescriptor, TableDescriptorBuilder indexDescriptorBuilder) { if (table.getColumnFamilies().isEmpty()) { byte[] familyName = SchemaUtil.getEmptyColumnFamily(table); ColumnFamilyDescriptorBuilder indexColDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(indexDescriptorBuilder.build().getColumnFamily(familyName)); ColumnFamilyDescriptor tableColDescriptor = tableDescriptor.getColumnFamily(familyName); indexColDescriptorBuilder.setMaxVersions(tableColDescriptor.getMaxVersions()); indexColDescriptorBuilder.setValue( Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL),tableColDescriptor.getValue(Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL))); indexDescriptorBuilder.removeColumnFamily(familyName); indexDescriptorBuilder.addColumnFamily(indexColDescriptorBuilder.build()); } else { for (PColumnFamily family : table.getColumnFamilies()) { byte[] familyName = family.getName().getBytes(); ColumnFamilyDescriptor indexColDescriptor = indexDescriptorBuilder.build().getColumnFamily(familyName); if (indexColDescriptor != null) { ColumnFamilyDescriptor tableColDescriptor = tableDescriptor.getColumnFamily(familyName); ColumnFamilyDescriptorBuilder indexColDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(indexColDescriptor); indexColDescriptorBuilder.setMaxVersions(tableColDescriptor.getMaxVersions()); indexColDescriptorBuilder.setValue( Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL),tableColDescriptor.getValue(Bytes.toBytes(PhoenixTransactionContext.PROPERTY_TTL))); indexDescriptorBuilder.removeColumnFamily(familyName); indexDescriptorBuilder.addColumnFamily(indexColDescriptorBuilder.build()); } } } }
@Override public void perform() throws Exception { TableDescriptor tableDescriptor = admin.getDescriptor(tableName); ColumnFamilyDescriptor[] columnDescriptors = tableDescriptor.getColumnFamilies(); if (columnDescriptors.length <= (protectedColumns == null ? 1 : protectedColumns.size())) { return; } int index = random.nextInt(columnDescriptors.length); while(protectedColumns != null && protectedColumns.contains(columnDescriptors[index].getNameAsString())) { index = random.nextInt(columnDescriptors.length); } byte[] colDescName = columnDescriptors[index].getName(); LOG.debug("Performing action: Removing " + Bytes.toString(colDescName)+ " from " + tableName.getNameAsString()); TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableDescriptor); builder.removeColumnFamily(colDescName); // Don't try the modify if we're stopping if (context.isStopping()) { return; } admin.modifyTable(builder.build()); } }
ColumnFamilyDescriptorBuilder.newBuilder(origIndexDescriptor.getColumnFamily(defaultIndexColFam)); modifyColumnFamilyDescriptor(indexDefaultColDescriptorBuilder, applyPropsToAllIndexesDefaultCF); newIndexDescriptorBuilder.removeColumnFamily(defaultIndexColFam); newIndexDescriptorBuilder.setColumnFamily(indexDefaultColDescriptorBuilder.build()); tableAndIndexDescriptorMappings.put(origIndexDescriptor, newIndexDescriptorBuilder.build()); ColumnFamilyDescriptorBuilder.newBuilder(cfd); modifyColumnFamilyDescriptor(newCfd, applyPropsToAllIndexesDefaultCF); newViewIndexDescriptorBuilder.removeColumnFamily(cfd.getName()); newViewIndexDescriptorBuilder.setColumnFamily(newCfd.build());
private static Region setMobThreshold(Region region, byte[] cfName, long modThreshold) { ColumnFamilyDescriptor cfd = ColumnFamilyDescriptorBuilder .newBuilder(region.getTableDescriptor().getColumnFamily(cfName)) .setMobThreshold(modThreshold) .build(); TableDescriptor td = TableDescriptorBuilder .newBuilder(region.getTableDescriptor()) .removeColumnFamily(cfName) .setColumnFamily(cfd) .build(); ((HRegion)region).setTableDescriptor(td); return region; }
private static HRegion setMobThreshold(HRegion region, byte[] cfName, long modThreshold) { ColumnFamilyDescriptor cfd = ColumnFamilyDescriptorBuilder .newBuilder(region.getTableDescriptor().getColumnFamily(cfName)) .setMobThreshold(modThreshold) .build(); TableDescriptor td = TableDescriptorBuilder .newBuilder(region.getTableDescriptor()) .removeColumnFamily(cfName) .setColumnFamily(cfd) .build(); region.setTableDescriptor(td); return region; }
.setCompactionEnabled(!oldDescriptor.isCompactionEnabled()) .setColumnFamily(ColumnFamilyDescriptorBuilder.of(cf2)) .removeColumnFamily(Bytes.toBytes(cf3)) .setRegionReplication(3) .build();