[
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 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" also impacts on HCatalogs Java API.
was:
Hey
I'm new to jira (just to let u know)
Following scenario:
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();
}
Output :
id null
value null
HCatSchemaUtils.getHCatFieldSchema(String, TypInfo) seems ignores it.
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;
}
Additional parameter FieldSchema in getHCatFieldSchema(String, TypeInfo) and
replacing null with fs.getComment() should fix it.
This "bug" also 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 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" also impacts on HCatalogs Java API.
--
This message was sent by Atlassian JIRA
(v6.1#6144)