| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| package org.apache.iceberg.orc; |
| |
| import java.util.Map; |
| import org.apache.iceberg.Schema; |
| import org.apache.iceberg.types.Types; |
| import org.junit.Assert; |
| import org.junit.Test; |
| |
| import static org.apache.iceberg.types.Types.NestedField.required; |
| |
| public class TestIdToOrcName { |
| |
| @Test |
| public void testIdToQuotedColumnName() { |
| Schema schema = new Schema( |
| required(1, "long", Types.LongType.get()), |
| required(2, "struct", Types.StructType.of( |
| required(3, "long", Types.LongType.get()) |
| )), |
| required(4, "listOfLongs", Types.ListType.ofRequired(5, Types.LongType.get())), |
| required(6, "listOfStructs", Types.ListType.ofRequired(7, Types.StructType.of( |
| required(8, "long", Types.LongType.get()) |
| ))), |
| required(9, "map", Types.MapType.ofRequired(10, 11, Types.LongType.get(), Types.LongType.get())), |
| required(12, "mapOfStructs", Types.MapType.ofRequired(13, 14, |
| Types.StructType.of(required(15, "long", Types.LongType.get())), |
| Types.StructType.of(required(16, "long", Types.LongType.get())) |
| )), |
| required(17, "listOfMapsOfStruct", Types.ListType.ofRequired(18, Types.MapType.ofRequired(19, 20, |
| Types.StructType.of(required(21, "long", Types.LongType.get())), |
| Types.StructType.of(required(22, "long", Types.LongType.get())) |
| ))), |
| required(23, "col.with.dots", Types.StructType.of( |
| required(24, "inner.col.with.dots", Types.LongType.get()) |
| )), |
| required(25, "colW!th$peci@lCh@rs", Types.LongType.get()), |
| required(26, "colWith`Quotes`", Types.LongType.get()) |
| ); |
| |
| Map<Integer, String> actual = ORCSchemaUtil.idToOrcName(schema); |
| Assert.assertEquals("`long`", actual.get(1)); |
| Assert.assertEquals("`struct`", actual.get(2)); |
| Assert.assertEquals("`struct`.`long`", actual.get(3)); |
| Assert.assertEquals("`listOfLongs`", actual.get(4)); |
| Assert.assertEquals("`listOfLongs`.`_elem`", actual.get(5)); |
| Assert.assertEquals("`listOfStructs`", actual.get(6)); |
| Assert.assertEquals("`listOfStructs`.`_elem`", actual.get(7)); |
| Assert.assertEquals("`listOfStructs`.`_elem`.`long`", actual.get(8)); |
| Assert.assertEquals("`map`", actual.get(9)); |
| Assert.assertEquals("`map`.`_key`", actual.get(10)); |
| Assert.assertEquals("`map`.`_value`", actual.get(11)); |
| Assert.assertEquals("`mapOfStructs`", actual.get(12)); |
| Assert.assertEquals("`mapOfStructs`.`_key`", actual.get(13)); |
| Assert.assertEquals("`mapOfStructs`.`_value`", actual.get(14)); |
| Assert.assertEquals("`mapOfStructs`.`_key`.`long`", actual.get(15)); |
| Assert.assertEquals("`mapOfStructs`.`_value`.`long`", actual.get(16)); |
| Assert.assertEquals("`listOfMapsOfStruct`", actual.get(17)); |
| Assert.assertEquals("`listOfMapsOfStruct`.`_elem`", actual.get(18)); |
| Assert.assertEquals("`listOfMapsOfStruct`.`_elem`.`_key`", actual.get(19)); |
| Assert.assertEquals("`listOfMapsOfStruct`.`_elem`.`_value`", actual.get(20)); |
| Assert.assertEquals("`listOfMapsOfStruct`.`_elem`.`_key`.`long`", actual.get(21)); |
| Assert.assertEquals("`listOfMapsOfStruct`.`_elem`.`_value`.`long`", actual.get(22)); |
| Assert.assertEquals("`col.with.dots`", actual.get(23)); |
| Assert.assertEquals("`col.with.dots`.`inner.col.with.dots`", actual.get(24)); |
| Assert.assertEquals("`colW!th$peci@lCh@rs`", actual.get(25)); |
| Assert.assertEquals("`colWith``Quotes```", actual.get(26)); |
| } |
| } |