@Test(expected = InvalidOperationException.class) public void testRenamePartitionNoTable() throws Exception { client.renamePartition(DB_NAME, TABLE_NAME, Lists.newArrayList("2018", "01", "16"), new Partition()); }
@Test(expected = InvalidOperationException.class) public void testRenamePartitionTargetAlreadyExisting() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); client.renamePartition(DB_NAME, TABLE_NAME, oldValues.get(3), oldParts.get(2)); }
@Test(expected = InvalidOperationException.class) public void testRenamePartitionBogusCatalogName() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); client.renamePartition("nosuch", DB_NAME, TABLE_NAME, oldValues.get(3), partToRename, null); }
@Test(expected = InvalidOperationException.class) public void testRenamePartitionNoDbName() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); client.renamePartition("", TABLE_NAME, oldValues.get(3), partToRename); }
@Test(expected = InvalidOperationException.class) public void testRenamePartitionNoTblName() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); client.renamePartition(DB_NAME, "", oldValues.get(3), partToRename); }
@Test(expected = InvalidOperationException.class) public void testRenamePartitionEmptyOldPartList() throws Exception { createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); client.renamePartition(DB_NAME, TABLE_NAME, Lists.newArrayList(), partToRename); }
@Test(expected = InvalidOperationException.class) public void testRenamePartitionNoSuchOldPartition() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); client.renamePartition(DB_NAME, TABLE_NAME, Lists.newArrayList("1", "2", ""), partToRename); }
@Test public void testRenamePartitionNullNewPart() throws Exception { try { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short) -1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); client.renamePartition(DB_NAME, TABLE_NAME, oldValues.get(3), null); } catch (NullPointerException | TProtocolException e) { } }
@Test public void testRenamePartitionNullDbName() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); try { client.renamePartition(null, TABLE_NAME, oldValues.get(3), partToRename); Assert.fail("should throw"); } catch (MetaException | TProtocolException ex) { } }
@Test public void testRenamePartitionNullTblName() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); try { client.renamePartition(DB_NAME, null, oldValues.get(3), partToRename); Assert.fail("should throw"); } catch (MetaException | TProtocolException ex) { } }
@Test(expected = MetaException.class) public void testRenamePartitionChangeTblName() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); partToRename.setTableName(TABLE_NAME + "_2"); client.renamePartition(DB_NAME, TABLE_NAME, oldValues.get(3), partToRename); }
@Test(expected = MetaException.class) public void testRenamePartitionNullTableInPartition() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); partToRename.setTableName(null); client.renamePartition(DB_NAME, TABLE_NAME, Lists.newArrayList("2017", "11", "27"), partToRename); }
@Test(expected = MetaException.class) public void testRenamePartitionNullDbInPartition() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); partToRename.setDbName(null); client.renamePartition(DB_NAME, TABLE_NAME, Lists.newArrayList("2017", "11", "27"), partToRename); }
@Test(expected = MetaException.class) public void testRenamePartitionChangeDbName() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); partToRename.setDbName(DB_NAME + "_2"); client.renamePartition(DB_NAME, TABLE_NAME, oldValues.get(3), partToRename); }
getMSC().renamePartition(tbl.getDbName(), tbl.getTableName(), pvals, newPart.getTPartition());
@Test public void testRenamePartitionNullOldPartList() throws Exception { createTable4PartColsParts(client); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(Lists.newArrayList("2018", "01", "16")); try { client.renamePartition(DB_NAME, TABLE_NAME, null, partToRename); Assert.fail("should throw"); } catch (InvalidOperationException | TProtocolException ex) { } }
getMSC().renamePartition(tbl.getCatName(), tbl.getDbName(), tbl.getTableName(), pvals, newPart.getTPartition(), validWriteIds);
/** * Testing * renamePartition(String,String,List(String),Partition) -> * renamePartition(String,String,List(String),Partition). */ @Test public void testRenamePartition() throws Exception { List<List<String>> oldValues = createTable4PartColsParts(client); List<List<String>> newValues = new ArrayList<>(); List<String> newVal = Lists.newArrayList("2018", "01", "16"); newValues.addAll(oldValues.subList(0, 3)); newValues.add(newVal); List<Partition> oldParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); Partition partToRename = oldParts.get(3); partToRename.setValues(newVal); makeTestChangesOnPartition(partToRename); client.renamePartition(DB_NAME, TABLE_NAME, oldValues.get(3), partToRename); List<Partition> newParts = client.listPartitions(DB_NAME, TABLE_NAME, (short)-1); assertPartitionsHaveCorrectValues(newParts, newValues); //Asserting other partition parameters can also be changed, but not the location assertFalse(newParts.get(3).getSd().getLocation().endsWith("hh=01")); assertEquals(3, newParts.get(3).getSd().getCols().size()); assertEquals("testValue001", newParts.get(3).getParameters().get("hmsTestParam001")); assertEquals(NEW_CREATE_TIME, newParts.get(3).getCreateTime()); assertEquals(NEW_CREATE_TIME, newParts.get(3).getLastAccessTime()); assertTrue(client.listPartitions(DB_NAME, TABLE_NAME, oldValues.get(3), (short)-1).isEmpty()); }
client.getPartition(DEFAULT_DATABASE_NAME, tableName, Collections.singletonList("a3")); newPart.setValues(Collections.singletonList("b3")); client.renamePartition(DEFAULT_DATABASE_NAME, tableName, Collections.singletonList("a3"), newPart); fetched = client.getPartition(DEFAULT_DATABASE_NAME, tableName, Collections.singletonList("b3"));
getMSC().renamePartition(tbl.getDbName(), tbl.getTableName(), pvals, newPart.getTPartition());