{
  "comment" : "This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.",
  "type" : "scalar",
  "name" : "pow",
  "description" : "Returns the value of `base` raised to the power of `exponent`.",
  "note" : "It is still possible to overflow a double result here; in that case, null will be returned.",
  "signatures" : [
    {
      "params" : [
        {
          "name" : "base",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "double",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "integer",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "long",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "base",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression for the base. If `null`, the function returns `null`."
        },
        {
          "name" : "exponent",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Numeric expression for the exponent. If `null`, the function returns `null`."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    }
  ],
  "examples" : [
    "ROW base = 2.0, exponent = 2\n| EVAL result = POW(base, exponent)",
    "ROW base = 4, exponent = 0.5\n| EVAL s = POW(base, exponent)"
  ],
  "preview" : false,
  "snapshot_only" : false
}
