@Test public void testPartitionedBy() throws Exception { CreateTableAnalyzedStatement analysis = (CreateTableAnalyzedStatement) analyze( "create table my_table (" + " id integer," + " no_index string index off," + " name string," + " date timestamp" + ") partitioned by (name)"); assertThat(analysis.partitionedBy().size(), is(1)); assertThat(analysis.partitionedBy().get(0), contains("name", "string")); // partitioned columns must be not indexed in mapping Map<String, Object> nameMapping = (Map<String, Object>) analysis.mappingProperties().get("name"); assertThat( mapToSortedString(nameMapping), is("doc_values=false, index=no, store=false, type=string")); Map<String, Object> metaMapping = (Map) analysis.mapping().get("_meta"); assertThat((Map<String, Object>) metaMapping.get("columns"), not(hasKey("name"))); List<List<String>> partitionedByMeta = (List<List<String>>) metaMapping.get("partitioned_by"); assertTrue(analysis.isPartitioned()); assertThat(partitionedByMeta.size(), is(1)); assertThat(partitionedByMeta.get(0).get(0), is("name")); assertThat(partitionedByMeta.get(0).get(1), is("string")); }