@Override protected IAType getResultType(ILogicalExpression expr, IAType... strippedInputTypes) throws AlgebricksException { IAType argType = strippedInputTypes[0]; ATypeTag argTypeTag = argType.getTypeTag(); if (argTypeTag == ATypeTag.ARRAY || argTypeTag == ATypeTag.MULTISET) { /** if the input is a singleton list, return it's item type if any */ AbstractCollectionType collectionType = (AbstractCollectionType) argType; return collectionType.getItemType(); } else { /** if the input is not a singleton list, return the original input type */ return argType; } }
public AbstractCollectionDataGenerator(AbstractCollectionType act, int min, int max) { this.act = act; this.min = min; this.max = max; if (act.getTypeTag() == ATypeTag.ARRAY) { startList = "["; endList = "]"; } else { startList = "{{"; endList = "}}"; } }
public static IAType getTokenType(IAType keyType) throws AlgebricksException { IAType type = keyType; ATypeTag typeTag = keyType.getTypeTag(); // Extract item type from list. if (typeTag == ATypeTag.MULTISET || typeTag == ATypeTag.ARRAY) { AbstractCollectionType listType = (AbstractCollectionType) keyType; if (!listType.isTyped()) { throw new AlgebricksException("Cannot build an inverted index on untyped lists.)"); } type = listType.getItemType(); } return type; }
public void castList(AListVisitablePointable listAccessor, IVisitablePointable resultAccessor, AbstractCollectionType reqType, ACastVisitor visitor) throws HyracksDataException { if (reqType.getTypeTag().equals(ATypeTag.MULTISET)) { unOrderedListBuilder.reset(reqType); reqItemType = reqType.getItemType(); if (reqType.getTypeTag().equals(ATypeTag.ARRAY)) { orderedListBuilder.reset(reqType); reqItemType = reqType.getItemType(); if (reqType.getTypeTag().equals(ATypeTag.ARRAY)) { orderedListBuilder.addItem(itemVisitorArg.first); if (reqType.getTypeTag().equals(ATypeTag.MULTISET)) { unOrderedListBuilder.addItem(itemVisitorArg.first); if (reqType.getTypeTag().equals(ATypeTag.ARRAY)) { orderedListBuilder.write(dataDos, true); if (reqType.getTypeTag().equals(ATypeTag.MULTISET)) { unOrderedListBuilder.write(dataDos, true);
IAType t = computeOrderedListType(null, oltd, typeMap, incompleteItemTypes, incompleteFieldTypes, defaultDataverse); act.setItemType(t); break; IAType t = computeUnorderedListType(null, ultd, typeMap, incompleteItemTypes, incompleteFieldTypes, defaultDataverse); act.setItemType(t); break; IAType t = computeRecordType(null, rtd, typeMap, incompleteFieldTypes, incompleteItemTypes, defaultDataverse); act.setItemType(t); break; IAType tref = solveTypeReference(signature, typeMap); if (tref != null) { act.setItemType(tref); } else { addIncompleteCollectionTypeReference(act, tre, incompleteItemTypes, defaultDataverse);
@Override public boolean containsType(IAType type) { return isTyped() && itemType.getTypeName().equals(type.getTypeName()); } }
@Override public void generateNestedDerivedTypeNames() { if (itemType.getTypeTag().isDerivedType() && itemType.getTypeName() == null) { AbstractComplexType nestedType = ((AbstractComplexType) itemType); nestedType.setTypeName(getTypeName() + "_Item"); nestedType.generateNestedDerivedTypeNames(); } }
/** * private constructor, to prevent constructing it arbitrarily * * @param inputType */ public AListVisitablePointable(AbstractCollectionType inputType) { if (inputType instanceof AOrderedListType) { ordered = true; } if (inputType != null && inputType.getItemType() != null) { itemType = inputType.getItemType(); if (itemType.getTypeTag() == ATypeTag.ANY) { typedItemList = false; } else { typedItemList = true; itemTag = inputType.getItemType().getTypeTag(); } } else { this.typedItemList = false; } }
private int getNumItems(AbstractCollectionType listType, byte[] listBytes, int offset) { if (listType.getTypeTag() == ATypeTag.ARRAY) { return AOrderedListSerializerDeserializer.getNumberOfItems(listBytes, offset); } else { return AUnorderedListSerializerDeserializer.getNumberOfItems(listBytes, offset); } }
public boolean isFixedType(AbstractCollectionType inputType) { return NonTaggedFormatUtil.isFixedSizedCollection(inputType.getItemType()); }
if (!listTag.isListType()) { returnNull = true; } else if (outList != null && outList.getTypeTag() != listTag) { throw new RuntimeDataException(ErrorCode.DIFFERENT_LIST_TYPE_ARGS, sourceLocation); } else { if (outList.getTypeTag() == ATypeTag.ARRAY) { if (orderedListBuilder == null) { orderedListBuilder = new OrderedListBuilder();
@Override public void reset(AbstractCollectionType listType) { this.outputStorage.reset(); this.offsetArray = null; this.offsets.clear(); this.offsetPosition = 0; this.numberOfItems = 0; if (listType == null || listType.getItemType() == null) { this.itemTypeTag = ATypeTag.ANY; fixedSize = false; } else { this.itemTypeTag = listType.getItemType().getTypeTag(); fixedSize = NonTaggedFormatUtil.isFixedSizedCollection(listType.getItemType()); } headerSize = 2; metadataInfoSize = 8; }
if (!listTag.isListType()) { returnNull = true; } else if (outList != null && outList.getTypeTag() != listTag) { throw new RuntimeDataException(ErrorCode.DIFFERENT_LIST_TYPE_ARGS, sourceLoc); } else { if (outList.getTypeTag() == ATypeTag.ARRAY) { if (orderedListBuilder == null) { orderedListBuilder = new OrderedListBuilder();
public int getFixedLength(AbstractCollectionType inputType) throws HyracksDataException { return NonTaggedFormatUtil.getFieldValueLength(bytes, 0, inputType.getItemType().getTypeTag(), false); }
@Override protected IAType getResultType(ILogicalExpression expr, IAType... strippedInputTypes) throws AlgebricksException { ATypeTag tag = strippedInputTypes[0].getTypeTag(); if (tag == ATypeTag.ANY) { return BuiltinType.ANY; } if (tag != ATypeTag.ARRAY && tag != ATypeTag.MULTISET) { return strippedInputTypes[0]; } AbstractCollectionType act = (AbstractCollectionType) strippedInputTypes[0]; IAType t = act.getItemType(); return AUnionType.createUnknownableType(t); } }
@Override protected IAType getResultType(ILogicalExpression expr, IAType... strippedInputTypes) throws AlgebricksException { IAType type = strippedInputTypes[0]; if (type.getTypeTag().isListType()) { return AUnionType.createNullableType(((AbstractCollectionType) type).getItemType()); } return BuiltinType.ANY; } }
@Override public void init(PrintStream out, DataGeneratorContext ctx) throws Exception { super.init(out, ctx); if (act.getItemType().getTypeTag() == ATypeTag.STRING) { constructor = null; } else { constructor = getConstructor(act.getItemType()); } }
@Override protected IAType getResultType(ILogicalExpression expr, IAType... strippedInputTypes) throws AlgebricksException { IAType type = strippedInputTypes[0]; if (type.getTypeTag() == ATypeTag.ANY) { return BuiltinType.ANY; } IAType itemType = ((AbstractCollectionType) type).getItemType(); if (itemType.getTypeTag() == ATypeTag.ANY) { return itemType; } // Could have out-of-bound access or null elements. return AUnionType.createUnknownableType(itemType); }
@Override protected IAType getResultType(ILogicalExpression expr, IAType... strippedInputTypes) throws AlgebricksException { IAType type = strippedInputTypes[0]; if (type.getTypeTag() == ATypeTag.ANY) { return BuiltinType.ANY; } IAType itemType = ((AbstractCollectionType) type).getItemType(); if (nullable) { itemType = AUnionType.createNullableType(itemType); } if (missable) { itemType = AUnionType.createMissableType(itemType); } return itemType; } }