private IScalarEvaluatorFactory createConstantEvaluatorFactory(ConstantExpression expr, JobGenContext context) throws AlgebricksException { MetadataProvider metadataProvider = (MetadataProvider) context.getMetadataProvider(); return metadataProvider.getDataFormat().getConstantEvalFactory(expr.getValue()); }
new ITypeTraits[1 + numPrimaryKeys + (dataset.hasMetaPart() ? 1 : 0) + numFilterFields]; secondaryTypeTraits = new ITypeTraits[numSecondaryKeys + numPrimaryKeys]; ISerializerDeserializerProvider serdeProvider = metadataProvider.getDataFormat().getSerdeProvider(); ITypeTraitProvider typeTraitProvider = metadataProvider.getDataFormat().getTypeTraitProvider(); IBinaryComparatorFactoryProvider comparatorFactoryProvider = metadataProvider.getDataFormat().getBinaryComparatorFactoryProvider(); sourceColumn = recordColumn + 1; secondaryFieldAccessEvalFactories[i] = metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory( metadataProvider.getFunctionManager(), isOverridingKeyTypes ? enforcedItemType : sourceType, index.getKeyFieldNames().get(i), sourceColumn, sourceLoc); metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory( metadataProvider.getFunctionManager(), itemType, filterFieldName, recordColumn, sourceLoc); Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType);
metadataProvider.getDataFormat().getSerdeProvider().getSerializerDeserializer(feedOutputType); ArrayList<ISerializerDeserializer> serdes = new ArrayList<>(); serdes.add(payloadSerde);
private void setPrimaryRecDescAndComparators() throws AlgebricksException { List<List<String>> partitioningKeys = dataset.getPrimaryKeys(); ISerializerDeserializer[] primaryRecFields = new ISerializerDeserializer[numPrimaryKeys + 1 + (dataset.hasMetaPart() ? 1 : 0)]; ITypeTraits[] primaryTypeTraits = new ITypeTraits[numPrimaryKeys + 1 + (dataset.hasMetaPart() ? 1 : 0)]; primaryComparatorFactories = new IBinaryComparatorFactory[numPrimaryKeys]; primaryBloomFilterKeyFields = new int[numPrimaryKeys]; ISerializerDeserializerProvider serdeProvider = metadataProvider.getDataFormat().getSerdeProvider(); List<Integer> indicators = null; if (dataset.hasMetaPart()) { indicators = ((InternalDatasetDetails) dataset.getDatasetDetails()).getKeySourceIndicator(); } for (int i = 0; i < numPrimaryKeys; i++) { IAType keyType = (indicators == null || indicators.get(i) == 0) ? itemType.getSubFieldType(partitioningKeys.get(i)) : metaType.getSubFieldType(partitioningKeys.get(i)); primaryRecFields[i] = serdeProvider.getSerializerDeserializer(keyType); primaryComparatorFactories[i] = BinaryComparatorFactoryProvider.INSTANCE.getBinaryComparatorFactory(keyType, true); primaryTypeTraits[i] = TypeTraitProvider.INSTANCE.getTypeTrait(keyType); primaryBloomFilterKeyFields[i] = i; } primaryRecFields[numPrimaryKeys] = payloadSerde; primaryTypeTraits[numPrimaryKeys] = TypeTraitProvider.INSTANCE.getTypeTrait(itemType); if (dataset.hasMetaPart()) { primaryRecFields[numPrimaryKeys + 1] = payloadSerde; primaryTypeTraits[numPrimaryKeys + 1] = TypeTraitProvider.INSTANCE.getTypeTrait(metaType); } primaryRecDesc = new RecordDescriptor(primaryRecFields, primaryTypeTraits); }
new ISerializerDeserializer[numPrimaryKeys + 1 + (hasMetaPart() ? 1 : 0)]; ITypeTraits[] primaryTypeTraits = new ITypeTraits[numPrimaryKeys + 1 + (hasMetaPart() ? 1 : 0)]; ISerializerDeserializerProvider serdeProvider = metadataProvider.getDataFormat().getSerdeProvider(); List<Integer> indicators = null; if (hasMetaPart()) {
public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> buildExternalDatasetDataScannerRuntime( JobSpecification jobSpec, IAType itemType, IAdapterFactory adapterFactory) throws AlgebricksException { if (itemType.getTypeTag() != ATypeTag.OBJECT) { throw new AlgebricksException("Can only scan datasets of records."); } ISerializerDeserializer<?> payloadSerde = getDataFormat().getSerdeProvider().getSerializerDeserializer(itemType); RecordDescriptor scannerDesc = new RecordDescriptor(new ISerializerDeserializer[] { payloadSerde }); ExternalScanOperatorDescriptor dataScanner = new ExternalScanOperatorDescriptor(jobSpec, scannerDesc, adapterFactory); AlgebricksPartitionConstraint constraint; try { constraint = adapterFactory.getPartitionConstraint(); } catch (Exception e) { throw new AlgebricksException(e); } return new Pair<>(dataScanner, constraint); }
new ITypeTraits[1 + numPrimaryKeys + (dataset.hasMetaPart() ? 1 : 0) + numFilterFields]; secondaryTypeTraits = new ITypeTraits[numSecondaryKeys + numPrimaryKeys]; ISerializerDeserializerProvider serdeProvider = metadataProvider.getDataFormat().getSerdeProvider(); ITypeTraitProvider typeTraitProvider = metadataProvider.getDataFormat().getTypeTraitProvider(); IBinaryComparatorFactoryProvider comparatorFactoryProvider = metadataProvider.getDataFormat().getBinaryComparatorFactoryProvider(); sourceColumn = recordColumn + 1; secondaryFieldAccessEvalFactories[i] = metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory( metadataProvider.getFunctionManager(), isOverridingKeyFieldTypes ? enforcedItemType : sourceType, index.getKeyFieldNames().get(i), sourceColumn, sourceLoc); secondaryFieldAccessEvalFactories[numSecondaryKeys] = metadataProvider.getDataFormat() .getFieldAccessEvaluatorFactory(metadataProvider.getFunctionManager(), itemType, filterFieldName, numPrimaryKeys, sourceLoc);
secondaryTypeTraits = new ITypeTraits[numSecondaryKeys + numPrimaryKeys]; ITypeTraits[] enforcedTypeTraits = new ITypeTraits[1 + numPrimaryKeys]; ISerializerDeserializerProvider serdeProvider = metadataProvider.getDataFormat().getSerdeProvider(); ITypeTraitProvider typeTraitProvider = metadataProvider.getDataFormat().getTypeTraitProvider(); int recordColumn = NUM_TAG_FIELDS + numPrimaryKeys; if (numSecondaryKeys > 0) { secondaryFieldAccessEvalFactories[0] = metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory( metadataProvider.getFunctionManager(), isOverridingKeyFieldTypes ? enforcedItemType : itemType, index.getKeyFieldNames().get(0), recordColumn, sourceLoc); metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory( metadataProvider.getFunctionManager(), itemType, filterFieldName, recordColumn, sourceLoc); Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType);
secondaryTypeTraits = new ITypeTraits[numSecondaryKeys + numPrimaryKeys]; ITypeTraits[] enforcedTypeTraits = new ITypeTraits[1 + numPrimaryKeys]; ISerializerDeserializerProvider serdeProvider = metadataProvider.getDataFormat().getSerdeProvider(); ITypeTraitProvider typeTraitProvider = metadataProvider.getDataFormat().getTypeTraitProvider(); if (numSecondaryKeys > 0) { secondaryFieldAccessEvalFactories[0] = metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory( metadataProvider.getFunctionManager(), isOverridingKeyFieldTypes ? enforcedItemType : itemType, index.getKeyFieldNames().get(0), numPrimaryKeys, sourceLoc); secondaryFieldAccessEvalFactories[numSecondaryKeys] = metadataProvider.getDataFormat() .getFieldAccessEvaluatorFactory(metadataProvider.getFunctionManager(), itemType, filterFieldName, numPrimaryKeys, sourceLoc);
ISerializerDeserializerProvider serdeProvider = getDataFormat().getSerdeProvider();
numNestedSecondaryKeyFields = numDimensions * 2; int recordColumn = NUM_TAG_FIELDS + numPrimaryKeys; secondaryFieldAccessEvalFactories = metadataProvider.getDataFormat().createMBRFactory( metadataProvider.getFunctionManager(), isOverridingKeyFieldTypes ? enforcedItemType : itemType, secondaryKeyFields.get(0), recordColumn, numDimensions, filterFieldName, isPointMBR, sourceLoc);
numNestedSecondaryKeyFields = numDimensions * 2; int recordColumn = dataset.getDatasetType() == DatasetType.INTERNAL ? numPrimaryKeys : 0; secondaryFieldAccessEvalFactories = metadataProvider.getDataFormat().createMBRFactory( metadataProvider.getFunctionManager(), isOverridingKeyFieldTypes ? enforcedItemType : itemType, secondaryKeyFields.get(0), recordColumn, numDimensions, filterFieldName, isPointMBR, sourceLoc);
int pos = skNames.get(i).size() > 1 ? -1 : sourceType.getFieldIndex(skNames.get(i).get(0)); secondaryFieldAccessEvalFactories[i] = mdProvider.getDataFormat().getFieldAccessEvaluatorFactory(mdProvider.getFunctionManager(), sourceType, secondaryIndex.getKeyFieldNames().get(i), pos, null);
ISerializerDeserializer<?>[] outputSerDes = new ISerializerDeserializer[inputRecordDesc.getFieldCount() + 1 + (dataset.hasMetaPart() ? 2 : 1) + numFilterFields]; IDataFormat dataFormat = metadataProvider.getDataFormat();
builder.setLogicalRewrites(ruleSetFactory.getLogicalRewrites(metadataProvider.getApplicationContext())); builder.setPhysicalRewrites(ruleSetFactory.getPhysicalRewrites(metadataProvider.getApplicationContext())); IDataFormat format = metadataProvider.getDataFormat(); ICompilerFactory compilerFactory = builder.create(); builder.setExpressionEvalSizeComputer(format.getExpressionEvalSizeComputer());