|
36 | 36 | import org.apache.hadoop.hive.metastore.api.EnvironmentContext; |
37 | 37 | import org.apache.hadoop.hive.metastore.api.FieldSchema; |
38 | 38 | import org.apache.hadoop.hive.metastore.api.NoSuchObjectException; |
| 39 | +import org.apache.hadoop.hive.metastore.api.SerDeInfo; |
39 | 40 | import org.apache.hadoop.hive.metastore.api.Table; |
40 | 41 | import org.apache.hadoop.hive.serde2.SerDeException; |
41 | 42 | import org.apache.hadoop.hive.serde2.avro.AvroObjectInspectorGenerator; |
|
53 | 54 | import org.apache.iceberg.relocated.com.google.common.base.Strings; |
54 | 55 | import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap; |
55 | 56 | import org.apache.iceberg.relocated.com.google.common.collect.ImmutableSet; |
| 57 | +import org.apache.iceberg.relocated.com.google.common.collect.Maps; |
56 | 58 | import org.apache.thrift.TException; |
57 | 59 | import org.slf4j.Logger; |
58 | 60 | import org.slf4j.LoggerFactory; |
@@ -295,11 +297,16 @@ private static void updateORCStorageDesc(List<FieldSchema> hiveCols, Table table |
295 | 297 | String columnsString = hiveCols.stream().map(FieldSchema::getName).collect(Collectors.joining(",")); |
296 | 298 | String typesString = hiveCols.stream().map(FieldSchema::getType).collect(Collectors.joining(",")); |
297 | 299 |
|
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()); |
302 | 302 | } |
| 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); |
303 | 310 | } |
304 | 311 |
|
305 | 312 | /** |
|
0 commit comments