public class org.apache.cassandra.cql3.functions.FunctionCall extends org.apache.cassandra.cql3.Term$NonTerminal
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.cql3.functions.FunctionCall
super_class: org.apache.cassandra.cql3.Term$NonTerminal
{
private final org.apache.cassandra.cql3.functions.ScalarFunction fun;
descriptor: Lorg/apache/cassandra/cql3/functions/ScalarFunction;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<org.apache.cassandra.cql3.Term> terms;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/apache/cassandra/cql3/Term;>;
private static volatile int[] $SWITCH_TABLE$org$apache$cassandra$db$marshal$CollectionType$Kind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
private void <init>(org.apache.cassandra.cql3.functions.ScalarFunction, java.util.List<org.apache.cassandra.cql3.Term>);
descriptor: (Lorg/apache/cassandra/cql3/functions/ScalarFunction;Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.apache.cassandra.cql3.Term$NonTerminal.<init>:()V
1: aload 0
aload 1
putfield org.apache.cassandra.cql3.functions.FunctionCall.fun:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
2: aload 0
aload 2
putfield org.apache.cassandra.cql3.functions.FunctionCall.terms:Ljava/util/List;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/cql3/functions/FunctionCall;
0 4 1 fun Lorg/apache/cassandra/cql3/functions/ScalarFunction;
0 4 2 terms Ljava/util/List<Lorg/apache/cassandra/cql3/Term;>;
Signature: (Lorg/apache/cassandra/cql3/functions/ScalarFunction;Ljava/util/List<Lorg/apache/cassandra/cql3/Term;>;)V
MethodParameters:
Name Flags
fun
terms
public void addFunctionsTo(java.util.List<org.apache.cassandra.cql3.functions.Function>);
descriptor: (Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.cql3.functions.FunctionCall.terms:Ljava/util/List;
aload 1
invokestatic org.apache.cassandra.cql3.Terms.addFunctions:(Ljava/lang/Iterable;Ljava/util/List;)V
1: aload 0
getfield org.apache.cassandra.cql3.functions.FunctionCall.fun:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
aload 1
invokeinterface org.apache.cassandra.cql3.functions.ScalarFunction.addFunctionsTo:(Ljava/util/List;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/cql3/functions/FunctionCall;
0 3 1 functions Ljava/util/List<Lorg/apache/cassandra/cql3/functions/Function;>;
Signature: (Ljava/util/List<Lorg/apache/cassandra/cql3/functions/Function;>;)V
MethodParameters:
Name Flags
functions
public void collectMarkerSpecification(org.apache.cassandra.cql3.VariableSpecifications);
descriptor: (Lorg/apache/cassandra/cql3/VariableSpecifications;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.cql3.functions.FunctionCall.terms:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: org.apache.cassandra.cql3.functions.FunctionCall org.apache.cassandra.cql3.VariableSpecifications top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.cql3.Term
astore 2
start local 2 2: aload 2
aload 1
invokeinterface org.apache.cassandra.cql3.Term.collectMarkerSpecification:(Lorg/apache/cassandra/cql3/VariableSpecifications;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/cql3/functions/FunctionCall;
0 5 1 boundNames Lorg/apache/cassandra/cql3/VariableSpecifications;
2 3 2 t Lorg/apache/cassandra/cql3/Term;
MethodParameters:
Name Flags
boundNames
public org.apache.cassandra.cql3.Term$Terminal bind(org.apache.cassandra.cql3.QueryOptions);
descriptor: (Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/cql3/Term$Terminal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.cql3.functions.FunctionCall.fun:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
aload 0
aload 1
invokevirtual org.apache.cassandra.cql3.functions.FunctionCall.bindAndGet:(Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/nio/ByteBuffer;
aload 1
invokevirtual org.apache.cassandra.cql3.QueryOptions.getProtocolVersion:()Lorg/apache/cassandra/transport/ProtocolVersion;
invokestatic org.apache.cassandra.cql3.functions.FunctionCall.makeTerminal:(Lorg/apache/cassandra/cql3/functions/Function;Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)Lorg/apache/cassandra/cql3/Term$Terminal;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cql3/functions/FunctionCall;
0 1 1 options Lorg/apache/cassandra/cql3/QueryOptions;
Exceptions:
throws org.apache.cassandra.exceptions.InvalidRequestException
MethodParameters:
Name Flags
options
public java.nio.ByteBuffer bindAndGet(org.apache.cassandra.cql3.QueryOptions);
descriptor: (Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
aload 0
getfield org.apache.cassandra.cql3.functions.FunctionCall.terms:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 2
start local 2 1: aload 0
getfield org.apache.cassandra.cql3.functions.FunctionCall.terms:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: org.apache.cassandra.cql3.functions.FunctionCall org.apache.cassandra.cql3.QueryOptions java.util.List top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.cql3.Term
astore 3
start local 3 3: aload 3
aload 1
invokeinterface org.apache.cassandra.cql3.Term.bindAndGet:(Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/nio/ByteBuffer;
astore 5
start local 5 4: aload 5
ldc "Invalid unset value for argument in call to function %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.cassandra.cql3.functions.FunctionCall.fun:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
invokeinterface org.apache.cassandra.cql3.functions.ScalarFunction.name:()Lorg/apache/cassandra/cql3/functions/FunctionName;
getfield org.apache.cassandra.cql3.functions.FunctionName.name:Ljava/lang/String;
aastore
invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkBindValueSet:(Ljava/nio/ByteBuffer;Ljava/lang/String;[Ljava/lang/Object;)V
5: aload 2
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: aload 1
invokevirtual org.apache.cassandra.cql3.QueryOptions.getProtocolVersion:()Lorg/apache/cassandra/transport/ProtocolVersion;
aload 0
getfield org.apache.cassandra.cql3.functions.FunctionCall.fun:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
aload 2
invokestatic org.apache.cassandra.cql3.functions.FunctionCall.executeInternal:(Lorg/apache/cassandra/transport/ProtocolVersion;Lorg/apache/cassandra/cql3/functions/ScalarFunction;Ljava/util/List;)Ljava/nio/ByteBuffer;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/cql3/functions/FunctionCall;
0 8 1 options Lorg/apache/cassandra/cql3/QueryOptions;
1 8 2 buffers Ljava/util/List<Ljava/nio/ByteBuffer;>;
3 6 3 t Lorg/apache/cassandra/cql3/Term;
4 6 5 functionArg Ljava/nio/ByteBuffer;
Exceptions:
throws org.apache.cassandra.exceptions.InvalidRequestException
MethodParameters:
Name Flags
options
private static java.nio.ByteBuffer executeInternal(org.apache.cassandra.transport.ProtocolVersion, org.apache.cassandra.cql3.functions.ScalarFunction, java.util.List<java.nio.ByteBuffer>);
descriptor: (Lorg/apache/cassandra/transport/ProtocolVersion;Lorg/apache/cassandra/cql3/functions/ScalarFunction;Ljava/util/List;)Ljava/nio/ByteBuffer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
aload 2
invokeinterface org.apache.cassandra.cql3.functions.ScalarFunction.execute:(Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List;)Ljava/nio/ByteBuffer;
astore 3
start local 3 1: aload 3
ifnull 3
2: aload 1
invokeinterface org.apache.cassandra.cql3.functions.ScalarFunction.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
aload 3
invokevirtual org.apache.cassandra.db.marshal.AbstractType.validate:(Ljava/nio/ByteBuffer;)V
3: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 3
4: areturn
5: StackMap locals:
StackMap stack: org.apache.cassandra.serializers.MarshalException
astore 4
start local 4 6: new java.lang.RuntimeException
dup
ldc "Return of function %s (%s) is not a valid value for its declared return type %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
7: aload 1
aastore
dup
iconst_1
aload 3
invokestatic org.apache.cassandra.utils.ByteBufferUtil.bytesToHex:(Ljava/nio/ByteBuffer;)Ljava/lang/String;
aastore
dup
iconst_2
aload 1
invokeinterface org.apache.cassandra.cql3.functions.ScalarFunction.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
invokevirtual org.apache.cassandra.db.marshal.AbstractType.asCQL3Type:()Lorg/apache/cassandra/cql3/CQL3Type;
aastore
8: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
9: aload 4
10: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 protocolVersion Lorg/apache/cassandra/transport/ProtocolVersion;
0 11 1 fun Lorg/apache/cassandra/cql3/functions/ScalarFunction;
0 11 2 params Ljava/util/List<Ljava/nio/ByteBuffer;>;
1 11 3 result Ljava/nio/ByteBuffer;
6 11 4 e Lorg/apache/cassandra/serializers/MarshalException;
Exception table:
from to target type
1 4 5 Class org.apache.cassandra.serializers.MarshalException
Exceptions:
throws org.apache.cassandra.exceptions.InvalidRequestException
Signature: (Lorg/apache/cassandra/transport/ProtocolVersion;Lorg/apache/cassandra/cql3/functions/ScalarFunction;Ljava/util/List<Ljava/nio/ByteBuffer;>;)Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
protocolVersion
fun
params
public boolean containsBindMarker();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.cql3.functions.FunctionCall.terms:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: org.apache.cassandra.cql3.functions.FunctionCall top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.cql3.Term
astore 1
start local 1 2: aload 1
invokeinterface org.apache.cassandra.cql3.Term.containsBindMarker:()Z
ifeq 4
3: iconst_1
ireturn
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/cql3/functions/FunctionCall;
2 4 1 t Lorg/apache/cassandra/cql3/Term;
private static org.apache.cassandra.cql3.Term$Terminal makeTerminal(org.apache.cassandra.cql3.functions.Function, java.nio.ByteBuffer, org.apache.cassandra.transport.ProtocolVersion);
descriptor: (Lorg/apache/cassandra/cql3/functions/Function;Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)Lorg/apache/cassandra/cql3/Term$Terminal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokeinterface org.apache.cassandra.cql3.functions.Function.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
invokevirtual org.apache.cassandra.db.marshal.AbstractType.isCollection:()Z
ifeq 8
3: invokestatic org.apache.cassandra.cql3.functions.FunctionCall.$SWITCH_TABLE$org$apache$cassandra$db$marshal$CollectionType$Kind:()[I
aload 0
invokeinterface org.apache.cassandra.cql3.functions.Function.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
checkcast org.apache.cassandra.db.marshal.CollectionType
getfield org.apache.cassandra.db.marshal.CollectionType.kind:Lorg/apache/cassandra/db/marshal/CollectionType$Kind;
invokevirtual org.apache.cassandra.db.marshal.CollectionType$Kind.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 6
2: 5
3: 4
default: 7
}
4: StackMap locals:
StackMap stack:
aload 1
aload 0
invokeinterface org.apache.cassandra.cql3.functions.Function.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
checkcast org.apache.cassandra.db.marshal.ListType
aload 2
invokestatic org.apache.cassandra.cql3.Lists$Value.fromSerialized:(Ljava/nio/ByteBuffer;Lorg/apache/cassandra/db/marshal/ListType;Lorg/apache/cassandra/transport/ProtocolVersion;)Lorg/apache/cassandra/cql3/Lists$Value;
areturn
5: StackMap locals:
StackMap stack:
aload 1
aload 0
invokeinterface org.apache.cassandra.cql3.functions.Function.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
checkcast org.apache.cassandra.db.marshal.SetType
aload 2
invokestatic org.apache.cassandra.cql3.Sets$Value.fromSerialized:(Ljava/nio/ByteBuffer;Lorg/apache/cassandra/db/marshal/SetType;Lorg/apache/cassandra/transport/ProtocolVersion;)Lorg/apache/cassandra/cql3/Sets$Value;
areturn
6: StackMap locals:
StackMap stack:
aload 1
aload 0
invokeinterface org.apache.cassandra.cql3.functions.Function.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
checkcast org.apache.cassandra.db.marshal.MapType
aload 2
invokestatic org.apache.cassandra.cql3.Maps$Value.fromSerialized:(Ljava/nio/ByteBuffer;Lorg/apache/cassandra/db/marshal/MapType;Lorg/apache/cassandra/transport/ProtocolVersion;)Lorg/apache/cassandra/cql3/Maps$Value;
areturn
7: StackMap locals:
StackMap stack:
goto 10
8: StackMap locals:
StackMap stack:
aload 0
invokeinterface org.apache.cassandra.cql3.functions.Function.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
invokevirtual org.apache.cassandra.db.marshal.AbstractType.isUDT:()Z
ifeq 10
9: aload 1
aload 0
invokeinterface org.apache.cassandra.cql3.functions.Function.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
checkcast org.apache.cassandra.db.marshal.UserType
invokestatic org.apache.cassandra.cql3.UserTypes$Value.fromSerialized:(Ljava/nio/ByteBuffer;Lorg/apache/cassandra/db/marshal/UserType;)Lorg/apache/cassandra/cql3/UserTypes$Value;
areturn
10: StackMap locals:
StackMap stack:
new org.apache.cassandra.cql3.Constants$Value
dup
aload 1
invokespecial org.apache.cassandra.cql3.Constants$Value.<init>:(Ljava/nio/ByteBuffer;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 fun Lorg/apache/cassandra/cql3/functions/Function;
0 11 1 result Ljava/nio/ByteBuffer;
0 11 2 version Lorg/apache/cassandra/transport/ProtocolVersion;
Exceptions:
throws org.apache.cassandra.exceptions.InvalidRequestException
MethodParameters:
Name Flags
fun
result
version
static int[] $SWITCH_TABLE$org$apache$cassandra$db$marshal$CollectionType$Kind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.apache.cassandra.cql3.functions.FunctionCall.$SWITCH_TABLE$org$apache$cassandra$db$marshal$CollectionType$Kind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.apache.cassandra.db.marshal.CollectionType$Kind.values:()[Lorg/apache/cassandra/db/marshal/CollectionType$Kind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.apache.cassandra.db.marshal.CollectionType$Kind.LIST:Lorg/apache/cassandra/db/marshal/CollectionType$Kind;
invokevirtual org.apache.cassandra.db.marshal.CollectionType$Kind.ordinal:()I
iconst_3
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.apache.cassandra.db.marshal.CollectionType$Kind.MAP:Lorg/apache/cassandra/db/marshal/CollectionType$Kind;
invokevirtual org.apache.cassandra.db.marshal.CollectionType$Kind.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.apache.cassandra.db.marshal.CollectionType$Kind.SET:Lorg/apache/cassandra/db/marshal/CollectionType$Kind;
invokevirtual org.apache.cassandra.db.marshal.CollectionType$Kind.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic org.apache.cassandra.cql3.functions.FunctionCall.$SWITCH_TABLE$org$apache$cassandra$db$marshal$CollectionType$Kind:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
}
SourceFile: "FunctionCall.java"
NestMembers:
org.apache.cassandra.cql3.functions.FunctionCall$Raw
InnerClasses:
public Value = org.apache.cassandra.cql3.Constants$Value of org.apache.cassandra.cql3.Constants
public Value = org.apache.cassandra.cql3.Lists$Value of org.apache.cassandra.cql3.Lists
public Value = org.apache.cassandra.cql3.Maps$Value of org.apache.cassandra.cql3.Maps
public Value = org.apache.cassandra.cql3.Sets$Value of org.apache.cassandra.cql3.Sets
public abstract NonTerminal = org.apache.cassandra.cql3.Term$NonTerminal of org.apache.cassandra.cql3.Term
public abstract Terminal = org.apache.cassandra.cql3.Term$Terminal of org.apache.cassandra.cql3.Term
public Value = org.apache.cassandra.cql3.UserTypes$Value of org.apache.cassandra.cql3.UserTypes
public Raw = org.apache.cassandra.cql3.functions.FunctionCall$Raw of org.apache.cassandra.cql3.functions.FunctionCall
public abstract Kind = org.apache.cassandra.db.marshal.CollectionType$Kind of org.apache.cassandra.db.marshal.CollectionType