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