Skip to content

Commit 4fdfe88

Browse files
committed
Address comment
1 parent 8ee728a commit 4fdfe88

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

hivelink-core/src/main/java/org/apache/iceberg/hivelink/core/HiveMetadataPreservingTableOperations.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.apache.hadoop.hive.metastore.api.EnvironmentContext;
3737
import org.apache.hadoop.hive.metastore.api.FieldSchema;
3838
import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
39+
import org.apache.hadoop.hive.metastore.api.SerDeInfo;
3940
import org.apache.hadoop.hive.metastore.api.Table;
4041
import org.apache.hadoop.hive.serde2.SerDeException;
4142
import org.apache.hadoop.hive.serde2.avro.AvroObjectInspectorGenerator;
@@ -53,6 +54,7 @@
5354
import org.apache.iceberg.relocated.com.google.common.base.Strings;
5455
import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap;
5556
import org.apache.iceberg.relocated.com.google.common.collect.ImmutableSet;
57+
import org.apache.iceberg.relocated.com.google.common.collect.Maps;
5658
import org.apache.thrift.TException;
5759
import org.slf4j.Logger;
5860
import org.slf4j.LoggerFactory;
@@ -295,11 +297,16 @@ private static void updateORCStorageDesc(List<FieldSchema> hiveCols, Table table
295297
String columnsString = hiveCols.stream().map(FieldSchema::getName).collect(Collectors.joining(","));
296298
String typesString = hiveCols.stream().map(FieldSchema::getType).collect(Collectors.joining(","));
297299

298-
if (table.getSd().getSerdeInfo() != null && table.getSd().getSerdeInfo().getParameters() != null) {
299-
Map<String, String> sdParams = table.getSd().getSerdeInfo().getParameters();
300-
sdParams.put(ORC_COLUMNS, columnsString);
301-
sdParams.put(ORC_COLUMNS_TYPES, typesString);
300+
if (!table.getSd().isSetSerdeInfo()) {
301+
table.getSd().setSerdeInfo(new SerDeInfo());
302302
}
303+
if (!table.getSd().getSerdeInfo().isSetParameters()) {
304+
table.getSd().getSerdeInfo().setParameters(Maps.newHashMap());
305+
}
306+
307+
Map<String, String> sdParams = table.getSd().getSerdeInfo().getParameters();
308+
sdParams.put(ORC_COLUMNS, columnsString);
309+
sdParams.put(ORC_COLUMNS_TYPES, typesString);
303310
}
304311

305312
/**

hivelink-core/src/test/java/org/apache/iceberg/hivelink/core/TestHiveMetadataPreservingTableOperations.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ public void testFixMismatchedSchema() {
5555
storageDescriptor.setCols(ImmutableList.of(field1, field2, new FieldSchema("nested", "struct<field1:int," +
5656
"field2:string>", "")));
5757
storageDescriptor.setInputFormat("org.apache.hadoop.hive.ql.io.orc.OrcInputFormat");
58-
SerDeInfo serDeInfo = new SerDeInfo();
59-
serDeInfo.setParameters(ImmutableMap.of("field1", "value1"));
60-
storageDescriptor.setSerdeInfo(serDeInfo);
6158
Map<String, String> parameters = ImmutableMap.of("avro.schema.literal", testSchemaLiteral);
6259
Table tbl = new Table("tableName",
6360
"dbName",

0 commit comments

Comments
 (0)