"Date format partitioner %s must have a %s.", name, FORMAT); String format = fieldPartitioner.get(FORMAT).asText(); builder.dateFormat(source, name, format); } else if (isProvided) { ValidationException.check(name != null,
@Test public void testDateFormat() { checkParser(new PartitionStrategy.Builder() .dateFormat("time", "date", "yyyyMMdd") .build(), "[ {\"type\": \"dateFormat\", " + "\"source\": \"time\", " + "\"name\": \"date\", " + "\"format\": \"yyyyMMdd\"} ]"); TestHelpers.assertThrows("Should reject missing format", ValidationException.class, new Runnable() { @Override public void run() { PartitionStrategyParser.parse("[ {\"type\": \"dateFormat\", " + "\"source\": \"time\", " + "\"name\": \"date\"} ]"); } } ); TestHelpers.assertThrows("Should reject missing name", ValidationException.class, new Runnable() { @Override public void run() { PartitionStrategyParser.parse("[ {\"type\": \"dateFormat\", " + "\"source\": \"time\", " + "\"format\": \"yyyyMMdd\"} ]"); } } ); }
@Test public void testMultipleFields() { checkParser(new PartitionStrategy.Builder() .provided("version") .hash("username", 64) .identity("username", "u") .year("time") .month("time") .day("time") .hour("time") .minute("time") .dateFormat("time", "datetime", "yyyy_MM_dd_HHmmss") .build(), "[ " + "{\"type\": \"provided\", \"name\": \"version\"}," + "{\"type\": \"hash\", \"source\": \"username\", \"buckets\": 64}," + "{\"type\": \"identity\"," + "\"source\": \"username\", \"name\": \"u\"}," + "{\"type\": \"year\", \"source\": \"time\"}," + "{\"type\": \"month\", \"source\": \"time\"}," + "{\"type\": \"day\", \"source\": \"time\"}," + "{\"type\": \"hour\", \"source\": \"time\"}," + "{\"type\": \"minute\", \"source\": \"time\"}," + "{\"type\": \"dateFormat\", \"source\": \"time\", " + "\"name\": \"datetime\", \"format\": \"yyyy_MM_dd_HHmmss\"}" + " ]"); }
@Test public void testExpressionRoundTrip() { PartitionStrategy strategy = new PartitionStrategy.Builder() .dateFormat("timestamp", "day", "yyyy-MM-dd") .build(); PartitionStrategy copy = Accessor.getDefault().fromExpression( Accessor.getDefault().toExpression(strategy)); Assert.assertEquals(strategy, copy); } }
@Override public void run() { Compatibility.checkStrategyUpdate( provided, new PartitionStrategy.Builder() .dateFormat("l", "part", "yyyy-MM-dd") .build(), PROVIDED_TEST_SCHEMA); } });