{
  "comment" : "This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.",
  "type" : "scalar",
  "name" : "log",
  "description" : "Returns the logarithm of a value to a base. The input can be any numeric value, the return value is always a double.\n\nLogs of zero, negative numbers, and base of one return `null` as well as a warning.",
  "signatures" : [
    {
      "params" : [
        {
          "name" : "base",
          "type" : "double",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "double",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "double",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "double",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "double",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "integer",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "integer",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "integer",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "integer",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "integer",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "long",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "long",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "long",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "long",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "long",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "unsigned_long",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "unsigned_long",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "unsigned_long",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "unsigned_long",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "unsigned_long",
          "optional" : true,
          "description" : "Base of logarithm. If `null`, the function returns `null`. If not provided, this function returns the natural logarithm (base e) of a value."
        },
        {
          "name" : "number",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    }
  ],
  "examples" : [
    "ROW base = 2.0, value = 8.0\n| EVAL s = LOG(base, value)",
    "ROW value = 100\n| EVAL s = LOG(value);"
  ],
  "preview" : false,
  "snapshot_only" : false
}
