{
  "comment" : "This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.",
  "type" : "agg",
  "name" : "all_last",
  "description" : "Calculates the latest value of a field, and can operate on null values.",
  "signatures" : [
    {
      "params" : [
        {
          "name" : "value",
          "type" : "boolean",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "boolean"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "boolean",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date_nanos",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "boolean"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "double",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "double",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date_nanos",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "integer",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "integer"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "integer",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date_nanos",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "integer"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "ip",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "ip"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "ip",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date_nanos",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "ip"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "keyword",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "keyword"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "keyword",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date_nanos",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "keyword"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "long",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "long"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "long",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date_nanos",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "long"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "text",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "keyword"
    },
    {
      "params" : [
        {
          "name" : "value",
          "type" : "text",
          "optional" : false,
          "description" : "Values to return"
        },
        {
          "name" : "sort",
          "type" : "date_nanos",
          "optional" : false,
          "description" : "Sort key"
        }
      ],
      "variadic" : false,
      "returnType" : "keyword"
    }
  ],
  "examples" : [
    "ROW row = [\n  #       @timestamp        |  name   | number\n  \"2025-11-25T00:00:00.000Z | alpha   | \",\n  \"2025-11-25T00:00:01.000Z | alpha   | 2\",\n  \"2025-11-25T00:00:02.000Z | bravo   | \",\n  \"2025-11-25T00:00:03.000Z | alpha   | 4\",\n  \"2025-11-25T00:00:04.000Z | bravo   | 5\",\n  \"2025-11-25T00:00:05.000Z | charlie | 6\",\n  \"2025-11-25T00:00:06.000Z | delta   | \"\n]\n| MV_EXPAND row\n| DISSECT row \"\"\"%{@timestamp} | %{name} | %{number}\"\"\"\n| KEEP @timestamp, name, number\n| EVAL @timestamp = TO_DATETIME(@timestamp),\n       name = TRIM(name),\n       number = TO_LONG(number)\n| STATS last_val = ALL_LAST(number, @timestamp) BY name"
  ],
  "preview" : true,
  "snapshot_only" : true
}
