public int getSchemeFieldCount(ARecordType recordType) { return recordType.getFieldNames().length; }
public String getClosedFieldName(ARecordType recordType, int fieldId) { return recordType.getFieldNames()[fieldId]; }
private String getCommaDelimitedColNames(ARecordType record) throws HyracksDataException { if (record.getFieldNames().length < 1) { throw new RuntimeDataException(ErrorCode.PARSER_HIVE_NO_CLOSED_COLUMNS); } String cols = record.getFieldNames()[0]; for (int i = 1; i < record.getFieldNames().length; i++) { cols = cols + "," + record.getFieldNames()[i]; } return cols; }
private int getFieldPosByName(String fieldName) { int index = 0; String[] fieldNames = recordType.getFieldNames(); for (String name : fieldNames) { if (name.equals(fieldName)) { return index; } index++; } return -1; }
/** * Creates a map from name to type for fields in the passed type * * @param recordType the type to be mapped * @return a map mapping all fields to their types */ private static Map<String, IAType> createRecordNameTypeMap(ARecordType recordType) { LinkedHashMap<String, IAType> recordNameTypesMap = new LinkedHashMap<>(); for (int j = 0; j < recordType.getFieldNames().length; j++) { recordNameTypesMap.put(recordType.getFieldNames()[j], recordType.getFieldTypes()[j]); } return recordNameTypesMap; }
public static ARecordType mergeRecordTypes(ARecordType recType1, ARecordType recType2) { String[] fieldNames = new String[recType1.getFieldNames().length + recType2.getFieldNames().length]; IAType[] fieldTypes = new IAType[recType1.getFieldTypes().length + recType2.getFieldTypes().length]; int i = 0; for (; i < recType1.getFieldNames().length; i++) { fieldNames[i] = recType1.getFieldNames()[i]; fieldTypes[i] = recType1.getFieldTypes()[i]; } for (int j = 0; j < recType2.getFieldNames().length; i++, j++) { fieldNames[i] = recType2.getFieldNames()[j]; fieldTypes[i] = recType2.getFieldTypes()[j]; } return new ARecordType(null, fieldNames, fieldTypes, true); }
/** * compute the null Bitmap size for the open fields * * @param recordType * the record type * @return the size of the bitmap */ public static int computeNullBitmapSize(ARecordType recordType) { return NonTaggedFormatUtil.hasOptionalField(recordType) ? (int) Math.ceil(recordType.getFieldNames().length / 4.0) : 0; } }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{ "); if (fields != null) { for (int i = 0; i < fields.length; i++) { if (i > 0) { sb.append(", "); } sb.append(type.getFieldNames()[i]); sb.append(": "); sb.append(fields[i]); } } sb.append(" }"); return sb.toString(); }
private static void appendCSVHeader(Appendable app, ARecordType recordType) throws HyracksDataException { try { String[] fieldNames = recordType.getFieldNames(); boolean notfirst = false; for (String name : fieldNames) { if (notfirst) { app.append(','); } notfirst = true; app.append('"').append(name.replace("\"", "\"\"")).append('"'); } app.append("\r\n"); } catch (IOException e) { throw HyracksDataException.create(e); } }
@Override public ObjectNode toJSON() { ObjectMapper om = new ObjectMapper(); ObjectNode json = om.createObjectNode(); ArrayNode record = om.createArrayNode(); for (int i = 0; i < fields.length; i++) { ObjectNode item = om.createObjectNode(); item.set(type.getFieldNames()[i], fields[i].toJSON()); record.add(item); } json.set("ARecord", record); return json; } }
public JRecordAccessor(ARecordType recordType, IObjectPool<IJObject, IAType> objectPool) { this.typeInfo = new TypeInfo(objectPool, null, null); this.jObjects = new IJObject[recordType.getFieldNames().length]; this.openFields = new LinkedHashMap<>(); this.jRecord = new JRecord(recordType, jObjects, openFields); }
private static ILogicalExpression findFieldByIndexFromRecordConstructor(Object index, AbstractFunctionCallExpression fce, IVariableTypeEnvironment typeEnvironment) throws AlgebricksException { Integer fieldIndex = (Integer) index; ARecordType recordType = (ARecordType) typeEnvironment.getType(fce); String[] closedFieldNames = recordType.getFieldNames(); return closedFieldNames.length > fieldIndex ? findFieldByNameFromRecordConstructor(closedFieldNames[fieldIndex], fce) : null; }
public static void recordToMap(Map<String, String> map, ARecord record) throws AlgebricksException { String[] keys = record.getType().getFieldNames(); for (int i = 0; i < keys.length; i++) { String key = keys[i]; String value = aObjToString(record.getValueByPos(i)); map.put(key, value); } }
public RSSParser(ARecordType recordType) { mutableFields = new AMutableString[] { new AMutableString(null), new AMutableString(null), new AMutableString(null), new AMutableString(null) }; mutableRecord = new AMutableRecord(recordType, mutableFields); tupleFieldValues = new String[recordType.getFieldNames().length]; numFields = recordType.getFieldNames().length; }
private boolean[] computeOpenFields(AbstractFunctionCallExpression expr, ARecordType recType) { int n = expr.getArguments().size() / 2; boolean[] open = new boolean[n]; for (int i = 0; i < n; i++) { Mutable<ILogicalExpression> argRef = expr.getArguments().get(2 * i); ILogicalExpression arg = argRef.getValue(); open[i] = true; final String fn = ConstantExpressionUtil.getStringConstant(arg); if (fn != null) { for (String s : recType.getFieldNames()) { if (s.equals(fn)) { open[i] = false; break; } } } } return open; } }
protected void checkOptionalConstraints(ARecordType recordType, BitSet nullBitmap) throws RuntimeDataException { for (int i = 0; i < recordType.getFieldTypes().length; i++) { if (!nullBitmap.get(i) && !isMissableType(recordType.getFieldTypes()[i])) { throw new RuntimeDataException(ErrorCode.PARSER_TWEET_PARSER_CLOSED_FIELD_NULL, recordType.getFieldNames()[i]); } } }
public RecordWithMetadataParser(ARecordType metaType, IRecordDataParser<O> valueParser, IRecordConverter<T, RecordWithMetadataAndPK<O>> converter) throws HyracksDataException { this.recordParser = valueParser; this.converter = converter; this.metaType = metaType; this.numberOfMetaFields = metaType.getFieldNames().length; metaBuilder = new RecordBuilder(); metaBuilder.reset(metaType); metaBuilder.init(); metaFieldsNamesBuffers = new ArrayBackedValueStorage[numberOfMetaFields]; AMutableString str = new AMutableString(null); for (int i = 0; i < numberOfMetaFields; i++) { String name = metaType.getFieldNames()[i]; metaFieldsNamesBuffers[i] = new ArrayBackedValueStorage(); str.setValue(name); IDataParser.toBytes(str, metaFieldsNamesBuffers[i], stringSerde); } }
private boolean validateKey(int i, ARecordType type, boolean unique) { if (type.getFieldNames().length <= i) { throw new IllegalArgumentException("key index must be less than number of fields"); } return unique && type.getFieldTypes()[i].getTypeTag() != ATypeTag.BOOLEAN; }
public ARecordSerializerDeserializer(ARecordType recordType) { if (recordType != null) { this.recordType = recordType; this.numberOfSchemaFields = recordType.getFieldNames().length; serializers = new ISerializerDeserializer[numberOfSchemaFields]; deserializers = new ISerializerDeserializer[numberOfSchemaFields]; for (int i = 0; i < numberOfSchemaFields; i++) { IAType t = recordType.getFieldTypes()[i]; IAType t2 = (t.getTypeTag() == ATypeTag.UNION) ? ((AUnionType) t).getActualType() : t; serializers[i] = SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(t2); deserializers[i] = SerializerDeserializerProvider.INSTANCE.getNonTaggedSerializerDeserializer(t2); } } else { this.recordType = null; this.numberOfSchemaFields = 0; this.serializers = null; this.deserializers = null; } }
public static void writeRecord(AMutableRecord record, DataOutput dataOutput, IARecordBuilder recordBuilder) throws HyracksDataException { ArrayBackedValueStorage fieldValue = new ArrayBackedValueStorage(); int numFields = record.getType().getFieldNames().length; for (int pos = 0; pos < numFields; pos++) { fieldValue.reset(); IAObject obj = record.getValueByPos(pos); IDataParser.writeObject(obj, fieldValue.getDataOutput()); recordBuilder.addField(pos, fieldValue); } recordBuilder.write(dataOutput, true); }