private DDF handleIndex(String index, List<String> identifierList, Table table) throws Exception { if (!mIndexPattern.matcher(index).matches()) { // Not full uri, no namespace, the index can't match. throw new Exception(">>> ERROR: Can't find the required ddf " + index); } String number = index.substring(index.indexOf('{') + 1, index.indexOf('}')).trim(); int idx = Integer.parseInt(number); if (idx < 1) { throw new Exception("In the SQL command, " + "if you use {number} as index, the number should begin from 1"); } if (idx > identifierList.size()) { throw new Exception(new ArrayIndexOutOfBoundsException()); } else { String identifier = identifierList.get(idx - 1); DDF ddf = null; try { ddf = this.mDDFManager.getDDFByName(identifier); } catch (DDFException e) { ddf = this.mDDFManager.getDDF(UUID.fromString(identifier)); } return ddf; } }
@Test(expected = DDFException.class) public void testDDFManagerSetUUID() throws DDFException { DDF ddf = this.getTestDDF(); UUID uuid = ddf.getUUID(); DDFManager manager = getDDFManager(); UUID newUUID = UUID.randomUUID(); manager.setDDFUUID(ddf, newUUID); manager.getDDF(uuid); }
@Test public void testSimpleSparkDDFManager() throws DDFException { createTableAirline(); List<String> l = manager.sql("select * from airline", false).getRows(); Assert.assertEquals(31, l.size()); List<String> v = manager.sql("select count(*) from airline", false).getRows(); Assert.assertEquals(1, v.size()); Assert.assertEquals("31", v.get(0)); DDF ddf = manager.sql2ddf("select year, month, dayofweek, deptime, arrtime,origin, distance, arrdelay, " + "depdelay, carrierdelay, weatherdelay, nasdelay, securitydelay, lateaircraftdelay from airline", false); Assert.assertEquals(14, ddf.getSummary().length); manager.setDDFName(ddf, "myddf"); manager.addDDF(ddf); Assert.assertEquals(ddf, manager.getDDF(ddf.getUUID())); } }