protected List<Partition> setupProjectionTestTable() throws Throwable { //String catName = "catName"; String dbName = "compdb"; String tblName = "comptbl"; String typeName = "Person"; //String catName = "catName"; Map<String, String> dummyparams = new HashMap<>(); dummyparams.put("key1", "val1"); dummyparams.put("excludeKey1", "excludeVal1"); dummyparams.put("excludeKey2", "excludeVal2"); cleanUp(dbName, tblName, typeName); List<List<String>> values = new ArrayList<>(); values.add(makeVals("2008-07-01 14:13:12", "14")); values.add(makeVals("2008-07-01 14:13:12", "15")); values.add(makeVals("2008-07-02 14:13:12", "15")); values.add(makeVals("2008-07-03 14:13:12", "151")); List<Partition> createdPartitions = createMultiPartitionTableSchema(dbName, tblName, typeName, values); Table tbl = client.getTable(dbName, tblName); // add some dummy parameters to one of the partitions to confirm the fetching logic is working Partition newPartition = createdPartitions.remove(0); //Map<String, String> sdParams = new HashMap<>(); //dummyparams.put("sdkey1", "sdval1"); newPartition.setParameters(dummyparams); //newPartition.getSd().setParameters(sdParams); client.alter_partition(dbName, tblName, newPartition); createdPartitions.add(0, newPartition); return createdPartitions; }
@Test public void testDropTable() throws Throwable { // create a table with multiple partitions String dbName = "compdb"; String tblName = "comptbl"; String typeName = "Person"; cleanUp(dbName, tblName, typeName); List<List<String>> values = new ArrayList<>(); values.add(makeVals("2008-07-01 14:13:12", "14")); values.add(makeVals("2008-07-01 14:13:12", "15")); values.add(makeVals("2008-07-02 14:13:12", "15")); values.add(makeVals("2008-07-03 14:13:12", "151")); createMultiPartitionTableSchema(dbName, tblName, typeName, values); client.dropTable(dbName, tblName); client.dropType(typeName); boolean exceptionThrown = false; try { client.getTable(dbName, tblName); } catch(Exception e) { assertEquals("table should not have existed", NoSuchObjectException.class, e.getClass()); exceptionThrown = true; } assertTrue("Table " + tblName + " should have been dropped ", exceptionThrown); }
@Test public void testListPartitions() throws Throwable { // create a table with multiple partitions String dbName = "compdb"; String tblName = "comptbl"; String typeName = "Person"; cleanUp(dbName, tblName, typeName); List<List<String>> values = new ArrayList<>(); values.add(makeVals("2008-07-01 14:13:12", "14")); values.add(makeVals("2008-07-01 14:13:12", "15")); values.add(makeVals("2008-07-02 14:13:12", "15")); values.add(makeVals("2008-07-03 14:13:12", "151")); createMultiPartitionTableSchema(dbName, tblName, typeName, values); List<Partition> partitions = client.listPartitions(dbName, tblName, (short)-1); assertNotNull("should have returned partitions", partitions); assertEquals(" should have returned " + values.size() + " partitions", values.size(), partitions.size()); partitions = client.listPartitions(dbName, tblName, (short)(values.size()/2)); assertNotNull("should have returned partitions", partitions); assertEquals(" should have returned " + values.size() / 2 + " partitions",values.size() / 2, partitions.size()); partitions = client.listPartitions(dbName, tblName, (short) (values.size() * 2)); assertNotNull("should have returned partitions", partitions); assertEquals(" should have returned " + values.size() + " partitions",values.size(), partitions.size()); cleanUp(dbName, tblName, typeName); }
@Test public void testListPartitionNames() throws Throwable { // create a table with multiple partitions String dbName = "compdb"; String tblName = "comptbl"; String typeName = "Person"; cleanUp(dbName, tblName, typeName); List<List<String>> values = new ArrayList<>(); values.add(makeVals("2008-07-01 14:13:12", "14")); values.add(makeVals("2008-07-01 14:13:12", "15")); values.add(makeVals("2008-07-02 14:13:12", "15")); values.add(makeVals("2008-07-03 14:13:12", "151")); createMultiPartitionTableSchema(dbName, tblName, typeName, values); List<String> partitions = client.listPartitionNames(dbName, tblName, (short)-1); assertNotNull("should have returned partitions", partitions); assertEquals(" should have returned " + values.size() + " partitions", values.size(), partitions.size()); partitions = client.listPartitionNames(dbName, tblName, (short)(values.size()/2)); assertNotNull("should have returned partitions", partitions); assertEquals(" should have returned " + values.size() / 2 + " partitions",values.size() / 2, partitions.size()); partitions = client.listPartitionNames(dbName, tblName, (short) (values.size() * 2)); assertNotNull("should have returned partitions", partitions); assertEquals(" should have returned " + values.size() + " partitions",values.size(), partitions.size()); cleanUp(dbName, tblName, typeName); }
values.add(makeVals("2008-07-01 14:13:12", Integer.toString(i)));
String tblName = "comptbl"; String typeName = "Person"; List<String> vals = makeVals("2008-07-01 14:13:12", "14"); List<String> vals2 = makeVals("2008-07-01 14:13:12", "15"); List<String> vals3 = makeVals("2008-07-02 14:13:12", "15"); List<String> vals4 = makeVals("2008-07-03 14:13:12", "151"); List<String> vals6 = makeVals("2016-02-22 00:00:00", "16"); Partition part6 = makePartitionObject(dbName, tblName, vals6, tbl, "/part5"); part6.getSd().setCols(null); List<String> mvals1 = makeVals("2008-07-04 14:13:12", "14641"); List<String> mvals2 = makeVals("2008-07-04 14:13:12", "14642"); List<String> mvals3 = makeVals("2008-07-04 14:13:12", "14643"); List<String> mvals4 = makeVals("2008-07-04 14:13:12", "14643"); // equal to 3 List<String> mvals5 = makeVals("2008-07-04 14:13:12", "14645");