public static IAType findType(MetadataTransactionContext mdTxnCtx, String dataverse, String typeName) throws AlgebricksException { if (dataverse == null || typeName == null) { return null; } Datatype type = MetadataManager.INSTANCE.getDatatype(mdTxnCtx, dataverse, typeName); if (type == null) { throw new AlgebricksException("Type name '" + typeName + "' unknown in dataverse '" + dataverse + "'"); } return type.getDatatype(); }
ARecordType aRecType = (ARecordType) datatype.getDatatype(); return new Datatype( datatype.getDataverseName(), datatype.getDatatypeName(), new ARecordType(aRecType.getTypeName(),
private List<String> getNestedComplexDatatypeNamesForThisDatatype(TxnId txnId, String dataverseName, String datatypeName) throws AlgebricksException, RemoteException { // Return all field types that aren't builtin types Datatype parentType = getDatatype(txnId, dataverseName, datatypeName); List<IAType> subTypes = null; if (parentType.getDatatype().getTypeTag() == ATypeTag.OBJECT) { ARecordType recType = (ARecordType) parentType.getDatatype(); subTypes = Arrays.asList(recType.getFieldTypes()); } else if (parentType.getDatatype().getTypeTag() == ATypeTag.UNION) { AUnionType recType = (AUnionType) parentType.getDatatype(); subTypes = recType.getUnionList(); } List<String> nestedTypes = new ArrayList<>(); if (subTypes != null) { for (IAType subType : subTypes) { if (!(subType instanceof BuiltinType)) { nestedTypes.add(subType.getTypeName()); } } } return nestedTypes; }
recordBuilder.addField(MetadataRecordTypes.DATATYPE_ARECORD_DATATYPENAME_FIELD_INDEX, fieldValue); IAType fieldType = dataType.getDatatype(); fieldType = ((AUnionType) dataType.getDatatype()).getActualType();
public static IAType getTypeFromTypeName(MetadataNode metadataNode, TxnId txnId, String dataverseName, String typeName, boolean optional) throws AlgebricksException { IAType type = _builtinTypeMap.get(typeName); if (type == null) { try { Datatype dt = metadataNode.getDatatype(txnId, dataverseName, typeName); type = dt.getDatatype(); } catch (RemoteException e) { throw new MetadataException(e); } } if (optional) { type = AUnionType.createUnknownableType(type); } return type; } }
private void confirmDatatypeIsUnusedByDatatypes(TxnId txnId, String dataverseName, String datatypeName) throws AlgebricksException, RemoteException { // If any datatype uses this type, throw an error // TODO: Currently this loads all types into memory. This will need to be fixed // for large numbers of types Datatype dataTypeToBeDropped = getDatatype(txnId, dataverseName, datatypeName); assert dataTypeToBeDropped != null; IAType typeToBeDropped = dataTypeToBeDropped.getDatatype(); List<Datatype> datatypes = getAllDatatypes(txnId); for (Datatype dataType : datatypes) { // skip types in different dataverses as well as the type to be dropped itself if (!dataType.getDataverseName().equals(dataverseName) || dataType.getDatatype().getTypeName().equals(datatypeName)) { continue; } AbstractComplexType recType = (AbstractComplexType) dataType.getDatatype(); if (recType.containsType(typeToBeDropped)) { throw new AlgebricksException("Cannot drop type " + dataverseName + "." + datatypeName + " being used by type " + dataverseName + "." + recType.getTypeName()); } } }
ctx = MetadataManager.INSTANCE.beginTransaction(); Datatype t = MetadataManager.INSTANCE.getDatatype(ctx, dataverseName, datatypeName); if (t == null || t.getDatatype().getTypeTag() != ATypeTag.OBJECT) { throw new MetadataException(ErrorCode.FEED_METADATA_UTIL_UNEXPECTED_FEED_DATATYPE, datatypeName); outputType = (ARecordType) t.getDatatype(); MetadataManager.INSTANCE.commitTransaction(ctx); } catch (ACIDException | RemoteException e) {
throw new AlgebricksException("Could not resolve type " + typeSignature); } else { t = dt.getDatatype(); throw new AlgebricksException("Could not resolve type " + trefName); } else { t = dt.getDatatype(); throw new AlgebricksException("Could not resolve type " + typeSignature); t = dt.getDatatype(); } else { t = typeMap.get(typeSignature);
throw new MetadataException(" Type " + paramType + " is not supported in UDF."); return datatype.getDatatype();
String datatypeDataverseName = dSet.getItemTypeDataverseName(); ARecordType recordDt = (ARecordType) metadataNode .getDatatype(txnId, datatypeDataverseName, datatypeName).getDatatype(); String metatypeName = dSet.getMetaItemTypeName(); String metatypeDataverseName = dSet.getMetaItemTypeDataverseName(); if (metatypeName != null && metatypeDataverseName != null) { metaDt = (ARecordType) metadataNode.getDatatype(txnId, metatypeDataverseName, metatypeName) .getDatatype();
ARecordType aRecordType = (ARecordType) dt.getDatatype(); ARecordType metaRecordType = null; if (ds.hasMetaPart()) { Datatype metaDt = MetadataManager.INSTANCE.getDatatype(metadataProvider.getMetadataTxnContext(), ds.getMetaItemTypeDataverseName(), ds.getMetaItemTypeName()); metaRecordType = (ARecordType) metaDt.getDatatype();
String itemTypeName = dataset.getItemTypeName(); IAType itemType = MetadataManager.INSTANCE .getDatatype(mdTxnCtx, dataset.getItemTypeDataverseName(), itemTypeName).getDatatype(); validateRecordType(itemType); ARecordType recType = (ARecordType) itemType;
try { itemType = MetadataManager.INSTANCE.getDatatype(mdTxnCtx, dataset.getItemTypeDataverseName(), itemTypeName) .getDatatype();
dataset.getDataverseName(), dataset.getItemTypeName()).getDatatype(); ExternalDatasetDetails datasetDetails = (ExternalDatasetDetails) dataset.getDatasetDetails(); LookupAdapterFactory<?> adapterFactory = AdapterFactoryProvider.getLookupAdapterFactory(
String itemTypeName = externalDataset.getItemTypeName(); IAType itemType = MetadataManager.INSTANCE.getDatatype(metadataProvider.getMetadataTxnContext(), externalDataset.getItemTypeDataverseName(), itemTypeName).getDatatype();
IAType itemType = dt.getDatatype(); if (itemType.getTypeTag() != ATypeTag.OBJECT) { throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,