|  | @@ -596,6 +596,8 @@ public abstract class AbstractFunctionTestCase extends ESTestCase {
 | 
	
		
			
				|  |  |          EsqlFunctionRegistry.FunctionDescription description = EsqlFunctionRegistry.description(definition);
 | 
	
		
			
				|  |  |          List<EsqlFunctionRegistry.ArgSignature> args = description.args();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        assertTrue("expect description to be defined", description.description() != null && description.description().length() > 0);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          List<Set<String>> typesFromSignature = new ArrayList<>();
 | 
	
		
			
				|  |  |          Set<String> returnFromSignature = new HashSet<>();
 | 
	
		
			
				|  |  |          for (int i = 0; i < args.size(); i++) {
 | 
	
	
		
			
				|  | @@ -611,21 +613,16 @@ public abstract class AbstractFunctionTestCase extends ESTestCase {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          for (int i = 0; i < args.size(); i++) {
 | 
	
		
			
				|  |  |              Set<String> annotationTypes = Arrays.stream(args.get(i).type()).collect(Collectors.toCollection(() -> new TreeSet<>()));
 | 
	
		
			
				|  |  | -            if (annotationTypes.equals(Set.of("?"))) {
 | 
	
		
			
				|  |  | -                continue; // TODO remove this eventually, so that all the functions will have to provide signature info
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  |              Set<String> signatureTypes = typesFromSignature.get(i);
 | 
	
		
			
				|  |  |              if (signatureTypes.isEmpty()) {
 | 
	
		
			
				|  |  |                  continue;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            assertEquals(annotationTypes, signatureTypes);
 | 
	
		
			
				|  |  | +            assertEquals(signatureTypes, annotationTypes);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          Set<String> returnTypes = Arrays.stream(description.returnType()).collect(Collectors.toCollection(() -> new TreeSet<>()));
 | 
	
		
			
				|  |  | -        if (returnTypes.equals(Set.of("?")) == false) {
 | 
	
		
			
				|  |  | -            // TODO remove this eventually, so that all the functions will have to provide signature info
 | 
	
		
			
				|  |  | -            assertEquals(returnTypes, returnFromSignature);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        assertEquals(returnFromSignature, returnTypes);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 |