public static boolean shouldStoreFieldsInMetastore( HiveConf conf, String serdeLib, Map<String, String> tableParams) { if (hasMetastoreBasedSchema(conf, serdeLib)) return true; // Table may or may not be using metastore. Only the SerDe can tell us. AbstractSerDe deserializer = null; try { Class<?> clazz = conf.getClassByName(serdeLib); if (!AbstractSerDe.class.isAssignableFrom(clazz)) return true; // The default. deserializer = ReflectionUtil.newInstance( conf.getClassByName(serdeLib).asSubclass(AbstractSerDe.class), conf); } catch (Exception ex) { LOG.warn("Cannot initialize SerDe: " + serdeLib + ", ignoring", ex); return true; } return deserializer.shouldStoreFieldsInMetastore(tableParams); }
public static boolean shouldStoreFieldsInMetastore( HiveConf conf, String serdeLib, Map<String, String> tableParams) { if (hasMetastoreBasedSchema(conf, serdeLib)) { return true; } if (HiveConf.getBoolVar(conf, ConfVars.HIVE_LEGACY_SCHEMA_FOR_ALL_SERDES)) { return true; } // Table may or may not be using metastore. Only the SerDe can tell us. AbstractSerDe deserializer = null; try { Class<?> clazz = conf.getClassByName(serdeLib); if (!AbstractSerDe.class.isAssignableFrom(clazz)) { return true; // The default. } deserializer = ReflectionUtil.newInstance( conf.getClassByName(serdeLib).asSubclass(AbstractSerDe.class), conf); } catch (Exception ex) { LOG.warn("Cannot initialize SerDe: " + serdeLib + ", ignoring", ex); return true; } return deserializer.shouldStoreFieldsInMetastore(tableParams); }
if (Table.hasMetastoreBasedSchema(conf, serName) && StringUtils.isEmpty(getStorageHandler())) { throw new SemanticException(ErrorMsg.INVALID_TBL_DDL_SERDE.getMsg());
private List<FieldSchema> getColsInternal(boolean forMs) { String serializationLib = getSerializationLib(); try { // Do the lightweight check for general case. if (hasMetastoreBasedSchema(SessionState.getSessionConf(), serializationLib)) { return tTable.getSd().getCols(); } else if (forMs && !shouldStoreFieldsInMetastore( SessionState.getSessionConf(), serializationLib, tTable.getParameters())) { return Hive.getFieldsFromDeserializerForMsStorage(this, getDeserializer()); } else { return MetaStoreUtils.getFieldsFromDeserializer(getTableName(), getDeserializer()); } } catch (Exception e) { LOG.error("Unable to get field from serde: " + serializationLib, e); } return new ArrayList<FieldSchema>(); }
private List<FieldSchema> getColsInternal(boolean forMs) { String serializationLib = getSerializationLib(); try { // Do the lightweight check for general case. if (hasMetastoreBasedSchema(SessionState.getSessionConf(), serializationLib)) { return tTable.getSd().getCols(); } else if (forMs && !shouldStoreFieldsInMetastore( SessionState.getSessionConf(), serializationLib, tTable.getParameters())) { return Hive.getFieldsFromDeserializerForMsStorage(this, getDeserializer()); } else { return HiveMetaStoreUtils.getFieldsFromDeserializer(getTableName(), getDeserializer()); } } catch (Exception e) { LOG.error("Unable to get field from serde: " + serializationLib, e); } return new ArrayList<FieldSchema>(); }
if (Table.hasMetastoreBasedSchema(conf, serName) && StringUtils.isEmpty(getStorageHandler())) { throw new SemanticException(ErrorMsg.INVALID_TBL_DDL_SERDE.getMsg());
private List<FieldSchema> getColsInternal(boolean forMs) { try { String serializationLib = tPartition.getSd().getSerdeInfo().getSerializationLib(); // Do the lightweight check for general case. if (Table.hasMetastoreBasedSchema(SessionState.getSessionConf(), serializationLib)) { return tPartition.getSd().getCols(); } else if (forMs && !Table.shouldStoreFieldsInMetastore( SessionState.getSessionConf(), serializationLib, table.getParameters())) { return Hive.getFieldsFromDeserializerForMsStorage(table, getDeserializer()); } return HiveMetaStoreUtils.getFieldsFromDeserializer(table.getTableName(), getDeserializer()); } catch (Exception e) { LOG.error("Unable to get cols from serde: " + tPartition.getSd().getSerdeInfo().getSerializationLib(), e); } return new ArrayList<FieldSchema>(); }
private List<FieldSchema> getColsInternal(boolean forMs) { try { String serializationLib = tPartition.getSd().getSerdeInfo().getSerializationLib(); // Do the lightweight check for general case. if (Table.hasMetastoreBasedSchema(SessionState.getSessionConf(), serializationLib)) { return tPartition.getSd().getCols(); } else if (forMs && !Table.shouldStoreFieldsInMetastore( SessionState.getSessionConf(), serializationLib, table.getParameters())) { return Hive.getFieldsFromDeserializerForMsStorage(table, getDeserializer()); } return MetaStoreUtils.getFieldsFromDeserializer(table.getTableName(), getDeserializer()); } catch (Exception e) { LOG.error("Unable to get cols from serde: " + tPartition.getSd().getSerdeInfo().getSerializationLib(), e); } return new ArrayList<FieldSchema>(); }
} else { if (Table.shouldStoreFieldsInMetastore(conf, serdeName, tbl.getParameters()) && !Table.hasMetastoreBasedSchema(conf, oldSerdeName)) {
} else { if (Table.shouldStoreFieldsInMetastore(conf, serdeName, tbl.getParameters()) && !Table.hasMetastoreBasedSchema(conf, oldSerdeName)) {
public static boolean hasMetastoreBasedSchema(HiveConf conf, StorageDescriptor serde) { return hasMetastoreBasedSchema(conf, serde.getSerdeInfo().getSerializationLib()); }
public List<FieldSchema> getCols() { String serializationLib = getSerializationLib(); try { if (hasMetastoreBasedSchema(SessionState.getSessionConf(), serializationLib)) { return tTable.getSd().getCols(); } else { return MetaStoreUtils.getFieldsFromDeserializer(getTableName(), getDeserializer()); } } catch (Exception e) { LOG.error("Unable to get field from serde: " + serializationLib, e); } return new ArrayList<FieldSchema>(); }
public List<FieldSchema> getCols() { try { if (Table.hasMetastoreBasedSchema(SessionState.getSessionConf(), tPartition.getSd())) { return tPartition.getSd().getCols(); } return MetaStoreUtils.getFieldsFromDeserializer(table.getTableName(), getDeserializer()); } catch (Exception e) { LOG.error("Unable to get cols from serde: " + tPartition.getSd().getSerdeInfo().getSerializationLib(), e); } return new ArrayList<FieldSchema>(); }
if (Table.hasMetastoreBasedSchema(conf, getSerName())) { throw new SemanticException(ErrorMsg.INVALID_TBL_DDL_SERDE.getMsg());
part.getTPartition().getSd().setCols(part.getTPartition().getSd().getCols()); } else { if (!Table.hasMetastoreBasedSchema(conf, serdeName)) { tbl.setFields(Hive.getFieldsFromDeserializer(tbl.getTableName(), tbl. getDeserializer()));