[ https://issues.apache.org/jira/browse/HIVE-5724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kassem Tohme updated HIVE-5724: ------------------------------- Description: Hey I'm new to jira (just to let u know) Following scenario: {code} Configuration config = new Configuration(); config.addResource(new Path("/etc/hive/conf.cloudera.hive1/hive-site.xml")); try { HiveConf hiveConfig = HCatUtil.getHiveConf(config); HiveMetaStoreClient hmsClient = HCatUtil.getHiveClient(hiveConfig); Table table = hmsClient.getTable("testdb", "testtable"); for (FieldSchema colFS : table.getSd().getCols()) { HCatFieldSchema col = HCatSchemaUtils.getHCatFieldSchema(colFS); System.out.println(col.getName() + " " + col.getComment()); } } catch (Exception e) { e.printStackTrace(); } {code} Output : id null value null HCatSchemaUtils.getHCatFieldSchema(String, TypInfo) seems to ignores the comment field. {code} public static HCatFieldSchema getHCatFieldSchema(FieldSchema fs) throws HCatException { String fieldName = fs.getName(); TypeInfo baseTypeInfo = TypeInfoUtils.getTypeInfoFromTypeString(fs.getType()); return getHCatFieldSchema(fieldName, baseTypeInfo); } private static HCatFieldSchema getHCatFieldSchema(String fieldName, TypeInfo fieldTypeInfo) throws HCatException { Category typeCategory = fieldTypeInfo.getCategory(); HCatFieldSchema hCatFieldSchema; if (Category.PRIMITIVE == typeCategory) { hCatFieldSchema = new HCatFieldSchema(fieldName, getPrimitiveHType(fieldTypeInfo), null); } else if (Category.STRUCT == typeCategory) { HCatSchema subSchema = constructHCatSchema((StructTypeInfo) fieldTypeInfo); hCatFieldSchema = new HCatFieldSchema(fieldName, HCatFieldSchema.Type.STRUCT, subSchema, null); } else if (Category.LIST == typeCategory) { HCatSchema subSchema = getHCatSchema(((ListTypeInfo) fieldTypeInfo).getListElementTypeInfo()); hCatFieldSchema = new HCatFieldSchema(fieldName, HCatFieldSchema.Type.ARRAY, subSchema, null); } else if (Category.MAP == typeCategory) { HCatFieldSchema.Type mapKeyType = getPrimitiveHType(((MapTypeInfo) fieldTypeInfo).getMapKeyTypeInfo()); HCatSchema subSchema = getHCatSchema(((MapTypeInfo) fieldTypeInfo).getMapValueTypeInfo()); hCatFieldSchema = new HCatFieldSchema(fieldName, HCatFieldSchema.Type.MAP, mapKeyType, subSchema, null); } else { throw new TypeNotPresentException(fieldTypeInfo.getTypeName(), null); } return hCatFieldSchema; } {code} Additional parameter FieldSchema in getHCatFieldSchema(String, TypeInfo) and replacing null with fs.getComment() should fix it. This bug impacts on HCatalogs Java API. was: Hey I'm new to jira (just to let u know) Following scenario: {code} Configuration config = new Configuration(); config.addResource(new Path("/etc/hive/conf.cloudera.hive1/hive-site.xml")); try { HiveConf hiveConfig = HCatUtil.getHiveConf(config); HiveMetaStoreClient hmsClient = HCatUtil.getHiveClient(hiveConfig); Table table = hmsClient.getTable("testdb", "testtable"); for (FieldSchema colFS : table.getSd().getCols()) { HCatFieldSchema col = HCatSchemaUtils.getHCatFieldSchema(colFS); System.out.println(col.getName() + " " + col.getComment()); } } catch (Exception e) { e.printStackTrace(); } {code} Output : id null value null HCatSchemaUtils.getHCatFieldSchema(String, TypInfo) seems to ignores it. {code} public static HCatFieldSchema getHCatFieldSchema(FieldSchema fs) throws HCatException { String fieldName = fs.getName(); TypeInfo baseTypeInfo = TypeInfoUtils.getTypeInfoFromTypeString(fs.getType()); return getHCatFieldSchema(fieldName, baseTypeInfo); } private static HCatFieldSchema getHCatFieldSchema(String fieldName, TypeInfo fieldTypeInfo) throws HCatException { Category typeCategory = fieldTypeInfo.getCategory(); HCatFieldSchema hCatFieldSchema; if (Category.PRIMITIVE == typeCategory) { hCatFieldSchema = new HCatFieldSchema(fieldName, getPrimitiveHType(fieldTypeInfo), null); } else if (Category.STRUCT == typeCategory) { HCatSchema subSchema = constructHCatSchema((StructTypeInfo) fieldTypeInfo); hCatFieldSchema = new HCatFieldSchema(fieldName, HCatFieldSchema.Type.STRUCT, subSchema, null); } else if (Category.LIST == typeCategory) { HCatSchema subSchema = getHCatSchema(((ListTypeInfo) fieldTypeInfo).getListElementTypeInfo()); hCatFieldSchema = new HCatFieldSchema(fieldName, HCatFieldSchema.Type.ARRAY, subSchema, null); } else if (Category.MAP == typeCategory) { HCatFieldSchema.Type mapKeyType = getPrimitiveHType(((MapTypeInfo) fieldTypeInfo).getMapKeyTypeInfo()); HCatSchema subSchema = getHCatSchema(((MapTypeInfo) fieldTypeInfo).getMapValueTypeInfo()); hCatFieldSchema = new HCatFieldSchema(fieldName, HCatFieldSchema.Type.MAP, mapKeyType, subSchema, null); } else { throw new TypeNotPresentException(fieldTypeInfo.getTypeName(), null); } return hCatFieldSchema; } {code} Additional parameter FieldSchema in getHCatFieldSchema(String, TypeInfo) and replacing null with fs.getComment() should fix it. This bug impacts on HCatalogs Java API. > Java API: comments are always null > ---------------------------------- > > Key: HIVE-5724 > URL: https://issues.apache.org/jira/browse/HIVE-5724 > Project: Hive > Issue Type: Bug > Reporter: Kassem Tohme > > Hey > I'm new to jira (just to let u know) > Following scenario: > {code} > Configuration config = new Configuration(); > config.addResource(new > Path("/etc/hive/conf.cloudera.hive1/hive-site.xml")); > > try { > HiveConf hiveConfig = HCatUtil.getHiveConf(config); > HiveMetaStoreClient hmsClient = > HCatUtil.getHiveClient(hiveConfig); > Table table = hmsClient.getTable("testdb", "testtable"); > > for (FieldSchema colFS : table.getSd().getCols()) { > HCatFieldSchema col = > HCatSchemaUtils.getHCatFieldSchema(colFS); > System.out.println(col.getName() + " " + > col.getComment()); > } > > > } catch (Exception e) { > e.printStackTrace(); > } > {code} > Output : > id null > value null > HCatSchemaUtils.getHCatFieldSchema(String, TypInfo) seems to ignores the > comment field. > {code} > public static HCatFieldSchema getHCatFieldSchema(FieldSchema fs) throws > HCatException { > String fieldName = fs.getName(); > TypeInfo baseTypeInfo = > TypeInfoUtils.getTypeInfoFromTypeString(fs.getType()); > return getHCatFieldSchema(fieldName, baseTypeInfo); > } > private static HCatFieldSchema getHCatFieldSchema(String fieldName, > TypeInfo fieldTypeInfo) throws HCatException { > Category typeCategory = fieldTypeInfo.getCategory(); > HCatFieldSchema hCatFieldSchema; > if (Category.PRIMITIVE == typeCategory) { > hCatFieldSchema = new HCatFieldSchema(fieldName, > getPrimitiveHType(fieldTypeInfo), null); > } else if (Category.STRUCT == typeCategory) { > HCatSchema subSchema = constructHCatSchema((StructTypeInfo) > fieldTypeInfo); > hCatFieldSchema = new HCatFieldSchema(fieldName, > HCatFieldSchema.Type.STRUCT, subSchema, null); > } else if (Category.LIST == typeCategory) { > HCatSchema subSchema = getHCatSchema(((ListTypeInfo) > fieldTypeInfo).getListElementTypeInfo()); > hCatFieldSchema = new HCatFieldSchema(fieldName, > HCatFieldSchema.Type.ARRAY, subSchema, null); > } else if (Category.MAP == typeCategory) { > HCatFieldSchema.Type mapKeyType = getPrimitiveHType(((MapTypeInfo) > fieldTypeInfo).getMapKeyTypeInfo()); > HCatSchema subSchema = getHCatSchema(((MapTypeInfo) > fieldTypeInfo).getMapValueTypeInfo()); > hCatFieldSchema = new HCatFieldSchema(fieldName, > HCatFieldSchema.Type.MAP, mapKeyType, subSchema, null); > } else { > throw new TypeNotPresentException(fieldTypeInfo.getTypeName(), null); > } > return hCatFieldSchema; > } > {code} > Additional parameter FieldSchema in getHCatFieldSchema(String, TypeInfo) and > replacing null with fs.getComment() should fix it. > This bug impacts on HCatalogs Java API. -- This message was sent by Atlassian JIRA (v6.1#6144)