Package io.trino.sql.gen
Class LambdaBytecodeGenerator
java.lang.Object
io.trino.sql.gen.LambdaBytecodeGenerator
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptioncompileLambdaProvider(LambdaDefinitionExpression lambdaExpression, FunctionManager functionManager, Class<?> lambdaInterface) static io.airlift.bytecode.BytecodeNodegenerateLambda(BytecodeGeneratorContext context, List<RowExpression> captureExpressions, LambdaBytecodeGenerator.CompiledLambda compiledLambda, Class<?> lambdaInterface) generateMethodsForLambda(io.airlift.bytecode.ClassDefinition containerClassDefinition, CallSiteBinder callSiteBinder, CachedInstanceBinder cachedInstanceBinder, RowExpression expression, FunctionManager functionManager) preGenerateLambdaExpression(LambdaDefinitionExpression lambdaExpression, String methodName, io.airlift.bytecode.ClassDefinition classDefinition, Map<LambdaDefinitionExpression, LambdaBytecodeGenerator.CompiledLambda> compiledLambdaMap, CallSiteBinder callSiteBinder, CachedInstanceBinder cachedInstanceBinder, FunctionManager functionManager)
-
Method Details
-
generateMethodsForLambda
public static Map<LambdaDefinitionExpression,LambdaBytecodeGenerator.CompiledLambda> generateMethodsForLambda(io.airlift.bytecode.ClassDefinition containerClassDefinition, CallSiteBinder callSiteBinder, CachedInstanceBinder cachedInstanceBinder, RowExpression expression, FunctionManager functionManager) -
preGenerateLambdaExpression
public static LambdaBytecodeGenerator.CompiledLambda preGenerateLambdaExpression(LambdaDefinitionExpression lambdaExpression, String methodName, io.airlift.bytecode.ClassDefinition classDefinition, Map<LambdaDefinitionExpression, LambdaBytecodeGenerator.CompiledLambda> compiledLambdaMap, CallSiteBinder callSiteBinder, CachedInstanceBinder cachedInstanceBinder, FunctionManager functionManager) - Returns:
- a MethodHandle field that represents the lambda expression
-
generateLambda
public static io.airlift.bytecode.BytecodeNode generateLambda(BytecodeGeneratorContext context, List<RowExpression> captureExpressions, LambdaBytecodeGenerator.CompiledLambda compiledLambda, Class<?> lambdaInterface) -
compileLambdaProvider
public static Class<? extends Supplier<Object>> compileLambdaProvider(LambdaDefinitionExpression lambdaExpression, FunctionManager functionManager, Class<?> lambdaInterface)
-