presto-main/src/main/java/io/prestosql/metadata/SqlOperator.java/SqlOperator/SqlOperator
class SqlOperator:    protected SqlOperator(
            OperatorType operatorType,
            List<TypeVariableConstraint> typeVariableConstraints,
            List<LongVariableConstraint> longVariableConstraints,
            TypeSignature returnType,
            List<TypeSignature> argumentTypes,
            boolean nullable)
    {
        // TODO This should take Signature!
        super(new FunctionMetadata(
                new Signature(
                        mangleOperatorName(operatorType),
                        typeVariableConstraints,
                        longVariableConstraints,
                        returnType,
                        argumentTypes,
                        false),
                nullable,
                nCopies(argumentTypes.size(), new FunctionArgumentDefinition(operatorType == IS_DISTINCT_FROM || operatorType == INDETERMINATE)),
                true,
                true,
                "",
                SCALAR));
        if (operatorType == EQUAL || operatorType == NOT_EQUAL || operatorType == SUBSCRIPT) {
            checkArgument(nullable, "%s operator for %s must be nullable", operatorType, argumentTypes.get(0));
        }
    }