protected IFunctionDescriptor createCastFunction(boolean strictCast) throws AlgebricksException { IFunctionDescriptor castFuncDesc = metadataProvider.getFunctionManager() .lookupFunction(strictCast ? BuiltinFunctions.CAST_TYPE : BuiltinFunctions.CAST_TYPE_LAX); castFuncDesc.setSourceLocation(sourceLoc); castFuncDesc.setImmutableStates(enforcedItemType, itemType); return castFuncDesc; }
public ConstantFoldingRule(ICcApplicationContext appCtx) { MetadataProvider metadataProvider = new MetadataProvider(appCtx, null); jobGenCtx = new JobGenContext(null, metadataProvider, appCtx, SerializerDeserializerProvider.INSTANCE, BinaryHashFunctionFactoryProvider.INSTANCE, BinaryHashFunctionFamilyProvider.INSTANCE, BinaryComparatorFactoryProvider.INSTANCE, TypeTraitProvider.INSTANCE, BinaryBooleanInspector.FACTORY, BinaryIntegerInspector.FACTORY, ADMPrinterFactoryProvider.INSTANCE, MissingWriterFactory.INSTANCE, null, new ExpressionRuntimeProvider(new QueryLogicalExpressionJobGen(metadataProvider.getFunctionManager())), ExpressionTypeComputer.INSTANCE, null, null, null, null, GlobalConfig.DEFAULT_FRAME_SIZE, null); }
metadataProvider.getFunctionManager(), isOverridingKeyTypes ? enforcedItemType : sourceType, index.getKeyFieldNames().get(i), sourceColumn, sourceLoc); Pair<IAType, Boolean> keyTypePair = Index.getNonNullableOpenFieldType(index.getKeyFieldTypes().get(i), secondaryFieldAccessEvalFactories[numSecondaryKeys] = metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory( metadataProvider.getFunctionManager(), itemType, filterFieldName, recordColumn, sourceLoc); Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType); IAType type = keyTypePair.first;
int recordColumn = NUM_TAG_FIELDS + numPrimaryKeys; secondaryFieldAccessEvalFactories = metadataProvider.getDataFormat().createMBRFactory( metadataProvider.getFunctionManager(), isOverridingKeyFieldTypes ? enforcedItemType : itemType, secondaryKeyFields.get(0), recordColumn, numDimensions, filterFieldName, isPointMBR, sourceLoc); secondaryComparatorFactories = new IBinaryComparatorFactory[numNestedSecondaryKeyFields];
metadataProvider.getFunctionManager(), isOverridingKeyFieldTypes ? enforcedItemType : sourceType, index.getKeyFieldNames().get(i), sourceColumn, sourceLoc); Pair<IAType, Boolean> keyTypePair = Index.getNonNullableOpenFieldType(index.getKeyFieldTypes().get(i), .getFieldAccessEvaluatorFactory(metadataProvider.getFunctionManager(), itemType, filterFieldName, numPrimaryKeys, sourceLoc); Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType);
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); secondaryComparatorFactories = new IBinaryComparatorFactory[numNestedSecondaryKeyFields];
if (numSecondaryKeys > 0) { secondaryFieldAccessEvalFactories[0] = metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory( metadataProvider.getFunctionManager(), isOverridingKeyFieldTypes ? enforcedItemType : itemType, index.getKeyFieldNames().get(0), numPrimaryKeys, sourceLoc); Pair<IAType, Boolean> keyTypePair = Index.getNonNullableOpenFieldType(index.getKeyFieldTypes().get(0), .getFieldAccessEvaluatorFactory(metadataProvider.getFunctionManager(), itemType, filterFieldName, numPrimaryKeys, sourceLoc); Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType);
if (numSecondaryKeys > 0) { secondaryFieldAccessEvalFactories[0] = metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory( metadataProvider.getFunctionManager(), isOverridingKeyFieldTypes ? enforcedItemType : itemType, index.getKeyFieldNames().get(0), recordColumn, sourceLoc); Pair<IAType, Boolean> keyTypePair = Index.getNonNullableOpenFieldType(index.getKeyFieldTypes().get(0), secondaryFieldAccessEvalFactories[numSecondaryKeys] = metadataProvider.getDataFormat().getFieldAccessEvaluatorFactory( metadataProvider.getFunctionManager(), itemType, filterFieldName, recordColumn, sourceLoc); Pair<IAType, Boolean> keyTypePair = Index.getNonNullableKeyFieldType(filterFieldName, itemType); IAType type = keyTypePair.first;
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);
builder.setComparatorFactoryProvider(format.getBinaryComparatorFactoryProvider()); builder.setExpressionRuntimeProvider( new ExpressionRuntimeProvider(new QueryLogicalExpressionJobGen(metadataProvider.getFunctionManager()))); builder.setHashFunctionFactoryProvider(format.getBinaryHashFunctionFactoryProvider()); builder.setHashFunctionFamilyProvider(format.getBinaryHashFunctionFamilyProvider());